- Labornetzteil AliExpress         
Ergebnis 1 bis 7 von 7

Thema: Atmega rechnet falsch...

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    903
    Probier es bitte erst aus, bevor Du meckerst.
    750U-1500U= 64xxxU
    Danach erst wird implizit in float gewandelt.

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    25.05.2008
    Ort
    Korntal-Münchingen
    Alter
    43
    Beiträge
    15
    WTF.... Du hast Recht.

    Er tut jetzt so wie es sein soll.

    Ich verstehe es trotzdem nicht, warum die Variable diff, ohne cast, richtig ausgegeben wird.

    Hier der vollständige code:

    Code:
    int16_t calculate_pump_current (uint16_t Ua, uint16_t Ua_cal)
    {
        float diff;
        diff = (int16_t)Ua - (int16_t)Ua_cal;
        
        liveData[26] = low(diff);
        liveData[27] = high(diff);
        
        return ((diff) / (SENSOR_SHUNT * 8.0) * 1000);
    }
    Die Variable liveData[...] ist als uint8_t liveData[30] definiert, die dann per usart rausgeschoben wird. Der Empfänger sieht den diff-Wert aber korrekt...

    Hab jetzt den ganzen Mist rausgeworfen und nun sieht es so aus:

    Code:
    int16_t calculate_pump_current (uint16_t Ua, uint16_t Ua_cal)
    {    
        return (((int16_t)Ua - (int16_t)Ua_cal) / (SENSOR_SHUNT * 8.0) * 1000);
    }
    und rechnet auch richtig.

    Danke schön!

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    903
    Ich denke mal, dass der Unterschied in den VIER Bytes des floats nicht in deinen beiden ausgegebenen Testbytes liegt.

Ähnliche Themen

  1. Rechnet der Arduino Falsch?
    Von RoboterSindCool im Forum Arduino -Plattform
    Antworten: 6
    Letzter Beitrag: 30.12.2016, 14:40
  2. Antworten: 16
    Letzter Beitrag: 10.05.2015, 12:06
  3. schon mal festgestellt? A. Due rechnet falsch - Mega ok!
    Von HaWe im Forum Arduino -Plattform
    Antworten: 47
    Letzter Beitrag: 21.11.2014, 21:27
  4. Comparator @ ATMEGA 8 Was ist falsch in der Programmierung?
    Von EISMAN im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 22.10.2006, 17:04
  5. Rechnet der AVR falsch oder bin in ich nur zu dumm ?
    Von NumberFive im Forum C - Programmierung (GCC u.a.)
    Antworten: 9
    Letzter Beitrag: 11.02.2005, 13:35

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress