Gast
#1748766
Hallo Leute, im Zuge des FreeRTOS-Projekts, das ich hier -> Beitrag "Mutexes und Semaphores in FreeRTOS" mehr oder weniger beschrieben habe, muss ich jetzt die Ausgabe von Log-Daten über den seriellen Port vom GTK600-Board (mit einem AT90CAN128 drauf) organisieren. Der entsprechende USART-Treiber fand sich bei mitschang.net, ich hänge den Source und den Header als Datei an. Und dann habe ich, um es erst mal zu testen, eine ganz einfache main.c zusammengewurschtelt (meinstens ebenfalls aus den anderen FreeRTOS-Demos zusammenkopiert und entsprechend angepasst): ----------------------------------------------------------
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
---------------------------------------------------------- Das Projekt wird ohne Fehler und Warnungen kompiliert, und die LEDs 0, 1 und 4 (Indiz dafür dass die Ausgabe des Zeichens "2" an USART ein pdPASS zurückgab) gehen ordnungsgemäß an und aus - jedoch sehe ich niemals etwas in PUTTY ankommen. Die Initialisierung von UART klappt; das sieht man im AVR-Studio an den entsprechenden Registerwerten (ist zwar nicht ganz klar, ob die Werte tatsächlich vom Programm in die Register reingeschrieben werden oder ob sie schon per default so sind, wenn man das Board einschaltet). Wie auch immer - das Lesen und Senden von Daten über UART klappt problemlos, das ließ sich mit einem kleinen (nicht von mir geschriebenenen ;) ) AVR-Assembler-Projekt erfolgreich testen. Und auch wenn ich die "if ( xSerialPutChar... "-Abfrage auskommentiere und dafür ganz stupide "UDR0 = 0xdd" an diese Stelle schreibe (also ein Zeichen direkt in den Senderegister vom Controller stopfe), wird im PUTTY im Sekundentakt ein neues komisches Zeichen geschrieben, so wie es sich gehört. Was mache ich also falsch (oder was ist evtl. am seriellen Treiber falsch)? Danke und Gruß, Max