Gast
#1704492
Hallo, ich möchte in meinem Programm eine Berechnung ausführen (AVRGCC 20100110, Atmega16) und zwar: x = ( l*m*100 ) / ( d*a ) mit l=0...500; m=0...1023; d=1...250 a=1...1023 Wie kann ich diese Berechnung am Besten implementieren? Hab schon diverse Varianten ausprobiert und bekomme im AVR Simulator und auf der Zielhardware immer wieder falsche Ergebinsse. z.B.: für: temp=(uint16_t)((d*a)/1024); liefert der Simulator als Ergebnis mit d=250 und a=800 temp=3 obwohl es 195 seien sollten. Wie bekomme man den Überlauf der Zahlen (d*a) wärend der Berechung in den Griff? Kann das der Compiler von sich aus? Danke für die Hilfe.