Einzelnen Beitrag anzeigen

Netblaster

Registriert seit: 6. Jun 2008
Ort: Birkenwerder/Berlin
12 Beiträge
 
#1

Sendestring LED-Steuerung per RS232

  Alt 6. Jun 2008, 22:47
Hallo Allerseits,

ich habe mal eine Frage an die "Experten" hier...
Ich habe eine Mikrocontroller (uC) -gesteuerte LED-Leiste mit 14 LEDs.

Per Signal vom PC sollen die gesteuert werden. Die Hardware funktioniert soweit.
Damit das ganze Funktioniert, git es ein festgelegtes Übertragungsprotokoll für den uC.
Sieht wie folgt aus:

__________________________________________________ _______
|| Kommando(1 Byte) || Parameter(0..n Bytes) || CHK(1 Byte) ||
-----------------------------------------------------------------------------

-Das Kommando für die Funktion LEDs steuern ist 0x04
-Die Parameter für die jeweiligen LEDS sind:
Bit0: 1=LED1 an, 0=LED1 aus
Bit1: 1=LED2 an, 0=LED2 aus
Bit2: 1=LED3 an, 0=LED3 aus
...........bis ..-->
Bit6: 1=LED7 an, 0=LED7 aus
Bit7: nicht belegt

Bit8: 1=LED8 an, 0=LED8 aus
..........bis....-->
Bit14: 1=LED14 an, 0=LED14 aus
Bit15: nicht belegt

Als Antwort gibt der uC 1 Byte aus, mit 0x01=OK oder 0x00= Fehler

Die CHK wird gebildet aus = (Kommando+Parameter) xor 0xFF


Wie nun kann ich mir den zu sendenden String vorstellen? Habe schon einiges probiert, aber nix geht.
Ich habe es z.B. probiert mitTComPort-Komponente)

comport1.writestr(#$4+#$FE+#$FE); //4 ist das Kommando LEDs an, FE entspricht dann 11111110 (jeweils alle 7 LEDs an)


Nur die Cheksumme würde in diesem Beispiel ja deutlich größer als 1 Byte werden ($4FE01)- wo ist mein Denkfehler?
Muss alles zusammen in einem String gesendet werden, oder muss das ganze aufgeteilt werden??
Hat irgendjemand Erfahrung mit ähnlichen Systemen?????
  Mit Zitat antworten Zitat