Hallo,
ich habe ein Problem mit der UART Lib von Peter Fleury:
1 | void uart_putc(unsigned char data)
|
2 | {
|
3 | unsigned char tmphead;
|
4 |
|
5 |
|
6 | tmphead = (UART_TxHead + 1) & UART_TX_BUFFER_MASK;
|
7 |
|
8 | while ( tmphead == UART_TxTail ){
|
9 | ;/* wait for free space in buffer */
|
10 | }
|
11 |
|
12 | UART_TxBuf[tmphead] = data;
|
13 | UART_TxHead = tmphead;
|
14 |
|
15 | /* enable UDRE interrupt */
|
16 | UART0_CONTROL |= _BV(UART0_UDRIE);
|
17 |
|
18 | }/* uart_putc */
|
Wenn ich mittels uart_puts("dsadkljK") etwas verschicken will bleibt der
Controller auf der Zeile
1 | while ( tmphead == UART_TxTail ){
|
stehen. In beiden Variablen steht dann eine 0x12...
Wieso ist das so? Wieso while() ohne darin was zu tun?
Vielleicht kann mir jemand weiterhelfen, in jedem Fall vielen Dank!
Thomas