
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
Hallo Alex, aus Deinen Ausführungen unten sehe ich, dass Du unidirektionale Kommunikation machst, also nur der Master sendet an den Slave. Mit bidirektionalem Modus (Handshake) könntest Du das Problem lösen, d.h. der Slave soll einfach jedes Byte quittieren und einfach an den Master zurücksenden. Damit wird sichergestellt, 1. dass der Slave etwas empfangen hat, 2. dass er das richtige Byte empfangen hat (wenn der Master die Slave Antwort auf Richtigkeit prüft). Die o.g. Methode wird auch bei Programm-Download von PC auf CC1 genutzt und sollte eigentlich gut funktionieren. Beste Grüsse, MaPi > Hallo Ihr Helfer! > Vielleicht könnt Ihr auch mir helfen. > > Ich habe 2 Controlls miteinander verbunden (TXD an RXD der anderen). Es soll ein Master-Slave-System sein. Es geht eigentlich um die Übertragung von 3 Werten von Master nach Slave, jeweils Bytes. 2 Bytes beschreiben die Helligkeit von (grünen und weißen) LEDs, die der Slave über DA1 & DA2 ansteuern soll. Der 3te Werte wird benötigt um eine Musiksteuerung zu realisieren (es werden die Werte 2,3,4,5) übermittelt). > > Nun mein Problem: Die Werte kommen durcheinander. Das bedeutet, das die grüne Helligkeit schon mal die(zB) "3" der Musiksteuerung erhält und dann grün von 255 kurz auf 3 runtergeht und man das natürlich als Flackern des Lichts wahrnimmt. > Ich habe schon probiert mit einem Syncronisationsbyte zu arbeiten. D.H. das erst ein Byte gesendet wird, ddamit der Slave weiß: "ah jetzt kommen drei Werte hintereinander und zwar grün,weis,musik!" > Danach war es schon besser, aber es flackert manchmal immer noch! > > Wie bekomme ich es nun hin, dass wirklich immer der Slave weiß, "Das ist der Wert für grün, das der für weiß, das der für Musik!!!!!??????????? > > Hier die Programmausschnitte: > > Hauptprogramm mit "sendefunction" > > function senden() > put sync > put grün > put weis > put musik > end function > > (diese function wird immerwider in der "main" aufgerufen um die aktuellen Werte zu senden) > > Hier das Programm des Slave: > > '------Schnittstellenabfrage-------------------- > if rxd = true then > get x > end if > if x = 123 then '123 ist das Syncbyte > goto Sprung > else > goto main > end if > > > #Sprung > if rxd = true then > get zeitgrün > end if > if rxd = true then > get zeitweis > end if > if rxd = true then > get musik > end if > > > Kann mir jemand helfen???? > > Gruß ALEX |
| Antwort schreiben |