Rechnung mit grossen Zahlen

Gast #33139
Lesenswert?
• ▲
▼
Hallo,

Ich bin dran ein Geschwindigkeitsmesser zu bauen, daher sollte ich 
wissen wie ich die Zahl 150000 (Abstand der Lichtschranken) durch eine 
Zahl zwischen 1500 und 3000 dividiere. Die Zahl zwischen 1500&3000 
befindet sich in verschiedenen Register, durch inkrementieren während 
des Interrupts (wenn die erste Lichtschranke unterbrochen wird)

Danke im Voraus
Gast #33140
Lesenswert?
• ▲
▼
bei Atmel findet man Assemblerroutinen für 16bit-Arithmetik 
(avr200.asm???). Die lassen sich leicht erweitern auf 32bit. In deinem 
Fall reichen auch 24bit, zwar unüblich, aber was solls. Spart auf jeden 
Fall Rechenzeit und Register.
Gast #33144
Lesenswert?
• ▲
▼
Ich habe jetzt schon alles in assembler geschrieben ;)

Bin gerade dran die "Math Routines" von Marshall (8052.com) 
auszuprobieren, doch wenn ich ein Ergebnis ausgeben will, das grösser 
als 255 ist gibt er wirre Zahlen aus, oder geb ich das bloss falsch aus 
?

Z.B wollte ich 3276 / 1000 (in Form von HexZahlen)berechnen, doch 
anstatt das Ergebnis 3.276 auszugeben bringt er für :

r3 = 0
r2 = 0
r1 = 0
r0 = 3 (was auch bis hierher stimmt)
für Nachkommastellen
r7 = 0
r6 = 0
r5 = 1
r4 = 20

...aus

Anordnung ist folgendermaßen
; output:   r3, r2, r1, r0 = quotient Q of division Q = X / Y
;           r7, r6, r5, r4 = remainder (Rest, nachkomma)

Ich hoff da kann mir jemand weiterhelfen

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