Hallo,
ich habe ein kleines oder auch großen Problem mit der Uart Library von
Peter Fleury und IRMP von Frank M.
Folgenden Ablauf des Programmes war geplant:
Sobald ein IR-Signal empfangen wurde, soll dieses über Uart an den PC
gesendet werden.
Im großen und ganzen hab ich mich an die jeweiligen Anleitungen gehalten
und bin in der Main zum testen wie folgt vorgegangen.
1 | IRMP_DATA irmp_data;
|
2 | irmp_init();
|
3 | timer1_init();
|
4 | sei ();
|
5 | uart_init( UART_BAUD_SELECT(UART_BAUD_RATE,F_CPU) );
|
6 | uart_puts("Testprogramm\r\n");
|
7 |
|
8 | while(1)
|
9 | {
|
10 | if (irmp_get_data (&irmp_data))
|
11 | {
|
12 | uart_puts('Empfangstest');
|
13 | }
|
14 | }
|
Von Prinzip her funktioniert alles. Das "Testprogramm" wird korrekt
gesendet und kommt auch korrekt am PC an. Das "Empfangstest" wird aber
nur sehr sporadisch beim drücken einer Fernbedienungstaste gesendet bzw.
kommt es nur sporadisch am PC an.
Ich hab auch mal einen Breakpoint bei uart_puts gesetzt und dann mit
einem Debugger debuggt. Ergebnis: Die uart_puts wird jedesmal beim
drücken einer Taste auf der Fernbedienung aufgerufen. Auch die IR-Codes
wurden richtig erkannt.
Warum er trotz korrekten Aufruf nichts sendet, ist mir schleierhaft.
Ich habe auch mal in der while versucht zyklisch über uart was zu
senden.
1 | _delay_ms(100);
|
2 | uart_puts("Test");
|
Das hat auch tadellos funktioniert, sprich es kamen am PC alle 100ms ein
"Test" an.
Da ich noch ein großer Anfänger in Sachen Mikrocontrollerprogrammierung
bin, weiß ich mir nicht anders zu helfen als um Rat zu fragen.
Vielen Dank im Voraus
Mfg Karl