- 3D-Druck Einstieg und Tipps         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 22

Thema: Funktionen: sin(); cos(); tan(); ... aus math.h

  1. #11
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Anzeige

    Praxistest und DIY Projekte
    Du hattest doch geschrieben (s.o):
    x = (double) tan( ( double ) 70 );
    heißt das, beim GCC funktioniert casting nicht ?
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  2. #12
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    10.08.2004
    Ort
    Großbardorf
    Alter
    37
    Beiträge
    674
    bei mir funktioniert das casting mit dem GCC schon, ich verwende aber nur ganze Zahlen
    vielleicht liegts auch daran
    Übrigens implementiert die avr-libm nur den SFmode (also float)
    also gehts vielleicht, wenn man nach float castet, ist aber nur ne Vermutung

  3. #13
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Dann hat aber die h-file nicht zu der Lib dazugepaßt. Ah so.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  4. #14
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Zitat Zitat von PicNick
    Dann hat aber die h-file nicht zu der Lib dazugepaßt. Ah so.
    Doch die Header passen schon zur Implementierung der libm. Nur ist die Genauigkeit eben nicht die, wie man sie von double gewohnt ist, sondern nur die von float.
    Disclaimer: none. Sue me.

  5. #15
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Moment, macht mich nicht wirre:
    Function prototype (z.B):
    double tan( double zahl );
    hmmm,
    aber
    x = (double) tan( ( double ) 1.0 );
    gibt er auch 0 aus....
    Gibt's nur eine Erklärung:
    Er hat ( double ) 1.0 gecastet, d.h. 8 Byte
    d.s. im Intel-Format (Low sign. first)
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f
    das gibt nur NULL, wenn er jetzt nur das single (float) davon liest, also die ersten 4
    0x00, 0x00, 0x00, 0x00
    und das entspricht single 0.0
    und dann ist der tangens auch null

    also ---> function prototype <nix passt> library


    edit : mit gewohnheit hatt das nix zu tun
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  6. #16
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Vielleicht geht's ja einfach mit float?
    Zitat Zitat von gcc-3.4.4/gcc/config/avr/avr.h
    #define FLOAT_TYPE_SIZE 32
    /* A C expression for the size in bits of the type `float' on the
    target machine. If you don't define this, the default is one word. */

    #define DOUBLE_TYPE_SIZE 32
    /* A C expression for the size in bits of the type `double' on the
    target machine. If you don't define this, the default is two
    words. */
    Disclaimer: none. Sue me.

  7. #17
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Zitat Zitat von avr.h
    #define FLOAT_TYPE_SIZE 32
    #define DOUBLE_TYPE_SIZE 32
    Ziemlich einheitlich.

    Ich nehm' mal davon mit, daß da einige Fallstricke gespannt sind. Vorsicht scheint angebracht. Na ja.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  8. #18
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    22.11.2003
    Beiträge
    991
    Zitat Zitat von PicNick
    Ich nehm' mal davon mit, daß da einige Fallstricke gespannt sind. Vorsicht scheint angebracht. Na ja.
    So schlimm ist's gar nicht. Man muss nur in Gedanken alle "double" zu "float" machen, dann stimmt wieder alles und man kann ganz normal damit arbeiten.

    MfG Kjion

  9. #19
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Zitat Zitat von Kjion
    .. in Gedanken alle "double" zu "float"..
    Ich sag jetzt aber lieber nix.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  10. #20
    Neuer Benutzer Öfters hier
    Registriert seit
    11.12.2004
    Beiträge
    27
    hi,

    wie groß wird der zeiger überhaupt auf dem display?
    er müsste schon ziemlich groß sein dass sich die verwendung der sin und cos funktionen lohnt; der AVR kann nämlich nur software-floating point berchnungen,
    bei den tinys wird selbst die multiplikation softwaremäßig gemacht

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test