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
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
spess53 schrieb: > Was must du da maskieren? Einfach die Bits im OUTSET-Register des Ports > setzen. So etwa: LEDPORT.OUTSET = 0xff?
Hi
>So etwa: LEDPORT.OUTSET = 0xff?
Ich habe noch nicht mit XMegas gearbeitet. Aber genau so verstehe ich
die Beschreibung im A-Manual.
MfG Spess
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.
Du kannst entsprechend die Bit-Maske verwenden. z.B. PORTA.OUTSET = PIN2_bp; usw ...
Pull-Up usw. geht mit dem Pin-Control-Register. PORTA.PIN6CTRL = PORT_OPC_PULLUP_gc; etc.
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ß
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
Auch der XMega kann die Bitbefehle SBI, CBI, SBIS, SBIC. Dazu muß man die Ports nur in den IO-Space bis 0x1F mappen. Peter
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.