Hi,
Möchte ein Zeichen "x" an die RS232 Schnittstelle senden und es mit
einen Programm auslesen. Dass Programm auf dem PC geht zu 100%. Ich habe
laut Toturial folgenden Quellcode für meinen ATMega16 geschrieben:
1 | #include <avr/io.h>
|
2 |
|
3 | #ifndef F_CPU
|
4 | #define F_CPU 8000000UL //Einstellen der Oszillator - Frequenz in Hz
|
5 | #endif
|
6 |
|
7 |
|
8 | #define UART_UBRR_CALC(BAUD_,FREQ_) )((FREQ_)/((BAUD_)*16L)-1
|
9 |
|
10 | #define UART_BAUD_RATE 9600 //Einstellen der Baudrate
|
11 |
|
12 |
|
13 | int main (void)
|
14 | {
|
15 | //Initialisieren des UART´s
|
16 |
|
17 |
|
18 | UCSRB |= (1<<TXEN); //UART TX einschalten
|
19 | UCSRC |= (1<<URSEL) | (3<<UCSZ0); //Asynchron 8N1
|
20 |
|
21 | //Einstellen der Baudregister
|
22 |
|
23 | UBRRH = (uint8_t)(UART_UBRR_CALC(UART_BAUD_RATE, F_CPU) >> 8);
|
24 | UBRRL = (uint8_t) UART_UBRR_CALC(UART_BAUD_RATE, F_CPU);
|
25 |
|
26 | //Senden einzelner Zeichen
|
27 |
|
28 | while (!(UCSRA & (1<<UDRE))) //Warten, bis das Senden möglich ist
|
29 | {
|
30 |
|
31 | }
|
32 |
|
33 |
|
34 |
|
35 | UDR = 'x'; //Schreiben des Zeichens 'x' auf die RS232 - Schnittstelle
|
36 |
|
37 | return (0);
|
38 |
|
39 | }
|
Ich kann ihn aber nicht übersetzten. Bekomme immer Fehlermeldungen. Was
mache ich falsch?