Forum: Mikrocontroller und Digitale Elektronik Rechnung mit grossen Zahlen


von Ben M. (Gast)


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

von crazy horse (Gast)


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.

von edi (Gast)


Lesenswert?

hi

wenn du nicht auf avr umsteigen musst, dann schau mal
in   www.8052.com auf der linken seite ''code examples''

da findest du rechenroutinen von ...Marshall...

ciao
ed

von Ben M. (Gast)


Lesenswert?

Danke, hab mir das mal angekuckt. Etwas kompliziert aber ich denke ich 
kann mich da mal einarbeiten

von Markus Kaufmann (Gast)


Lesenswert?

Noch ein Lösungsvorschlag:
Nimm eine Hochsprache (z.B. C oder Basic). Da gibts üblicherweise 
32Bit-Zahlen und Division schon fertig.

von Ben M. (Gast)


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

von Ben M. (Gast)


Lesenswert?

Habs gerade selber rausgefunden :) (kommt davon wenn man am stück 10h 
vor dem kasten sitzt ;)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.