PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Über RS232 Wort Empfangen und auswerten



winke
16.08.2006, 15:51
Hallo,

ich hab folgendes Problem:

Ich möchte über das HyperTerminal z. B. das Wort "test" schreiben und wenn ich das in der C-Control empfange soll sie etwas ausführen! aber wie werte ich das in der C-Control aus??

Könntet ihr mit da eventuelle in Beispiel geben???

danke schon mal!!

mfg
Christoph

Amiwerewolf
19.08.2006, 18:40
Hallo Christoph,
ich hab vor ein paar wochen das gleiche gemacht, ich hab ein GPS Protokoll ausgewertet. mein satzt hat dabei nicht mit test sonder mit "#GPGGA..." angefangen. ich hab dazu einfach auf das "#" gewartet und wenn das gekommen ist hab ich den nächsten buchstaben ausgewertet.
weil der µController keine zeichen versteht (also mit ASC und CHR gehts auch) hab ich den entsrechenden zahlenwert für jeden buchstaben aus einer ASCII table gesucht (einfach mal bei google ASCII tabele eingeben)
Praktisch so:


#start
DO
IF RXD THEN 'schaut ob zeichen im eingangspuffer zur verfügung stehen
GET temp
if temp = 36 then '#
goto readin
#rxdloop
end if
END IF
'Platz für weitere befehle
LOOP
GET temp
#readin
IF temp <> 71 THEN GOTO start 'G
GET temp
IF temp <> 80 THEN GOTO start 'P
GET temp
IF temp <> 71 THEN GOTO start 'G
GET temp
IF temp <> 71 THEN GOTO start 'G
GET temp
IF temp <> 65 THEN GOTO start 'A
PRINT "#GPGGA Empfangen"

winke
19.08.2006, 18:56
Hallo,

danke für deine Antwort!!

Eine Frage hab ich noch, wie hast du davor das eingelesene in einen Binärcode umgewandelt??? weil wenn ich in den controller ein wort rein sende erkennt er es ja nicht!! Hast du das mit einer Schaltung davor gemacht??? und was hast du als Empfangspuffer genommen??

mfg
Christoph

Amiwerewolf
19.08.2006, 20:30
also die C-Control wandelt es selbstständig in einen Dezimalwert um, sobal ich mit GET lese
mit PUT schreibt die C-Control das Byte wieder in den Ausgangspuffer
mit PRINT wird der Zahlenwert geschrieben.
übrigens mit IF RXD THEN wird geschaut ob ein byte im eingagnspuffer liegt.
Vorsicht die C-Control 1 hat blos einen 8 Byte eingangspuffer
die version2 glaub ich 32 byte, um nur ein test hin und her zu schicken reicht es, aber für mehr wie z.B. mein GPS Tracker (GPGGA...) braucht es mehr.
probier einfach mal fogendes programm!



do
get temp
put temp
print
print temp
print
print
print
loop