Forum: Mikrocontroller und Digitale Elektronik ATtiny15l program counter


von medvjed (Gast)


Angehängte Dateien:

Lesenswert?

hallo,

mich interresiert es wie der program counter bei attiny15l mit einer 
adresse gefullt wird, bzw. der program counter ist 9 bit breit und die 
data bus ist 8 bit breit, also zmb bei rjmp wie kommt die neue adrese in 
den PC? wird es zwei mal dur die data bus geschickt (einmal 8 bits, und 
einmal 1 bit), oder irgednwie anders?
RJM ist doch PC=PC+k+1 wo k auf 12 bits ist also von -2048 bis 2048 (was 
ja reciht um das ganze progam flash zu adressieren)
wird das PC+k+1 in der ALU augefuhrt oder nicht? die alu kann odch nur 
mit 8 bits arbeiten...?

vielen dank im vorraus

von Hannes L. (hannes)


Lesenswert?

Nunja, intern (im Bitmuster des Codes) sieht das etwas anders aus als im 
ASM-Quelltext.

Du schreibst
 rjmp label1

Im Code wird aber nicht die Adresse von "label1" gespeichert, sondern 
die Differenz zwischen der aktuellen Adresse und Label1. Und da der 
Tiny15 nur 1kB Flash hat, dieser auch noch Word-adressiert wird (512 
Words a 2 Bytes), reichen 9 Bit im PC aus, jede Adresse zu speichern. 
Die Differenz kann also nie größer als 511 (9 Bit) werden.

Die volle 12-Bit-Distanz von k wird erst bei AVRs mit 8kB Flash 
ausgenutzt.

...

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.