Hallo Leute, ich versuche gerade meine Assemblerroutinen in C umzusetzen. Leider bisher ohne Erfolg. Speziell geht es um die Initialisierung der UART. Wahrscheinlich ein einfacher Anfängerfehler
1 | #define F_CPU 8000000
|
2 | |
3 | #include <avr/io.h> |
4 | #include <util/delay.h> |
5 | #include <string.h> |
6 | #include <inttypes.h> |
7 | |
8 | |
9 | //------------------------------------------------------------------------
|
10 | // Definitionen
|
11 | //------------------------------------------------------------------------
|
12 | #define BAUD 9600 // definiert Baudrate
|
13 | #define UBRR_VAL ((F_CPU+BAUD*8)/(BAUD*16)-1) // berechnet Wert für Baudratenregister (Wert gerundet)
|
14 | |
15 | |
16 | //------------------------------------------------------
|
17 | // Deklaration der Funktionen
|
18 | //------------------------------------------------------
|
19 | void initUART (void); // Befehl an Display |
20 | |
21 | |
22 | //------------------------------------------------------
|
23 | // Mainfunktion
|
24 | //------------------------------------------------------
|
25 | int main (void) |
26 | {
|
27 | |
28 | while(1); |
29 | }
|
30 | |
31 | |
32 | |
33 | //------------------------------------------------------
|
34 | //
|
35 | //------------------------------------------------------
|
36 | void initUART(void) |
37 | {
|
38 | |
39 | UCSRB |= (1<<RXCIE)|(1<<RXEN)|(1<<TXEN); // Empfang aktivieren |
40 | UCSRC |= (3<<UCSZ0); // Frame Format: Asynchron 8N1 |
41 | |
42 | UBRRH = UBRR_VAL >> 8; // Baudrate übergeben |
43 | UBRRL = UBRR_VAL; |
44 | }
|
Kann mir jemand sagen warum die I/O-Register alle als undeclared geführt werden?