Hallo Ich würde gerne eine RS232 verbindung mit meinem PC und dem Atmega162 herstellen. Nun habe ich einige Beispiele mir angeschaut und mit Hilfe des Datenblattes folgendes geschrieben:
1 | #include <avr/io.h> |
2 | #include <avr/iom162.h> |
3 | |
4 | |
5 | #define FOSC 16000000// Clock Speed
|
6 | #define BAUD 9600
|
7 | #define MYUBRR FOSC/16/BAUD-1
|
8 | |
9 | |
10 | void USART_Init( unsigned int ubrr ); |
11 | void USART_Transmit( unsigned char data ); |
12 | |
13 | int main( void ) |
14 | {
|
15 | USART_Init ( MYUBRR ); |
16 | }
|
17 | |
18 | void USART_Init( unsigned int ubrr ) |
19 | {
|
20 | UBRRH = (unsigned char)(ubrr>>8); |
21 | UBRRL = (unsigned char)ubrr; |
22 | /* Anabole receiver ?nd transmitter */
|
23 | UCSRB = (1<<RXEN)|(1<<TXEN); |
24 | /* Set frame format? 8data, 2stop bit */
|
25 | UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0); |
26 | }
|
27 | |
28 | void USART_Transmit( unsigned char data ) |
29 | {
|
30 | /* Wait for empty t?ansmit buffer */
|
31 | while ( !( UCSRA & (1<<UDRE)) ) |
32 | ;
|
33 | /* Put data into bu?fer, sends the data */ |
34 | UDR = data; |
35 | }
|
Leider wirft der Compiler immer fehler aus. Ist der Code falsch oder fehlt mir noch etwas? Danke im vorraus Chris
