Wenn Du nur ein Relay (z.B. das 6., also Bit 5) ändern möchtest, dann musst Du zuerst den aktuellen Status ermitteln (
COM auslesen), dann das entsprechende Bit setzen und anschliessend wieder die Daten zum
COM Port schreiben.
Code:
//Pseudo Code
procedure SetRelay(RelayBit: Byte; SwitchOn: Boolean);
var
CurrState: Byte;
begin
CurrState := ReadByteFromCOM;
[color=#0800ff] if SwitchOn then
CurrState := CurrState or (1 shl RelayBit)
else
CurrState := CurrState and (not (1 shl RelayBit));[/color]
WriteByteToCOM(CurrState);
end;
//// später im Code
// setze Relais 6 on
SetRelay(5, True);
// setze Relais 6 off
SetRelay(5, False);
Der farbige Bereich ist der eigentliche Teil zum Schalten eines Relais. Bedenke, das mit dem Schreiben eines Bytes
immer acht Relais geschalten werden.