mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik UART lesen Xmega


Autor: Faller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit diesem Code kann ich Daten vom Xmega an meinem PC schicken. Aber 
leider empfängt er nichts??


volatile uint16_t receivedData;

void USART_Receive(void)
{
    /* Receive one char. */
    /* Wait until data received or a timeout.*/
    while ( !( USARTC0.STATUS & USART_RXCIF_bm) );
    receivedData = USARTC0.DATA;
}


void USART_Transmit(unsigned char data)
{
   /* Wait for empty transmit buffer */
   //while ( !( UCSR0A & (1<<UDRE0)) )
   while ( !( USARTC0.STATUS & USART_DREIF_bm) )
      ;
   /* Put data into buffer, sends the data */
   USARTC0.DATA = data;
   //UDR0 = data;
}


void USART_Init(unsigned int bsel)
//void USART_Init(unsigned int ubrr)
{
   /* Set baud rate */
   USARTC0.BAUDCTRLB = (unsigned char)(bsel>>8);

   USARTC0.BAUDCTRLA = (unsigned char)bsel;
   //UBRR0H = (unsigned char)(ubrr>>8);
   //UBRR0L = (unsigned char)ubrr;

   /* Set frame format: 8data, 1 stop bit */
  USARTC0.CTRLC = (USARTC0.CTRLC & ~USART_CHSIZE_gm) | 
USART_CHSIZE_8BIT_gc;
   //UCSR0C = (3<<UCSZ00);

   /* Enable receiver and transmitter */
   USARTC0.CTRLB = (USART_RXEN_bm | USART_TXEN_bm);
    //UCSR0B = (1<<RXEN0)|(1<<TXEN0);
}


int main(void)
{
PORTC.DIR |= 0x08;
USART_Init(0x0C);
while(1)
    {
    USART_Receive();
    USART_Transmit(receivedData);
    }
return 0;
}

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Georg Schmied (georgschmied)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mann wo habt ihr die Steine her?

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Firma.

Autor: Georg Schmied (georgschmied)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welche Firma? Sag dieser Firma sie soll sie mir auch besorgen. Ich zahle 
auch.

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Immer ruhig Blut. Als Firma kann man Samples ordern, wenn man so fair 
ist, die Steine später auch zu verwenden. Als Privatperson kannst Du 
welche erschleichen (pfui!) oder auf die Markteinführung warten 
(besser). Und ich unterstelle mal, daß es bei Dir nicht sooo dringend 
sein kann. Bedenke: für die Umarbeitung vom gewöhnten AVR-Stoff hin zum 
XMega wirst Du auch ein gutes Stück Zeit brauchen. Zum Weihnachten in 
diesem Jahr wird´s also noch nichts.

Autor: Gerd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rechne mal frühestens mit Frühjahr 09...

Autor: Nix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe so ein gefühl das hier etwas nicht stimmt:

void USART_Receive(void)
{
    /* Receive one char. */
    /* Wait until data received or a timeout.*/
    while ( !( USARTC0.STATUS & USART_RXCIF_bm) );
    receivedData = USARTC0.DATA;
}

Autor: Nix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alles in Ordnung- eine Einstellung bei der Programmierung des Aktuellen 
Quellcodes stimmte nicht

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.