Hallo.
Ich bin neu hier dehalb erst mal ein Gruß an alle.
Nun zu meinem Problem.
Ich möchte über uart einen string an mein Terminal senden.
Habe dazu den Code aus dem AVR-GCC Tutorial benutzt.
Leider funktioniert es nicht.(es kommt nichts an)
Einzelne Zeichen kann ich senden und empfangen, also denke ich mal, dass
es nicht an der Baudrate liegt.
Ich benutze;
AVR Studio 4 Service Pack 3
WinAVR-20100110
Atmega88
Quarz 18,432 MHZ
Hier mal mein Code:
1 | #include <avr/io.h>
|
2 |
|
3 |
|
4 |
|
5 |
|
6 | void uart_init()
|
7 | {
|
8 | // Einstellen der Baudrate
|
9 | UBRR0H=0;
|
10 | UBRR0L = 119;
|
11 | //UART Receiver und Transmitter einschalten
|
12 | UCSR0B = (1<<RXEN0) | (1<<TXEN0);
|
13 | }
|
14 | //_______________________________
|
15 | int uart_putc(unsigned char c)
|
16 | {
|
17 | while (!(UCSR0A & (1<<UDRE0))) // warten bis Senden moeglich
|
18 | {
|
19 | }
|
20 |
|
21 | UDR0 = c; // sende Zeichen
|
22 | return 0;
|
23 | }
|
24 | //___________________________
|
25 | void uart_puts (char *s)
|
26 | {
|
27 | while (*s)
|
28 | { // so lange *s != '\0' also ungleich dem "String-Endezeichen"
|
29 | uart_putc(*s);
|
30 | s++;
|
31 | }
|
32 | }
|
33 | //______________________________
|
34 | int main (void)
|
35 | {
|
36 | uart_init();
|
37 | char wert[]="hallo";
|
38 | uart_puts (wert);
|
39 | }
|
40 | return 0;
|
41 | }
|
Also beim Kompilieren gibt es keine Fehler oder Warnungen.
Danke schonmal für eure Hilfe.
Gruß Matze