UART Befehl auswerten und uint8_t zu Char

Gast #3413043
Lesenswert?

Hallo,

ich bin µC Anfänger, wie man aus dem Betreff schließen kann. Nun möchte 
ich zunächst Befehle vom PC an den µC senden.

Der µC Empfängt so lange Zeichen bis \n empfangen wird. Das 
funktioniert, ich kann die Zeichenkette wieder ausgeben. Sende ich vom 
PC "o" + Enter, ist if (Text[0] == 'o') gleich True. Sende ich aber 
"LED" + Enter, bekomme ich keine "wahre" If-Abfrage hin ('LED'; 'LED\n' 
etc.)
Wie muss diese aussehen bzw. wie muss der String "beschnitten" werden?

Das zweite Problem hat sich ergeben, als ich zur Information den 
uinit8_t Schleifenzähler-Wert an den PC senden wollte. Der Wert ist 
nicht größer als 5. Ich kann Text[0] = Schleifenzähler zuweisen aber es 
wird nicht der Wert übertragen. Wenn ich einer unit8_t-Variable den Wert 
= '5' zuweise, geht das Ganze aber. Wie bekomme ich das mit dem 
Schleifenzähler hin?

Danke für eure Hilfe und Nachsicht ;).
#3413050
Lesenswert?

Gerd schrieb:
> Der µC Empfängt so lange Zeichen bis \n empfangen wird. Das
> funktioniert, ich kann die Zeichenkette wieder ausgeben. Sende ich vom
> PC "o" + Enter, ist if (Text[0] == 'o') gleich True. Sende ich aber
> "LED" + Enter, bekomme ich keine "wahre" If-Abfrage hin ('LED'; 'LED\n'
> etc.)
> Wie muss diese aussehen bzw. wie muss der String "beschnitten" werden?

http://www.mikrocontroller.net/articles/FAQ#Wie_funktioniert_String-Verarbeitung_in_C.3F

> Das zweite Problem hat sich ergeben, als ich zur Information den
> uinit8_t Schleifenzähler-Wert an den PC senden wollte. Der Wert ist
> nicht größer als 5. Ich kann Text[0] = Schleifenzähler zuweisen aber es
> wird nicht der Wert übertragen. Wenn ich einer unit8_t-Variable den Wert
> = '5' zuweise, geht das Ganze aber. Wie bekomme ich das mit dem
> Schleifenzähler hin?

http://www.mikrocontroller.net/articles/FAQ#Wie_kann_ich_Zahlen_auf_LCD.2FUART_ausgeben.3F
#3413383
Lesenswert?

Hallo Gerd,

typisch Anfänger, deine Fragen sind nicht beantwortbar weil total aus 
dem Zusammenhang gerissen.

Beispiel: "Sende ich aber "LED" + Enter, bekomme ich keine "wahre" 
If-Abfrage hin ('LED'; 'LED\n' etc.)"

Das kann viele Ursachen haben, aber ohne den kompletten Code zu sehen 
ist es müßig zu spekulieren. 'LED' zum Beispiel ist ja schon syntaktisch 
falsch.

Also, Fragen sinnvoll zu stellen will auch gelernt sein ;)

LG, Sebastian
Gast #3416647
Lesenswert?

Hallo und danke für eure Hilfe.

@Fabian: Mit strcmp() kann ich nun die Befehle auswerten und mit itoa() 
die Zahlen in sendbare Strings wandeln.

@Sebastian: Wenn ich weitere Fragen habe, werde ich mich bemühen diese 
konkreter zu formulieren und Code anzuhängen.

@Svenska: \r hatte ich eigentlich auch gemeint ;)

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