Forum: Mikrocontroller und Digitale Elektronik ATxmega128A1 USART Datenregister DATA lässt sich nicht beschreiben


von Alex (Gast)


Lesenswert?

Hallo,

ich bin gerade dabei für den ATxmega128A1 eine UART-Bibliothek zu 
schreiben, dabei habe ich allerdings ein Problem mit dem DATA-Register,
da sich dieses nicht beschreiben lässt. Ebenso kann ich kein DATA 
Register der USART's im Simulator anklicken, wie es bei anderen Register 
ja normalerweise
funktioniert um dort Bits zu setzen. Ein Test auf dem realen MC 
funktionierte ebenfalls nicht.
Als Software verwende ich bzw. habe ich ausprobiert:

AVRStudio 4.18 build 684 und 700 getestet
WINAVR vom 10.01.2010 und 13.03.2010 getestet

Die Initialisierung müsste dabei richtig sein, zumindest werden im 
Simulator 2 die richtigen Einstellungen angezeigt bei USARTE1. Kennt 
jemand zufällig eine Lösung für das Problem? Liegt es eventuell an 
AVRStudio?
1
void uart_init()
2
{
3
  //Interrupts deaktivieren
4
  cli();
5
6
  //Ein- und Ausgänge festlegen
7
  PORTE.DIR|=UART_PORT_DIRECTION;
8
9
  //Modus einstellen
10
  USARTE1.CTRLC=UART_CTRLC_ASYNCMODE|UART_CTRLC_NOPARITY|UART_CTRLC_1STOPBIT|UART_CTRLC_8BIT;
11
12
  //Baudrate einstellen
13
  USARTE1.BAUDCTRLA=UART_BSEL_19200BAUDL;
14
  USARTE1.BAUDCTRLB=UART_BSEL_19200BAUDH;
15
16
  //Interrupts aktivieren
17
  USARTE1.CTRLA=UART_CTRLA_RX_HIGHINTLEVEL|UART_CTRLA_TX_HIGHINTLEVEL;
18
19
  //Uart aktivieren
20
  USARTE1.CTRLB=UART_CTRLB_RX_ENABLE|UART_CTRLB_TX_ENABLE;
21
22
  //interrupts wieder freigeben
23
  sei();
24
}
25
26
void uart_send_singlebyte(u08 byte)
27
{
28
  //schauen, ob Sendebuffer bereit ist
29
  if ((USARTE1.STATUS&UART_STATUS_TRANSMITBUFFEREMPTY)!=0)
30
  {
31
    USARTE1.DATA=byte;
32
  }
33
}

Gruß,
Alex

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.