- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 15

Thema: Mathe in C, (division und acos..)

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    02.05.2004
    Alter
    38
    Beiträge
    388

    Mathe in C, (division und acos..)

    Anzeige

    Praxistest und DIY Projekte
    Guten Morgen,

    Ich versuche schon den ganzen Abend zwei Variablen zu dividieren.
    Wie folgt mein "Code"
    Code:
    float var1 = 156;
    float var2 = 220;
    float var3;
    
    var3 = var1 / var2;
    Meine Variable 3 ist aber leider immer 1
    Auch wen ich var3 = ((float)var1 / (float)var2); schreibe.
    ich lass mir den Inhalt auf einem display als int ausgeben. Ich sehe also nur wie ganzzahlig der Wert ist.
    Komischerweise ist der wert 0 wen ich var2 / var1 rechne.
    Ich verstehs echt nicht.

    diesen wert rechne ich mit acos weiter und dann nochmals weiter in grad.
    acos wird aber immer nur 1 übergeben... Mein Ergebniss in Grad ist immer 57 = 1 rad

    Ich bin echt für jeden Tip dankbar

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    14.08.2007
    Ort
    Delmenhorst
    Alter
    39
    Beiträge
    731
    Hi

    Hast du in der make die richtigen/nötigen Parameter gesetzt?

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    21.05.2008
    Ort
    Oststeinbek
    Alter
    34
    Beiträge
    607
    Versuch mal dies hier:
    float var1 = 156;
    float var2 = 220;
    float var3;

    var3 = var1 / var2;

    if(var3 < 1) printf("Richtig")
    else printf("Falsch")

    Oder gib den Wert doch einfach als float aufm Display aus... (mit Hilfe von sprintf(...) )

    Gruß, Yaro

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    02.05.2004
    Alter
    38
    Beiträge
    388
    hm, wieso habe ich die header stdio.h nicht? Ich benutze AVR studio und WinAVR.

    Ich wollt mir jetzt mal die float ausgeben lassen

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    14.08.2007
    Ort
    Delmenhorst
    Alter
    39
    Beiträge
    731
    Alle Pfade richtig angegeben?

  6. #6
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    02.05.2004
    Alter
    38
    Beiträge
    388
    in welchem pfad sollte die den liegen?
    io.h und co hab ich drin

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.05.2006
    Beiträge
    184
    Hi,
    hast du dir die Werte im Simulator angeschaut oder woher weisst du, dass var3 == 1 ist?

    gruß

  8. #8
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    02.05.2004
    Alter
    38
    Beiträge
    388
    Aha, nach neuinstallation ist stdlib.h wieder da.

    Ich geb die Variable auf einem LCD aus. Aber als int.
    Deshalb weiss ich nur obs >=0 ist.

    Wie genau benutzt man sprintf?
    char text[];
    float zahl;
    sprintf(text, "%f", zahl);

    funktioniert nicht

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    14.08.2007
    Ort
    Delmenhorst
    Alter
    39
    Beiträge
    731
    Wenn du schreibst "funktioniert nicht" dann schreib immer was genau nicht funktioniert.

    Ich hoffe dein Code sieht nciht wirklich so aus wie du ihn hier gepostet hast...
    Außerdem gib für text mal ne Größe vor und gib zahl nen Wert.

  10. #10
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    02.05.2004
    Alter
    38
    Beiträge
    388
    Nein der sieht nicht ganz so aus, ging mir nur ums prinzip.

    Ich hab mir mal ne funktion geschrieben um int-Werte auf dem Display auszugeben. Die habe ich versucht umzuschreiben.

    Code:
    void disp(float zahl1)
    {
    char text[17];
    
    sprintf(text1, "%f", zahl1);
    lcd funktionen(text1).....
    }
    Und ich bekomme ein unschönes error:
    relocation truncated to fit: R_AVR_13_PCREL against symbol `__subsf3`definied in .text section in C:.............\libgcc.a(_addsub_sf.o)

    und das 3mal (Leichte textliche abweichungen)

    Und wenn ich sprintf auskommentiere ist es wieder fehlerfrei.

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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

Labornetzteil AliExpress