also ich habe das programm jetzt nochmal sehr vereinfacht, ohne Verriegelung der Relais und ohne Timer.
Gibt es denn eine einfache Weise, die Relais gegenseitig zu verriegeln, ohne großartig viele Hilfsvariablen ?Code:'--------------------------------- Chip Definiton ---------------------------- $regfile = "m8def.dat" $crystal = 16000000 $baud = 1200 '--------------------------------- Portdefinition ---------------------------- Config Portb = Output Config Portd = Output Config Portc = Output '----------------------------------------- Timer ------------------------------ Config Timer1 = Timer , Prescale = 256 Enable Interrupts Enable Timer1 '------------------------------------------ Subs ----------------------------- Declare Sub Blinken Declare Sub Rolloauf Declare Sub Rolloab '-------------------------------------- Dims -------------------------------- Dim I As Byte Dim Temp1 As Byte Dim Adresse As Byte Dim Funktion As Byte 'Dim Myadress As Byte Dim Stoppbyte As Byte Dim X As Byte '-------------------------------- Aliasse ------------------------------------ Auf Alias Portc.4 Ab Alias Portc.5 Rs485 Alias Portd.2 Led Alias Portb.1 '------------------------------------------ Syncbytes ------------------------ Const Sync = &B01010100 Const Myadress = &H02 '------------------------------------ Call Blinken ------------------------------ Call Blinken Auf = 0 ' Relais Auf = 0 Ab = 0 ' Relais Ab = 0 '------------------------------------ Hauptroutine -------------------------- _start: ' RS485 Bus einlesen Temp1 = Waitkey() If Temp1 <> Sync Then Goto _start Else Inputbin Adresse , Funktion , Stoppbyte If Adresse <> Myadress Then Goto _start If Funktion = &H01 Then Goto Rolloauf If Funktion = &H02 Then Goto Rolloab If Stoppbyte = &H7F Then Goto _start End If '--------------------------------------- Rolloauf ----------------------------- Rolloauf: ' Relais Auf umschalten Led = 1 Waitms 100 Led = 0 Toggle Auf Goto _start '------------------------------------- Rolloab ------------------------------- Rolloab: ' Relais Ab umschalten Led = 1 Waitms 100 Led = 0 Toggle Ab Goto _start '-------------------------------- Blinken -------------------------------------- Blinken: Portb.1 = 1 Waitms 100 Portb.1 = 0 Waitms 100 Portb.1 = 1 Waitms 100 Portb.1 = 0 Waitms 100 Portb.1 = 1 Waitms 100 Portb.1 = 0 Waitms 100 Portb.1 = 1 Waitms 100 Portb.1 = 0 Waitms 100 Portb.1 = 1 Waitms 100 Portb.1 = 0 Waitms 100 Portb.1 = 1 Waitms 100 Portb.1 = 0 Waitms 100 Return







Zitieren

Lesezeichen