frank-wob
18.06.2007, 14:45
Hallo,
ich habe mal wieder ein Problem.
Ich habe eine kleine Steuerung gebaut, nichts aufregendes. Ich benutze einen Tiny2313, der nach empfangen eines 3 Byte langen Protokolls Port B schalten soll. Hier mal der wichtigste Teil des Codes
Config Watchdog = 200
On Urxc Onrxd
Enable Urxc
Dim c as byte, v as byte, x as byte 'c = Kommando, v = Wert, X = Xor Checksumme
Config Portb = Output
Portb = 0
Start Watchdog
Enable Interrupts
Do
Reset Watchdog
Loop
Onrxd:
inputbin C,V,X
if c = $01 then
Portb = V
end if
Return
end
Der Code ist noch länger aber um diesen Teil geht es mir.
Im Grunde funktioniert das (fast) so wie ich möchte. Wenn der Befehls-Frame nicht komplett oder in 200ms gesendet wird, wird durch den Reset der Frame verworfen und auf einen neuen gewartet.
Jetzt das Problem: Ich möchte das dabei der Zustand des Portb erhalten bleibt. Hat jemand einen Tip wie ich das umsetzen kann?
Wäre schön wenn jemand helfen kann.
Gruß Frank
ich habe mal wieder ein Problem.
Ich habe eine kleine Steuerung gebaut, nichts aufregendes. Ich benutze einen Tiny2313, der nach empfangen eines 3 Byte langen Protokolls Port B schalten soll. Hier mal der wichtigste Teil des Codes
Config Watchdog = 200
On Urxc Onrxd
Enable Urxc
Dim c as byte, v as byte, x as byte 'c = Kommando, v = Wert, X = Xor Checksumme
Config Portb = Output
Portb = 0
Start Watchdog
Enable Interrupts
Do
Reset Watchdog
Loop
Onrxd:
inputbin C,V,X
if c = $01 then
Portb = V
end if
Return
end
Der Code ist noch länger aber um diesen Teil geht es mir.
Im Grunde funktioniert das (fast) so wie ich möchte. Wenn der Befehls-Frame nicht komplett oder in 200ms gesendet wird, wird durch den Reset der Frame verworfen und auf einen neuen gewartet.
Jetzt das Problem: Ich möchte das dabei der Zustand des Portb erhalten bleibt. Hat jemand einen Tip wie ich das umsetzen kann?
Wäre schön wenn jemand helfen kann.
Gruß Frank