Hallo
Ich versuche schon seit ner weile meinen AVR zu initialisieren, dass Problem mein AVR Studio das mit dem winavr-gcc arbeitet findet den 'UBRRH0' ausdruck nicht ich vermute das mir eine include Datei fehlt.
Ich habe mich ganz an das Datenblatt gehalten.
Und das Resultat ist,Code:/* UART-Init: Berechnung des Wertes für das Baudratenregister aus Taktrate und gewünschter Baudrate */ #ifndef F_CPU #warning "F_CPU war noch nicht definiert, wird nun nachgeholt mit 8000000" #define F_CPU 8000000UL // Systemtakt in Hz - Definition als unsigned long beachten // Ohne ergeben sich unten Fehler in der Berechnung #endif #define BAUD 9600UL // Baudrate // Berechnungen #define UBRR_VAL ((F_CPU+BAUD*8)/(BAUD*16)-1) // clever runden #define BAUD_REAL (F_CPU/(16*(UBRR_VAL+1))) // Reale Baudrate #define BAUD_ERROR ((BAUD_REAL*1000)/BAUD) // Fehler in Promille, 1000 = kein Fehler. #if ((BAUD_ERROR<990) || (BAUD_ERROR>1010)) #error Systematischer Fehler der Baudrate grösser 1% und damit zu hoch! #endif #include <avr/io.h> #include <avr/interrupt.h> void USART_Init( unsigned int baud ) { /* Set baud rate */ UBRRH0 = (unsigned char)(baud>>8); UBRRL0 = (unsigned char)baud; /* Enable receiver and transmitter */ UCSR0B = (1<<RXEN0)|(1<<TXEN0); /* Set frame format: 8data, 2stop bit */ UCSR0C = (1<<USBS0)|(3<<UCSZ00); } int main (void) { USART_Init() ; // bei neueren AVRs steht der Status in UCSRA/UCSR0A/UCSR1A, hier z. B. fuer ATmega16: while (!(UCSR0A & (1<<UDRE0))) /* warten bis Senden moeglich */ { } UDR0 = 'x'; /* schreibt das Zeichen x auf die Schnittstelle */ }
Ich weis das Es irgendein einfacher Fehler ist nur ich find in nicht.Code:Build started 19.3.2011 at 15:34:49 avr-gcc -mmcu=atmega644 -Wall -gdwarf-2 -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT test.o -MF dep/test.o.d -c ../test.c ../test.c:9:2: warning: #warning "F_CPU war noch nicht definiert, wird nun nachgeholt mit 8000000" ../test.c: In function 'USART_Init': ../test.c:33: error: 'UBRRH0' undeclared (first use in this function) ../test.c:33: error: (Each undeclared identifier is reported only once ../test.c:33: error: for each function it appears in.) ../test.c:34: error: 'UBRRL0' undeclared (first use in this function) ../test.c: In function 'main': ../test.c:43: error: too few arguments to function 'USART_Init' make: *** [test.o] Fehler 1 Build failed with 5 errors and 1 warnings...
Danke.







Zitieren
Lesezeichen