GPIOR1,2,3 beim tiny gar nicht über IO erreichbar?

Gast #6874812
Lesenswert?
• ▲
▼
Nabend.

Ich glaub ich steh grad auf dem Schlauch.... aber beim attiny88 ist zwar 
der GPIOR0 via sbi und cbi erreichbar, aber die höheren sind es nicht. 
WTF? Wie soll ich die denn da oben elegant für Flags benutzen? Bei den 
anderen tinys und megas, die ich so kenne, sind alle 4 im IO-Space.
#6874834
Lesenswert?
• ▲
▼
(prx) A. K. schrieb:
> Weil diese Bitbefehle nur die Datenadressen 0x20..0x3F bzw I/O-Adressen
> 0x00..0x1F ansprechen können.

Hmm, stimmt. Das war mir gar nicht bewusst. Ich dachte immer, dass die 
den ganzen I/O-Bereich abdecken. Dann sind GPIOR1/2 tatsächlich recht 
sinnlos, und das Datenblatt ist diesbezüglich fehlerhaft. Das behauptet 
nämlich, dass das mit allen GPIORs ginge:

"ATtiny48/88 also contains three general purpose I/O registers that can 
be used for storing any information. See GPIOR0, GPIOR1 and GPIOR2 in 
“Register Summary” on page 277. These general purpose I/O registers are 
particularly useful for storing global variables and status flags, since 
they are accessible to bit-specific instructions such as SBI, CBI, SBIC, 
SBIS, SBRC, and SBRS."
#6874835
Lesenswert?
• ▲
▼
Jan schrieb:
> Bei den
> anderen tinys und megas, die ich so kenne, sind alle 4 im IO-Space.

In der Entwicklung der AVRs galt anfangs ziemlicher Wildwuchs, was die 
Adressbelegung im I/O-Bereich anging. Die war bei jeder Baureihe anders. 
Irgendwann fand Atmel es bei den Megas passend, den Adressraum über die 
verschiedenen Typen hinaus zu vereinheitlichen.

Und so hat eben der ATmega88 die gleiche Adressbelegung wie der 
ATmega2561. Und folglich riesige Löcher im bitadressierbaren Bereich, 
während beim dicken Kollegen alles mit mit seinen vielen Ports, Timern 
und Interrupts vollgestopft ist.

Die meisten Tinys blieben davon verschont, auch neuere. Der ATtiny88 ist 
allerdings nur dem Namen nach ein Tiny, technisch jedoch ein 
funktionsreduzierter ATmega88.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.