Gast
#2988440
Hallo zusammen, ich muss eine Division rechnen auf einem AVR 8-bit (Atmega88). Ich habe nun 2 Möglichkeiten: Das ganze in 32-bit zu rechnen also 32-bit geteilt durch 32-bit mit 0% Fehler. Oder die 32-bit zahlen mit einem Zweierkomplement vorher "prescalen" (also durch rechtsschieben) auf 16-bit und dann 16-bit geteilt durch 16-bit zu haben und dann aber mit max. 1,4% Fehler (was nicht wirklich tragisch wäre für die Anwendung). Die Berechnung geschieht nicht zeitkritisch in main(). Sämtliche zeitkritischen Sachen sind in Interrupts untergebracht. Habe ich einen großen Zeitvorteil durch das herunterbrechen auf 16-bit? Derzeit lasse ich es mit 32-bit dividieren und mekre so keinen Nachteil. Da ich aber am Ende gerne noch optimiere, nachdem alles läuft, um noch etwas Speicher und Geschwindigkeit zu holen, bin ich nun bei dieser Division angelangt. Macht es eigentlich einen Unterschied, ob man 16-bit durch 16-bit teilt oder 16-bit z.b. nur durch 8-bit? Oder ist sowieso immer der größte Operand ausschlaggebend? Danke. LG Jan