uart_puts funktioniert nur sporadisch (zusammen mit IRMP)

Gast #3697486
Lesenswert?

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
Angehängte Dateien:
Moderator Persönliche Seite #3702949
Lesenswert?

Karl schrieb:
> In der while nutze ich auch uart_putc statt uart_puts. Es funktioniert
> leider auch mit uart_puts und "" nicht.

Nö, oben in der while-Schleife steht auch uart_puts. Und das will einen 
String. Strings werden in C mit Geänsefüßchen und nicht mit Hochkommata 
eingeschlossen.

Du musst doch zumindest eine Warnung vom C-Compiler bekommen haben?

Bitte alle Warnungen vom Compiler ernst nehmen und beheben. Dann bist Du 
schon mal ein gehöriges Stück weiter.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren