Hallo, ich habe folgendes Kompatibilitätsproblem mit meinem XMEGA: Bei "alten" ATMEGA Codes wird der Port of so definiert: #define PORT PORTA bei einem XMEGA entspricht PORTA aber einem struct von typ port_t, wodurch nicht mehr direkt auf dem Ausgang zugegriffen werden kann, oder? eine Änderung auf die Variable PORTA_OUT wäre zwar möglich, aber geht dann folgende Funktion zur Änderung der DDR noch: #define DDR(x) (*(&x - 1)) /* address of data direction register of port x */ wenn DDR(PORTA) übergeben wird? Oder gibt es eine Variable im XMEGA welcher der alten PORT Variable im ATMEGA entspricht? Vielen dank für eine Antwort
Hallo Fabian, du kannst die Datei in Anhang nehmen bzw. sowas selber schreiben, dann geht alles so wie gewohnt! Gruß Martin
Erstmal danke für die Antworten! Leider habe ich noch immer ein Problem bei der Verwenung folgendes Befehls: #define DATA0_PIN 6 #define DATA1_PIN 5 #define DATA2_PIN 4 1: DDR(PORTA_OUT) |= _BV(DATA0_PIN); 2: DDR(PORTA_OUT) |= _BV(DATA1_PIN); 3: DDR(PORTA_OUT) |= _BV(DATA2_PIN); komischerweise löschen die Befehle zuerst das gesamte DDR Register des Ports.
vielleicht hilft dir, dass hier weiter: http://www.stromflo.de/dokuwiki/doku.php?id=xmega-c-tutorial Gruß gastuser
Bist du dir bewusst, was du da tust? (*(&PORTA_OUT - 1)) ist das I/O Register PORTA.DIRTGL. Oder haste das geändert?
der xmega is recht nahe an der ansteuerung der der ARM serie was geradezu einem aufdrängt einen ARM cortex zu nutzen ^^ da passt der kern wenigstens zum rest :P
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.