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; }
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.
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; }
Alles in Ordnung- eine Einstellung bei der Programmierung des Aktuellen Quellcodes stimmte nicht
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.