Usart beim Xmega128a3

OP #3504153
Lesenswert?
• ▲
▼
Hallo

Hab ein kleines Problem mit dem Xmega.

Und zwar habe ich ein Board, wo ein Grafik-display mit einem Xmega128a3 
verbunden ist.
Intern sind sie mit D1->Reset; D2->RX; und D3->TX

Baudrate soll 9600 sein.
Mit Usart wird der Grafikcontroller Picaso SGC angesteuert.

Habe ich im programm einen Fehler?
Angehängte Dateien:
#3504281
Lesenswert?
• ▲
▼
Hallo,

ohne Deinen Code genau durchgeschaut zu haben, ist mir aufgefallen, dass 
Deine Baudberechnung meiner Meinung nach nicht stimmt.
Bei 32MHz und 9600 Baud wäre der günstigste Wert für BSCALE -4 und für 
BSEL 3317. Das würde für
USARTD0.BAUDCTRLA = 0b11110101;
und
USARTD0.BAUDCTRLB = 0b10111100;
ergeben.
#3504386
Lesenswert?
• ▲
▼
Genau, probiers einfach aus. Du kannst für BSEL und BSCALE zwei 
Variablen verwenden z.B.:
  uint16 BSEL=1539;
  int8 BSCALE=-7;
Ich hab gerde gesehen, dass ich im letzten Beitrag BSEL und BSCALE 
verwechselt habe.

und die Variablen so zuweisen:
USARTD0.BAUDCTRLA  = (uint8) (BSEL);
USARTD0.BAUDCTRLB  = (uint8) (BSEL>>8) | (BSCALE & 0x80) | (BSCALE<<4) ;

So habe ich es in meinem letzten Projekt gelöst

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren