1. Das ist falsch rum:
1 | #include <util/delay.h>
|
2 |
|
3 |
|
4 | #define F_CPU 1000000UL
|
F_CPU muss VOR delay.h definiert sein, sonst kommt der Wert dort nicht
an. Normalerweise definiert man das über Compiler Flags im Makefile.
Der Fehler sollte auch eine Compilerwarnung auslösen! Warnungen sind zum
ernst nehmen da!
1 | while(UDRE == 0){}
|
2 | UDR = data;
|
3 | _delay_ms(1);
|
Zwei mal falsch.
2. UDRE ist eine Konstante:
Die ist immer != 0, die Schleife tut also nichts.
Du meinst das hier:
1 | while (USR & (1 << UDRE)) {}
|
3. Das _delay_ms hat da nichts zu suchen und funktioniert aufgrund von
Fehler 1 auch gar nicht richtig.
Grüße
da1l6