XMega Arbeitsweise richtig verstehen

Gast #2260001
Lesenswert?

Hallo.

Ich arbeite mich gerade in die XMega Familie von Atmel ein.
Ich hardere im Moment noch mit der Arbeitsweise dieser Controller.
Habe ich das richtig verstanden, dass für das Setzen eines einzelnen 
Bits immer das ganze Byte maskiert werden muss?

Ist es nicht möglich einzelne Bits zu adressieren?

Wo ist denn hier der Vorteil. Für eine Maskierung brauche ich doch mehr 
Maschinenzyklen als für eine Bitadressierung, oder nicht?

Kann mir jemand weiterhelfen?

Danke
Gast #2260016
Lesenswert?

Hi

>Habe ich das richtig verstanden, dass für das Setzen eines einzelnen
>Bits immer das ganze Byte maskiert werden muss?

Was must du da maskieren? Einfach die Bits im OUTSET-Register des Ports 
setzen.

MfG Spess
Gast #2260073
Lesenswert?

unter BIT Adressierung verstehe ich sowas wie:

PORTC.5=1;

wenn ich mache PORTC=0x20; ist das keine BIT Adressierung mehr. Wenn ich 
nun ein anderen PORT PIN setzen will und den Zusatnd der anderen nicht 
kenne und unverändert lassen möchte, muss ich eine Maskierung 
durchführen. Und so scheint das auch bei dem XMegas der Fall zu sein.
Gast #2260203
Lesenswert?

Se. Sk. schrieb:
> Du kannst entsprechend die Bit-Maske verwenden. z.B.
>
> PORTA.OUTSET = PIN2_bp;
>
> usw ...

Entschuldige, es muss heissen PINX_bm für die Maske, _bp ist die 
Bitposition. Diese kann man wie mans von den Atmegas kennt im Sinne von 
(1<<PINX_bp) verwenden.

Gruß
Gast #2260310
Lesenswert?

Hi

>Wenn ich
>nun ein anderen PORT PIN setzen will und den Zusatnd der anderen nicht
>kenne und unverändert lassen möchte, muss ich eine Maskierung
>durchführen. Und so scheint das auch bei dem XMegas der Fall zu sein.

Stimmt nicht. Die XMegas haben dafür 3 Register:

OUTSET - Data Output Value Set Register
OUTCLR - Data Output Value Clear Register
OUTTGL - Data Output Value Toggle Register

Das Schreiben einer 1 an eine Bitposition dieser Register Setzt, Löscht 
oder Toggled das entsprechende Ausgangspin ohne die anderen Pins zu 
beeinflussen.

MfG Spess

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