Forum: Mikrocontroller und Digitale Elektronik RS232 Befehl


von Alex (Gast)


Angehängte Dateien:

Lesenswert?

Hallo!
Ich möchte an das Gerät, dessen Anleitung im Anhang ist ein Befehl 
schicken, dass es sich einschaltet.
leider klappt das nicht.
Die Box reagiert darauf nicht.
Habe ich aus der Anleitung was falsches rausgelesen?
Ich schicke 7E 30 30 30 30 20 31 0D was fürs Einschalten steht.
Arbeite mit dem Atmega8.
Am PC (Hyperterminal) kommt alles richtig an.
Kann Jemand helfen?
Danke

von Peter (Gast)


Lesenswert?

wie schickt du das
> 7E 30 30 30 30 20 31 0D

als string oder als 8bytes

von Alex (Gast)


Lesenswert?

Hm, gute frage :)
Als "print "7E 30 30 30 30 20 31 0D" "
Das ist der Befehl für Ausgabe über UART.
Gruss Alex

von Oliver J. (skriptkiddy)


Lesenswert?

Wenn es am Hyperterminal richtig ankommt, könnte man meinen du schickst 
die Hexwerte im Klartext hin. Sollte aber so aussehen:
1
uart_puts("~XX00 1\r");  //Projektor einschalten

von Alex (Gast)


Lesenswert?

Habe ich gerade ausprobiert.
Funktioniert leider auch nicht.

Ich habe noch einen Beamer, mir dem es aber funktioniert, den über RS232 
zu steuern.
Noch Ideen, warum es nicht klappt?
Gruss Alex

von Oliver J. (skriptkiddy)


Lesenswert?

Bitte den kompletten Code zeigen.

von Oliver J. (skriptkiddy)


Lesenswert?

Alex schrieb:
> Ich habe noch einen Beamer, mir dem es aber funktioniert, den über RS232
> zu steuern.

Der selbe beamer oder ein anderer?

von Alex (Gast)


Lesenswert?

Gerne, ist aber in Basic:

$regfile = "m8def.dat"
$crystal = 8000000
$baud = 9600

Config Lcd = 20 * 4
Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , 
Db7 = Portc.3 , E = Portc.5 , Rs = Portc.4
Cls

Config Pind.2 = Input
Config Pind.3 = Input
Config Pind.4 = Input
Config Pind.5 = Input

Do
Debounce Pind.2 , 0 , Bx_einschalten , Sub
Debounce Pind.3 , 0 , Bx_ausschalten , Sub
Debounce Pind.4 , 0 , Be_einschalten , Sub
Debounce Pind.5 , 0 , Be_ausschalten , Sub
Loop

Bx_einschalten:
Cls
Lcd "Box Ein"
Waitms 10
Print "7E 30 30 30 30 20 31 0D"
Return

Bx_ausschalten:
Cls
Lcd "Box Aus"
Waitms 10
Print "7E 30 30 30 30 20 30 0D"
Return

Be_einschalten:
Cls
Lcd "Beamer Ein"
Waitms 10
Print "* 0 IR 001\r"
Waitms 10
Print "* 0 IR 001"
Waitms 10
Print "0 IR 001\r"
Waitms 10
Print "IR 001\r"
Return

Be_ausschalten:
Cls
Lcd "Beamer Aus"
Waitms 10
Print "* 0 IR 002\r"
Waitms 10
Print "* 0 IR 002"
Waitms 10
Print "0 IR 002\r"
Waitms 10
Print "IR 002\r"
Return

End


Wie gesagt, beim Beamer funktioniert alles.
Ein Befehl von den 4 hat gepasst :)

Danke
Gruss Alex

von Oliver J. (skriptkiddy)


Lesenswert?

1
Print "7E 30 30 30 30 20 31 0D"
2
Print "7E 30 30 30 30 20 30 0D"

Das ist Unfug! In der Anleitung steht, dass die Box ASCII-Befehle möchte 
und keine Hexstrings.


Wie wärs hiermit:
1
Print “~0000 1” ; Chr(13);  ' Box an
2
Print “~0000 0” ; Chr(13);  ' Box aus


Skript Kiddy schrieb:
> Alex schrieb:
>> Ich habe noch einen Beamer, mir dem es aber funktioniert, den über RS232
>> zu steuern.
>
> Der selbe beamer oder ein anderer?
Das hier war Unfug meiner Seits


Gruß Skriptkiddy

von Sascha W. (sascha-w)


Lesenswert?

also so geht's nicht
Print "7E 30 30 30 30 20 31 0D"
denn dann schickst du ja hex als ascii

das obige entspricht ~0000 1<CR>
das XX ist durch die Geräte-ID zu ersetzen! Oder 00 für alle!

oder schreibe print chr(0x7E) & chr(0x30) & ...

Sascha

von Alex (Gast)


Lesenswert?

Danke!!!
 jetzt geht es.

>In der Anleitung steht, dass die Box ASCII-Befehle möchte und keine >Hexstrings

Hm, nicht gesehen.
Noch mal, vielen Dank!
Gruss Alex

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.