Ich komm grad echt nicht weiter...
Hab hier mal den kompletten Quellcode. Ich hoffe, mir kann da jemand helfen...
Code:' KOMFORTBLINKERMODUL ' V0.2 - René Brixel - 02.06.2008 ' ' ' PB1 Ausgang Relais (High-Active) ' PB2 Ausgang Relais (High-Active) ' ' PD2 Eingang Blinkerhebel (Low-Activ)(INT0) ' PD3 Eingang Blinkerhebel (Low-Activ)(INT1) ' PD7 TimeSet (Low-Activ) '---------- uC-Konfig ---------- $regfile = "m8def.dat" 'ATMega8 $crystal = 1000000 'Quarz: 1 MHz '---------- Port-Konfig ---------- Ddrb = &B11111111 'Port B als Ausgang Portb = &B00000000 'Port C komplett auf 0 setzen Ddrd = &B00000000 'Port D als Eingang Portd = &B11111111 'PullUp´s aktivieren '---------- Interrupts ---------- Config Int0 = Low Level 'Konfiguriere Int0 auf Low Level Config Int1 = Low Level 'Konfiguriere Int1 auf Low Level Enable Interrupts 'Interrupts generell einschalten Enable Int0 'Interrupt 1 einschalten Enable Int1 'Interrupt 2 einschalten On Int0 Blinkenl 'Subroutine Blinken Links On Int1 Blinkenr 'Subroutine Blinken Rechts '---------- Alias-Konfig ---------- Relaisl Alias Portb.1 'Relais Links; 1 = Aktiv Relaisr Alias Portb.2 'Relais Rechts; 1 = Aktiv Blinkerl Alias Pind.2 'Blinker Links; 0 = gedrückt Blinkerr Alias Pind.3 'Blinker Rechts; 0 = gedrückt Timeset Alias Pind.7 'Time Set; 0 = Aktiv (Jumper - gebrückt) '---------- Variablen-Konfig ---------- Dim Hebelgedrueckt As Integer 'Schleifenvariable für blinken Dim Gemessenezeit As Integer 'Selbsterklärend... Dim I As Integer 'Zähler-Variable Dim Richtung As Integer 'Welche Richtung wurde gedrückt? 1 = Links, 2 = Rechts Richtung = 0 Gemessenezeit = 3000 'Testweiße 3 Sekunden Gemessenezeit = Gemessenezeit / 100 'Für For-Schleife durch 100 teilen '---------- Main ---------- Do If Richtung = 1 Then 'Richtung Links Relaisl = 1 'Relais Links einschalten Hebelgedrueckt = 1 'Hebelgedrueckt zurücksetzen For I = 1 To Gemessenezeit Waitms 100 Next I Do If Blinkerl = 0 Then 'Wenn Blinker Links gedrückt... nop Else 'Wenn nicht, Relais Links ausschalten Relaisl = 0 'Relais ausschalten Hebelgedrueckt = 0 End If Loop Until Hebelgedrueckt = 0 'Schleife solange, wie Hebelgedrueckt = 1 Richtung = 0 End If If Richtung = 2 Then 'Richtung Rechts Relaisr = 1 'Relais Rechts einschalten Hebelgedrueckt = 1 'Hebelgedrueckt zurücksetzen For I = 1 To Gemessenezeit Waitms 100 Next I Do If Blinkerr = 0 Then 'Wenn Blinker Rechts gedrückt... Nop Else 'Wenn nicht, Relais Rechts ausschalten Relaisr = 0 'Relais ausschalten Hebelgedrueckt = 0 End If Loop Until Hebelgedrueckt = 0 'Schleife solange, wie Hebelgedrueckt = 1 Richtung = 0 End If Loop End '---------- Blinken Links ---------- Blinkenl: Richtung = 1 Return '---------- Blinken Rechts ---------- Blinkenr: Richtung = 2 Return







Zitieren

Lesezeichen