Forum: Compiler & IDEs Bezeichnung PORTA wird beim Atxmega wohl nicht unterstützt?


von Faller (Gast)


Lesenswert?

Ich beschäftige mich ganz neu mit Mikrocontrollern und habe mir den 
neuen Atxmega128 zugelegt. Jetzt stellte ich fest das die vielen 
Progamme hier im Forum umgeschrieben werden müssen.
Der GCC-Compiler nimmt kein PORTA oder PINA mehr an. Es muss jetzt 
heißen PORTA.OUT oder PINA.OUT. Sehe ich das richtig? Gibt es 
irgendwelche schnelle Tricks?

von Marius W. (mw1987)


Lesenswert?

Nein, wenn ich das Headerfile vom XMega mal so anschaue, sind alle für 
einen Port wichtigen Register in eine struct PORT_t gewandert. Dort hast 
du Zugriff auf die komplette I/O-Logik. Also statt PINA muss es nun 
heißen PORTA.IN, DDRA wird zu PORTA.DIR PORTA.DIRSET PORTA.DIRCLR und 
PORTA.DIRTGL.

Tricks in dem Sinne gibts da sicher keine. Aber versuchs doch einfach 
mal mit nem define:
1
#define PINA PORTA.IN

Mehr kann ich leider zu den XMegas nicht sagen, da die für mich bisher 
nur aufm Papier existieren... Hab leider noch nie was dafür 
programmiert...

MfG
Marius

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


Lesenswert?

Faller wrote:

> Es muss jetzt
> heißen PORTA.OUT oder PINA.OUT.

Eher PORTA.OUT und PORTA.IN.

Beim Xmega haben offensichtlich die Hardwareentwickler ihrem Affen
ziemlich viel Zucker gegeben. ;-)  Man hat jetzt für jeden IO-Port
zahlreiche Möglichkeiten, wie man einzelne oder alle Bits setzen
oder löschen oder sonstwie manipulieren kann.  Wenn du die
entsprechenden Teile aus dem Datenblatt erstmal verstanden hast,
dann wird dir schnell klar werden, dass es auf Grund der nun möglichen
Entscheidungsvielfalt einfach gar nicht mehr möglich ist, wie bei den
bisherigen AVRs zu verfahren.  Dafür gehören eben auch solche AVR8-
Hacks wie das Toggeln eines Pins, indem man auf dem Eingaberegister
ein Bit schreibt, der Vergangenheit an.  Stattdessen gibt's jetzt
das Unterregister OUTTGL, bei dem diese Funktion von vornherein klar
ist.

von Matthias L. (matze88)


Lesenswert?

Wo wir beim Thema sind: Dieses Pin-Toggeln habe ich vor ungefähr 10 
Stunden kennengelernt, als ich nen Artikel hier gelesen hab. Wollte das 
erst korrigieren weil mir das so absurd vorkam, bis ich mir das 
Datenblatt nochmal geschnappt habe... Wer zum Teufel kommt denn auf die 
Idee, eine Passage über GPIOs nochmal neu zu lesen? Hätte nicht 
erwartet, dass die Mega 4/8/16 8 Reihe soviele Neuerungen mitbringt... 
Okay, einiges anderes hatte man ja auch vorher schon mitbekommen.

cu
Matze

von unbekannt (Gast)


Lesenswert?

....Wenn du die entsprechenden Teile aus dem Datenblatt erstmal 
verstanden hast, dann wird dir schnell klar werden,.....

Gibt es über diese Programmier-IO-Thematik ein spezifisches Datenblatt 
(Übersicht)?

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


Lesenswert?

unbekannt wrote:

> Gibt es über diese Programmier-IO-Thematik ein spezifisches Datenblatt
> (Übersicht)?

Das Kapitel über die normalen IO-Ports im ATxmegaA1 family datasheet.

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.