Ich bin dabei, das oben erwähnte Dokument von hier aus durchzulesen .
Auf Seite 21, zweiter Absatz in Abschnitt 8.5 I/O Memory
, ist Zeile 6 wie folgt angegeben:
Bei Verwendung der I/O-spezifischen Befehle IN und OUT müssen die I/O-Adressen 0x00 - 0x3F verwendet werden.
Auf Seite 224 Assembly Code Example
hat Zeile 1 der Tabelle, erste Spalte, die letzte Zeile jedoch wie folgt:
out TWCR, r16
Aber gemäß der Aussage auf Seite 21 ist die obige Anweisung falsch, da TWCR die Speicheradresse hat, 0xBC
wie sie auf Seite 396, Zeile 6 angegeben ist.
Ist hier etwas falsch, oder verstehe ich das falsch?
Bitte helfen Sie.
Bearbeiten: Definitionsdatei
Du verstehst es falsch. Ja, TWCR hat eine Speicheradresse von 0xBC, aber das ist nicht seine IO-Adresse.
Es gibt zwei Möglichkeiten, auf den Port zuzugreifen – über IO und über den Speicher. Wenn Sie in C dieser Adresse einen Wert zuweisen, ändert es stattdessen die Adresse in die IO-Adresse und verwendet eine In- oder Out-Anweisung anstelle von Lade- oder Speicheranweisungen.
-- bearbeiten --
Wenn Sie sich die Definitionsdatei ansehen, die Sie gepostet haben, gibt es Folgendes:
; ***** I/O REGISTER DEFINITIONS *****************************************
; NOTE:
; Definitions marked "MEMORY MAPPED"are extended I/O ports
; and cannot be used with IN/OUT instructions
....
.equ TWCR = 0xbc ; MEMORY MAPPED
Ich vermute eigentlich, dass das Datenblatt falsch ist. Es wäre nicht verwunderlich, wenn dieser ganze Abschnitt über das TWI wörtlich aus einem anderen Datenblatt kopiert würde, dessen TWI-Schnittstelle IO-abgebildet und nicht speicherabgebildet ist, wie z. B. der ATMega32. Es ist nicht ungewöhnlich.
Babu James
Majenko
Majenko
Babu James
Babu James
Majenko
10111PPrrrrrPPPP out P,r
Die maximale Adresse, die er verwenden kann, ist also 2^6-1 oder 63 (0x3F). Sie füllten das bald auf, also mussten sie sich andere Möglichkeiten einfallen lassen, dies zu tun. Einige Chips verwenden OUT für einige Peripheriegeräte, einige für andere, und es gibt keine (oder wenig) Gemeinsamkeiten zwischen ihnen.