mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Rechnung mit grossen Zahlen


Autor: Ben M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: edi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ben M. (Gast)
Datum:

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

Autor: Markus Kaufmann (Gast)
Datum:

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

Autor: Ben M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ben M. (Gast)
Datum:

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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.