Gast
#1291099
Im ATmega88 gibt es die drei Mehrzweck- Register GPIOR2:0. Welche Vor- oder Nachteile hat der Einsatz dieser Register im Vergleich mit Variablen die man selbst deklariert ?
|
Anzeige
|
GPIORx Register im ATmega88
Gast
#1291099
Im ATmega88 gibt es die drei Mehrzweck- Register GPIOR2:0. Welche Vor- oder Nachteile hat der Einsatz dieser Register im Vergleich mit Variablen die man selbst deklariert ? Die Register liegen im IO-Space, das heisst du kannst da z.B. mit den Bit-Befehlen drauf zugreifen, also SBI/CBI. Damit sind die für Flags sehr gut zu gebrauchen. Direkt lesen/schreiben des ganzen Registers geht dafür nur via IN/OUT. Nico Erfurth schrieb: > Die Register liegen im IO-Space, das heisst du kannst da z.B. mit den > Bit-Befehlen drauf zugreifen, also SBI/CBI. CBI/SBI gehen leider nur für GPIOR0, GPIOR1/2 liegen dafür bereits zu weit oben. Jörg Wunsch schrieb: > CBI/SBI gehen leider nur für GPIOR0, GPIOR1/2 liegen dafür bereits > zu weit oben. Dito für SBIS/SBIC und IN/OUT das geht nur bit GRIOR0. LD*, ST* gehen auf allen SFRs. GPIOR0 ist insbesondere interessant für globale Flags. CBI und SBI arbeiten atomar, man kann also problemlos Zustände mit ISRs austauschen. Johann Johann L. schrieb:
> Dito für SBIS/SBIC und IN/OUT das geht nur bit GRIOR0.
Nö, IN und OUT gehen auch auf GPIOR1/2, die sind immer noch im IO
address space, nur eben nicht in der unteren Hälfte, die mittels
CBI/SBI/SBIS/SBIC erreichbar ist.
Gast
#1291408
Schon mal schönen Dank an alle. Das mit den globalen Flags werde ich mal testen. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|