Atxmega 128a1

Gast #4047471
Lesenswert?
• ▲
▼
Hallo alle zusammen
Ich versuche eine bibliothek(Ansteuerung) für nokia 5110 zu schreiben 
für Atxmega 128a1.Dafür habe ich  bibliothek von atmega8 genommen und 
versuche die umzuschreiben.Ständig kriege ich folgende 
Fehlermeldung:siehe Anhang

kann mir jemand sagen wie man dieser fehler lösen kann?

Für jeder Hilfe würde ich dankbar.
Angehängte Dateien:
Moderator Persönliche Seite #4047477
Lesenswert?
• ▲
▼
Erik schrieb:
> kann mir jemand sagen wie man dieser fehler lösen kann?

Indem du den Code wirklich portierst.

Das fängt doch schon damit an, dass ein ATxmega eben nun einmal
kein Register namens DDRB hat, sondern dass man dort mit PORTB.DIR
und dergleichen arbeiten muss.

p.s.: Wenn du das überflüssige Semikolon hinter dem #define für
den LCD-Port wegnimmst, könnten sich ja vielleicht erstmal die
Syntaxfehler in Luft auflösen …
(Firma: matzetronics) #4052906
Lesenswert?
• ▲
▼
Erik schrieb:
> Wiso Antwortest du wenn du selber nicht weist?

So wird das nichts. Wie Jörg schon sagte, ist die Syntax zwischen den 
ATMega und dem XMega deutlich geändert worden, so das es z.B. kein DDR 
Register mehr gibt, sondern PORT.DIRSET und PORT.DIRCLR.

Man schreibt auch nicht mehr (1<<PB2), sondern PIN2_bm, wie z.B. so:
1
  PORTF.DIRSET   = PIN3_bm;   // Pin 3 (TXD0) as output.
2
  PORTF.DIRCLR   = PIN2_bm;   // Pin 2 (RXD0) as input.
Du wirst den Grossteil des Codes umschreiben müssen, und evtl. an deiner 
Kommunikation arbeiten müssen, denn sonst werden dir hier nicht viele 
Leute weiterhelfen.
Gast #4052982
Lesenswert?
• ▲
▼
Matthias Sch. schrieb:
> Erik schrieb:
>> Wiso Antwortest du wenn du selber nicht weist?
>
> So wird das nichts. Wie Jörg schon sagte, ist die Syntax zwischen den
> ATMega und dem XMega deutlich geändert worden, so das es z.B. kein DDR
> Register mehr gibt, sondern PORT.DIRSET und PORT.DIRCLR.
>
> Man schreibt auch nicht mehr (1<<PB2), sondern PIN2_bm, wie z.B. so:
> PORTF.DIRSET   = PIN3_bm;   // Pin 3 (TXD0) as output.
>   PORTF.DIRCLR   = PIN2_bm;   // Pin 2 (RXD0) as input.
> Du wirst den Grossteil des Codes umschreiben müssen, und evtl. an deiner
> Kommunikation arbeiten müssen, denn sonst werden dir hier nicht viele
> Leute weiterhelfen.

Danke dir fürs Antwort!
Moderator Persönliche Seite #4055750
Lesenswert?
• ▲
▼
Erik schrieb:
> Wiso Antwortest du wenn du selber nicht weist?

Weil du mich nicht damit beauftragt hast, die Portierung für dich zu
erledigen, sondern den Eindruck erweckst, dass du das selbst tun willst.
Dafür solltest du dich aber zumindest bemühen, die Unterschiede zwischen
beiden Architekturen so weit zu verstehen, dass du wenigstens einen
Anfang einer Portierung machen kannst.  Im Moment ist es mein 
Eindruck,
dass du schlicht und ergreifend rein gar nichts hast, was irgendwie den
Namen „Portierung“ verdienen würde.

Klar kann das auch jemand anders für dich tun, aber dann solltest du
1.) exakt danach fragen und 2.) lernst du dann dabei nichts für die
Zukunft.  Beim nächsten Mal müsstest du also wieder jemanden finden,
der es für dich tut (und dabei ist es egal, ob das nächste Mal wieder
Code von einem MegaAVR auf einen Xmega zu portieren ist oder welcher
von einem ARM auf einen anderen mit anderen Peripherals).

Matthias Sch. schrieb:
> so das es z.B. kein DDR Register mehr gibt

Gibt's auch noch, heißt dort “DIR”.  Kann man benutzen, wenn man die
Datenrichtung der Pins eines ganzen Ports auf einmal festlegen will.
Meist will man aber an einer Stelle eher einzelne Pins festlegen, da
sind DIRSET und DIRCLR handlicher.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.