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

Eine eigene Frage? Dieser Thread ist über 12 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.