Forum: Mikrocontroller und Digitale Elektronik Atxmega USART baudrate vom Preprozessor berechnen lassen.


von Simon M. (simon2)


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);

von Detlev T. (detlevt)


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.

von Simon M. (simon2)


Lesenswert?

Irgendwas stimmt hier noch nicht. Wie kann man den haupt Takt an einen 
Pin ausgeben? ich habe im datenblatt gesehen das es bei ATxmega32A4 am 
PC7 ein CLKOUT gibt.
Wie kann man den einschalten?

von Simon M. (simon2)


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.

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
Noch kein Account? Hier anmelden.