'----------------------------------------------------------------------------- '----------------------------------------------------------------------------- ' Project: Einschaltsequenzer '----------------------------------------------------------------------------- '----------------------------------------------------------------------------- ' File: einschalt.BAS ' Release: 1.0 ' ------ Controller ------------- $crystal = 16000000 $regfile = "m8def.dat" ' ------ Configuration----------- ' Portrichtung 0 = Eingang, 1 = Ausgang Ddrb = &B11111111 Ddrc = &B11000000 Ddrd = &B11111111 Config Debounce = 30 ' 30 ms Entprellzeit ' ------ Constants -------------- ' ------ Variables -------------- ' ------ Subroutines ------------ Declare Sub Relais_on() ' ------ Aliases ---------------- Relais1 Alias Portd.0 Relais2 Alias Portd.1 Relais3 Alias Portd.2 Relais4 Alias Portd.6 Relais5 Alias Portd.7 Eingang1 Alias Pinc.0 Eingang2 Alias Pinc.1 Eingang3 Alias Pinc.2 Eingang4 Alias Pinc.3 Eingang5 Alias Pinc.4 Eingang6 Alias Pinc.5 ' ----------------------------------------------------------------------------- ' ------ Program --------------- ' ------------------------------- Progstart: ' ------ Initialisierung -------- Portb = &B00000000 ' Alle Relais Aus Portc = &B00111111 Portd = &B00000000 Relais1 = 1 ' Relais 1 schaltet eigene Spannung ein ' (Selbsthalteschaltuing) ' Relais einschalten Call Relais_on() Do ' Endlosschleife Debounce Eingang1 , 0 , Relais_off , Sub ' Abfrage Ausschaltsignal Loop End '------------------------------------------------------------------------------- ' Subroutinen ' Relais einschalten Sub Relais_on() Wait 2 Relais2 = 1 Wait 4 Relais3 = 1 Wait 4 Relais4 = 1 Wait 4 Relais5 = 1 End Sub ' ------------------------------- ' Relais ausschalten Relais_off: Relais5 = 0 Wait 4 Relais4 = 0 Wait 4 Relais3 = 0 Wait 4 Relais2 = 0 Wait 2 Relais1 = 0 ' schaltet auch eigene Spannung aus Return '-------------------------------------------------------------------------------