AVR GCC Rechenfehler?

Gast #3591861
Lesenswert?

Hallo,

folgende Zeile liefert falsche Ergebnisse:
u16_adcBatt = (ADCH * 330) / 256;

ebenso
u16_adcBatt = (ADCH * 330) >> 8;

Wenn das ganze schrittweise gerechnet wird, ist das Ergebnis korrekt:
u16_adcBatt = (ADCH * 330);
u16_adcBatt = u16_adcBatt / 256;

Kann jemand erklären, warum das so ist?
Besten Dank!

Sören
Gast #3591884
Lesenswert?

Das scheint zu funktionieren. Und auch, wie ich eben gefunden habe, wenn
u16_adcBatt = (ADCH * 330L) / 256;

geschrieben wird.

Jetzt funktioniert das zwar, danke für die schnelle Hilfe!
Aber ich verstehe noch nicht, wo das Problem lag.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren