Guten Tag zusammen, ich beschäftige mich erst seit kurzer Zeit mit dieser Materie und arbeite mit dem STK 500 einem ATmega8 und dem AVR Studio sowie dem AVR Terminal. Nun zu meinem Problem: Habe das folgende Programm aus dem Buch von Roman Mittermayr auf meinen µC geladen und eine Verbindung über die serielle Schnittstelle zum AVR Terminal hergestellt. Auf dem Board habe ich die korrekten Pins mit TxD und RxD verbunden und bekomme auch eine ausgabe im Terminal allerdings nur merkwürdige Zeichen :( Hier der Quellcode:
1 | /*
|
2 | Serielle Kommunikation
|
3 | Minimale Ausführung
|
4 | |
5 | ATMEGA8/16/32 und kompatibel
|
6 | STK500 mit dem STK500 Oszillator (3.68 MHz)
|
7 | Baudrate: 9600 (8N1)
|
8 | |
9 | Roman Mittermayr
|
10 | AVRBUCH.DE
|
11 | */
|
12 | |
13 | #include <avr/io.h> |
14 | |
15 | #define TAKT 3680000
|
16 | #define UART_BAUDRATE 9600
|
17 | |
18 | // Berechnung der Konfigurationsparameter
|
19 | #define UART_SETTING ((TAKT/16L/UART_BAUDRATE)-1)
|
20 | |
21 | |
22 | void setup_uart() |
23 | {
|
24 | /* Baudrate einstellen */
|
25 | UBRRH = (char) (UART_SETTING >> 8); |
26 | UBRRL = (char) (UART_SETTING); |
27 | |
28 | /* Empfänger und Sender einschalten */
|
29 | UCSRB = (1<<RXEN) | (1<<TXEN); |
30 | |
31 | /* Asynchron, 8N1 */
|
32 | UCSRC = (1<<URSEL) | (3<<UCSZ0); |
33 | }
|
34 | |
35 | void uart_putchar(char c) |
36 | {
|
37 | // Warten bis Buffer bereit ...
|
38 | while (!(UCSRA & (1 << UDRE))) |
39 | ;
|
40 | |
41 | // Senden...
|
42 | UDR = c; |
43 | }
|
44 | |
45 | void uart_putstring(char *str) |
46 | {
|
47 | unsigned char i; |
48 | |
49 | for (i=0;i<255;i++) /* Maximal 255 Zeichen ausgeben ... */ |
50 | {
|
51 | if (str[i] != 0) |
52 | uart_putchar(str[i]); |
53 | else
|
54 | break; // Ende des Strings erreicht |
55 | }
|
56 | }
|
57 | |
58 | |
59 | int main(void) |
60 | {
|
61 | /* RS232 einschalten ... */
|
62 | setup_uart(); |
63 | |
64 | /* Willkommensnachricht senden ... */
|
65 | uart_putstring("AVRBUCH.DE - RS232 [OK]...\r\n\r\n"); |
66 | |
67 | while (1) |
68 | {
|
69 | }
|
70 | |
71 | return 0; |
72 | }
|
Habe auch noch einen Screenshot gemacht(siehe Anhang)