Ich hab mir gedacht diese Makrosammlung könnte auch für andere Leute interesant und nützlich sein. Die datei mit den Makros sollte im anhang sein. Fals ihr Fehler findet bitte sagen, der code sollte aber eigendlich fehlerfrei sein. Aber eine 100%tige Sicherheit gibt es ja nie :D Cool währ ja noch, wenn man die 32Bit multiplikation und Division irgendwie reinpacken könnt. Vieleicht mach ich das noch. mfg Alex
Gast
#1938652
Hi >Fals ihr Fehler findet bitte sagen, der code sollte aber eigendlich >fehlerfrei sein. Ist er nicht. Zumindest die Makros für 'neg' funktionieren so nicht. Um eine 32Bit-Zahl zu negieren ist folgender Code notwendig:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
>Cool währ ja noch, wenn man die 32Bit multiplikation und Division >irgendwie reinpacken könnt. Aber nicht als Makro! Ansonsten sieh dir diese App-Notes an: AVR200: Multiply and Divide Routines AVR201: Using the 8-bit AVR Hardware Multiplier AVR202: 16-Bit Arithmetics on tinyAVR and megaAVR devices MfG Spess
Alexander B. schrieb: > Cool währ ja noch, wenn man die 32Bit multiplikation und Division > irgendwie reinpacken könnt. Beitrag "Re: DIVISION 32 BIT / 32BIT Beispiel (Assembler) ATmega8" http://www.mikrocontroller.net/attachment/16261/UDIV32F.ASM http://www.mikrocontroller.net/attachment/16262/umul32.asm Peter
Gast
#1939798
Hi Leute :-)
Ich hab mir das Dividieren und Multiplizieren mal angesehen und
verstanden.
Ist eigendlich recht einfach, braucht aber einiges an rechenzeit :)
Das Dividieren braucht so um die 300 Cycles, das Multiplizieren ein
bischen weniger. Beim Multiplizieren hatt man hald das problem das wenn
man
zwei 32bit zahlen Multipliziert, die höchste zahl die entstehen kann
eine
64bit zahl ist.
@spess53: Danke für die korektur.
Du hast reht, als makro ist das Dividieren und Multiplizieren
nicht gut zu implementieren.
@Peter Dannegger: Danke für die Links.
mfg Alex
Gast
#1939802
ääää sory, ich hab mich oben verschrieben, ich meinte 600 Cycles.
Gast
#1939938
Hi Bei ATMegas mit Hardware-Multiplizierer reichen 80 Takte. MfG Spess
Gast
#1940881
Hi Leute Danke spess53 für dieses Beispiel. Diese Art zu Multiplizieren hab ich noch garnicht gekannt. Ich hatte ganz übersehen das die beiden MCU's (ATmega16 und ATmega32) einen MUL befehl haben :-) mfg Alex
Gast
#1941123
Hi >Diese Art zu Multiplizieren hab ich noch garnicht gekannt. Sieh die einfach mal die App-Notes von Atmel an. Das Ganze beruht auf: AVR201: Using the 8-bit AVR Hardware Multiplier Dann werden auch die Kommentare verständlicher. MfG Spess
Gast
#1942332
Hi @Spess53: Danke werd ich machen :-) mfg Alex
hier haben wir auch noch einiges zusammengetragen: Beitrag "DIVISION 32 BIT / 32BIT Beispiel (Assembler) ATmega8" Bernhard
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.