Atxmega USART baudrate vom Preprozessor berechnen lassen.

OP #2483585
Lesenswert?

Es gibt für die ATmega Reihe einfachen code fuer den preprozessor um die 
Baudraten zu berechnen.

Gibt es sowas für den Xmega auch?

Es gibt zwar online Rechner und auch Tabellen die diese Werte ermitteln.

Nur ich suche sowas direkt für den Preprozessor
   int bsel = 1047;
   uint8_t bscale = 10;
   USARTE0.BAUDCTRLA = (uint8_t) bsel;
   USARTE0.BAUDCTRLB = (bscale << 4) | (bsel >> 8);
#2483630
Lesenswert?

Wenn du bscale auf 0 setzt/lässt, kannst du quasi denselben Code vom 
ATMEGA nutzen - mit denselben Einschränkungen.

Sonst fällt mir nur ein, den Preprozessor alle denkbaren bscale-Werte 
nacheinander durchzuprobieren, optimales bsel dazu berechnen und gucken, 
ob es passt. Eine direkte Berechnung des besten Wertes geht IMO nicht. 
Gemacht habe ich das aber noch nicht.
OP #2483997
Lesenswert?

ok ich bin bisle weiter:

Beitrag "Clock / ATxmega 128A1"

// Peripheral Clock output: Disabled
PORTCFG.CLKEVOUT=(PORTCFG.CLKEVOUT & (~PORTCFG_CLKOUT_gm)) |
PORTCFG_CLKOUT_OFF_gc;

oh man, da hätte ich auch selbst drauf kommen können...
Das Portcfg register ist im Atxmega datenblatt beschrieben

Bit 1:0 - CLKOUT[1:0] - Clock Output Port
CLKOUT[1:0] Group Configuration Description
00          OFF                 Clock out disabled
01          PC7                 Clock output on Port C pin 7
10          PD7                 Clock output on Port D pin 7
11          PE7                 Clock output on Port E pin 7


ich frage mich nur warum die das in dem Beispiel code davor extra 
abschalten.

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