Forum: Mikrocontroller und Digitale Elektronik ATmega8 ATmega16


von Martin K. (spyro07)


Lesenswert?

Hallo, haben die beiden oben genannten MCs den gleichen 
Assembler-Befehlssatz???

von Martin K. (spyro07)


Lesenswert?

haben diese beiden den gleichen Assemblerbefehlssatz?

von Joerg W. (joergwolfram)


Lesenswert?

Ja, vom Befehlssatz her sind sie gleich. Man kann die Programme fast 
direkt übernehmen, Speicheradressen und IO müssen aber entsprechend 
angepasst werden.

Gruss Jörg

von Johannes M. (johnny-m)


Lesenswert?

Martin K. wrote:
> haben diese beiden den gleichen Assemblerbefehlssatz?
Nicht ganz. Der Mega16 hat mehr als 8 KiB Flash. Deshalb gibts bei ihm 
z.B. die Befehle jmp und call, weil rjmp und rcall nur bis 8 KiB 
addressieren können.

Aus dem Grund sind auch (*ACHTUNG*: Häufiger Umsteiger-Fehler) die 
Interrupt-Vektoren beim Mega16 doppelt so lang wie beim Mega8, weil jmp 
32 Bit (2 Wörter) lang ist, rjmp aber nur 16 Bit. Deshalb reicht es bei 
leeren Interrupt-Vektoren (also Vektoren nicht genutzter Interrupts) 
nicht, einfach ein reti reinzuschreiben, weil reti auch nur 16 Bit hat 
und dadurch die Vektortabelle durcheinandergerät. Entweder mit Adressen 
arbeiten (.org) oder "nop reti" reinschreiben.

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.