USART Problem (Anfänger)

Gast #2070402
Lesenswert?

Hallo,

Ich versuche gerade ein Programm zu schreiben welches beim Empfang von 
"on" eine LED einschaltet.

Prinzipiell funktoniert bei mir die Kommunikation zwischen PC und AVR.
Ich denke ich habe einen Fehler bei der Abfrage: if(Line == "on")
Muss ich hier noch das '\n' und '\0' mitabfragen. (hab ich eigentlich 
schon alles versucht)
Oder stimmt etwas mit meinen Datenformaten nocht?

Für Tipps zu einem Lösungsansatz wäre ich recht dankbar.

Danke im Voraus
mfg
Patrick
Angehängte Dateien:
Gast #2070468
Lesenswert?

Das mit dem Vergleichen hat nun geklappt.
Allerdings wenn ich den String über die RS232 Schnittstelle einlese 
klappt das ganze noch immer nicht wie gewünscht.
Muss ich etwa das /n bzw /0 mit vergleichen?

Als Rückgabe erhalte ich allerdings:  (siehe auch Anhang)
Empfangen wurde: on
Empfangen wurde: on

mfg
Patrick
Angehängte Dateien:
#2070479
Lesenswert?

Für Rückgabewert 0 müssen bei strcmp() die Strings ident sein. Also 
gleich lang und gleicher Inhalt (nur bei strcasecmp() ist Groß- und 
Kleinschreibung egal).
Also entweder \r und \n mit \0 überschreiben, oder gleich nur die ersten 
2 Zeichen mit strncmp_P überprüfen. Bei letzterer Methode würde dann 
aber auch ein Vergleich von "online" mit "on" den Rückgabewert 0 
liefern, da ja die ersten beiden Zeichen stimmen.
Gast #2070611
Lesenswert?

so schluss für heute.

ich habe es zwar geschafft die Position von \r im string zu bestimmen 
wie ich diesen aber durch \0 ersetze weiß ich noch nicht.
Vielleicht hat hier noch wer einen Tipp für mich.

Mein Programm funktionier nun aberer trotzdem da ich den empfangenen 
String einfach mit "on\r" vergleiche.

        char Line[40];      // String mit maximal 39 zeichen
        char Line2[4]="on\r";
        char Line3[5]="off\r";
        uart_gets( Line, sizeof( Line ) );

        if(strcmp(Line,Line2)==0)
        {

             PORTC &= ~(1<<0);
        }
        if(strcmp(Line,Line3)==0)
        {

             PORTC |= (1<<0);
        }

Dankeschön und noch einen schönen Abend
mfg Patrick

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