Gast
#2292274
Hallo zusammen, Verzweifle gerade daran meinen UART-Port ans laufen zu bekommen. Habe das MyAVR Mk2 Board und benutze WinAVR. Hab es einfach mal mit dem Programm von Kreatives-Chaos versucht aber ich bekomme einfach nicht gesendet oder empfangen. Hier der Quellcode: #include <avr/io.h> #include <inttypes.h> // Sollte schon im Makefile definiert sein. // In dem Fall hier einfach löschen. #define F_CPU 3686400UL #define BAUD 9600UL #define UBRR_BAUD ((F_CPU/(16UL*BAUD))-1) // USART initialisieren void uart_init(void) { // Baudrate einstellen (Normaler Modus) UBRRH = (uint8_t) (UBRR_BAUD>>8); UBRRL = (uint8_t) (UBRR_BAUD & 0x0ff); // oder einfacher: // UBRR = UBRR_BAUD; // Aktivieren von receiver und transmitter UCSRB = (1<<RXEN)|(1<<TXEN); // Einstellen des Datenformats: 8 Datenbits, 1 Stoppbit UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0); } int main(void) { uint8_t buffer; // USART initialisieren uart_init(); while (1) { // Warten bis Daten empfangen wurden while ( !(UCSRA & (1<<RXC)) ) ; // Empfangsregister auslesen buffer = UDR; // Warten bis der Sendepuffer frei ist while ( !( UCSRA & (1<<UDRE)) ) ; // Daten in den Puffer schreiben und damit senden UDR = buffer; } } Würde mich freuen wenn mich jemand unterstützen könnte.