Registeradresse

Gast #260738
Lesenswert?
• ▲
▼
Hallo Leute,
Ich will die *.inc datei nicht einbinden, z.B. statt INT0addr nehme ich
die adresse 0x001 für External Interrupt0 Vector Address, die Frage ist
wie siehts denn bei Registeren aus? z.B. TIMSK hat ja die adresse 0x39
  , wie siehts aber mit den einzelnen register aus z.B. OCIE1A 4
Register,
Kann mir jemand Bitte die Adressen Organisation erklären.
Danke
Gast #260742
Lesenswert?
• ▲
▼
Im atmega8 beispielsweise ist OCIE1A hier zu finden:
Bit 4 im Register TIMSK, also an Adresse 0x39.
Das findest du im Datenblatt in der großen tabelle auf Seite 282.
Viel Logik bei der Vergabe der Adressen wirst du aber eher vergeblich
suchen.
Gast #260744
Lesenswert?
• ▲
▼
Das weiss ich doch welche Adresse hat nun der Register OCIE1A 0x39 ist
ja für die ganze register wie oder gib mal eine klein Assembler
Beispiel
oder besser wie mach ich das wenn du mir einbißchen erklären würdest
Gast #260745
Lesenswert?
• ▲
▼
du kannst das eine Bit nicht einzeln ansprechen. Wenn du nur das Bit
ändern willst, musst du das komplette Bit laden:

in temp,0x39

das Bit setzen:

sbr temp,4

und wieder zurückspeichern:

out 0x39,temp


temp musst du dann natürlich auch noch durch eine Registernummer
ersetzen...
Mit den vorgegebenen Registernamen wird's aber extrem übersichtlicher

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren