www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATMEGA zu XMEGA Code


Autor: Fabian K. (kalf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, gibt es. PORTA_OUT

Steht in der Application Note AVR1000, Seite 14

Autor: Martin e. C. (eduardo)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Fabian,

du kannst die Datei in Anhang nehmen bzw. sowas selber schreiben, dann 
geht alles so wie gewohnt!

Gruß
Martin

Autor: Fabian K. (kalf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: gastuser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vielleicht hilft dir, dass hier weiter:

http://www.stromflo.de/dokuwiki/doku.php?id=xmega-c-tutorial

Gruß gastuser

Autor: Gaast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bist du dir bewusst, was du da tust?

(*(&PORTA_OUT - 1)) ist das I/O Register PORTA.DIRTGL.

Oder haste das geändert?

Autor: komische idee (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.