Gast
#171217
Hallo, kann mir jemand sagen, ob die Atmel Megas eine Modulo Operation können? Ich habe da bisher nix gefunden Grüsse Ralf
|
Anzeige
|
AVR Risc Controller Modulo Operation
Gast
#171217
Hallo, kann mir jemand sagen, ob die Atmel Megas eine Modulo Operation können? Ich habe da bisher nix gefunden Grüsse Ralf
Gast
#171218
Klar können die das, kann jeder µProzessor. Der Modulo ist der Restwert einer Division. Und falls der Modulo aus einer Division einer 2ér-Potenz ermittelt werden soll (/2, /4, /8 etc.), reicht, in ASM oder auch C, eine einfache AND-Verknüpfung. MfG Andi
Gast
#171219
Danke für deine Antwort. Einen speziellen Befehl zB wie add oder mul gibts aber nicht für diese Operation oder? In C isset ja % aber es geht mir ja um einen Assembler Befehl. Mein Ziel ist es für eine beliebige einstellige Dezimalzahl den den Modulo 4 Wert zu bilden Also zB: 9 %4 = 1
Gast
#171220
Nix leichter als das! Zum Beispiel: ldi r16,11 ;Ausgangswert andi r16,3 ;Modulo aus 11 / 4 = 3 oder ldi r16,6 ;Ausgangswert andi r16,3 ;Modulo aus 6 / 4 = 2 Der Wert 3 für die AND-Verknüpfung kommt daher, das ein Modulo 4 Werte von 0 bis 3 haben kann und die 4 einer Zahl aus einer 2ér-Potenz entsprechen. Mit Modulo 5 geht das natürlich nicht sondern immer nur mit Zahlen wie 2, 4, 8, 16, 32 etc. Brauchst Du mal einen Modulo aus 8, machst Du eine AND-Verknüpfung mit 7 (0 bis 7 sind dann mögliche Werte). Bei Modulo 100 z. B. benötigst Du eine Divisions-Routine welche das Ergebnis und den Restwert zurück gibt. MfG Andi
Gast
#171221
Guck dir einfach das Instruction Set an: http://www.atmel.com/dyn/resources/prod_documents/DOC0856.PDF da kannst du gleich sehen, welche Befehle drin sind.
Gast
#171222
Modulo erfolgt bei der Division. Der Befehl wäre also "DIV", aber den haben die AVRs nicht. Der 8051 hat "DIV" (8Bit Division), der Quotient steht dann in A, der Rest (Modulo) im B-Register. Peter
Gast
#171223
Und für was jetzt "DIV" beim Modulo 4 (auch, wenns ein 8051 wäre)? X Modulo 4 = X AND 3 MfG Andi
Gast
#171224
Und für was jetzt "DIV" beim Modulo 4 (auch, wenns ein 8051 wäre)? X Modulo 4 = X AND 3 MfG Andi Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|