Forum: Mikrocontroller und Digitale Elektronik Portleitung beim ATXmega


von Peter Z. (Gast)


Lesenswert?

Hi,
ich versuche gerade vom ATtiny84 zum ATXmega16A4 zu migrieren.
wenn ich beim ATXmega sowas wie:
1
PORTD_OUTCLR = (1 << PD7);
schreibe bekomme ich beim compilieren mit dem Atmel Studio 6.1 die 
Fehlermeldung:
"PD7 undeclared (first use in this function)"

Beim ATtiny84 schrieb ich da z.B.:
1
PORTB &= ~(1 << PB2);
Was muss ich denn beim ATXmega16A4 statt PB2 schreiben?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Peter Zz schrieb:
> Was muss ich denn beim ATXmega16A4 statt PB2 schreiben?

Wie wäre es, einfach „2” zu schreiben?  Die Verklausulierung über
die Portpräfixe war doch immer nur Spiegelfechterei; als ob jemals
jemand in der Lage wäre, „PB2“ auf etwas anderes als „2“
umzudefinieren ...

von Bernhard F. (bernhard_fr)


Lesenswert?

Peter Zz schrieb:
> Was muss ich denn beim ATXmega16A4 statt PB2 schreiben?

PIN2_bm

von Mike J. (linuxmint_user)


Lesenswert?


von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Bernhard F. schrieb:
> Peter Zz schrieb:
>> Was muss ich denn beim ATXmega16A4 statt PB2 schreiben?
>
> PIN2_bm

Vorsicht, das wäre das Äquivalent für „(1 << PB2)“.  Die Frage lautete
(geringfügig) anders.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Peter Zz schrieb:
> schreibe bekomme ich beim compilieren mit dem Atmel Studio 6.1 die
> Fehlermeldung:
> "PD7 undeclared (first use in this function)"

 Richtigen Prozessor gewählt ?

von Bernhard F. (bernhard_fr)


Lesenswert?

Jörg Wunsch schrieb:
> Bernhard F. schrieb:
>> Peter Zz schrieb:
>>> Was muss ich denn beim ATXmega16A4 statt PB2 schreiben?
>>
>> PIN2_bm
>
> Vorsicht, das wäre das Äquivalent für „(1 << PB2)“.  Die Frage lautete
> (geringfügig) anders.

Gut, dass du darauf hinweist, für mich war das klar, aber ja das hätte 
ein schönes Missverständnis gegegeben so wie ich es formuliert habe...


Jedenfalls würde ich an der Stelle statt
1
(1 << PB2)
einfach die "Bitmaske" 0b0000 0100 bzw 0x04
1
PIN2_bm
verwenden.

Das Äquivalent für nur "PB2" ist dann
1
PIN2_bp
also "Bitposition", was in der Tat einfach nur eine simple "2" ist...

: Bearbeitet durch User
von Peter Z. (Gast)


Angehängte Dateien:

Lesenswert?

Bernhard F. schrieb:
> einfach PIN2_bm  verwenden.

Danke, siehe Bild  ;-)

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
Noch kein Account? Hier anmelden.