Hallo Leute,
ich habe ein Problem mit dem UART. Nachdem der Mega8 ein paar Mal ein
Byte gesendet hat(über Tasten druck), hängt der UART (im Simulator
wartet er in der while auf UDRE).
1 | int send_data(_int uart_data, _int device_id){
|
2 |
|
3 | PORTC |= 0x08;
|
4 | uart_data += device_id;
|
5 |
|
6 | while ( !( UCSRA & (1<<UDRE)) );
|
7 |
|
8 | UDR = uart_data;
|
9 |
|
10 | return _FALSE;
|
11 | }
|
Er es dauert sehr lange bis das Byte verarbeitet wird.
Könnt ihr mir sagen, warum der Atmega das Bit nicht gleich setzt?
Würde mich freuen auch etwas Hilfe
matthias