Code:
$regfile = "m32def.dat" ' specify the used micro
$crystal = 16000000 ' used crystal frequency 16mHz
$framesize = 80
$hwstack = 80
$swstack = 80
$baud = 9600
Config Porta.0 = Output
Config Porta.1 = Output
Config Porta.2 = Output
Config Porta.3 = Output
Config Porta.4 = Output
Config Porta.5 = Output
Config Porta.6 = Output
Flashlinks Alias Porta.0
Flashrechts Alias Porta.1
Baconheck Alias Porta.2
Flashheck Alias Porta.3
Landescheinwerfer Alias Porta.4
Posilightlirot Alias Porta.5
Posilightregruen Alias Porta.6
Timer1 = 3000
Config Timer1 = Timer , Prescale = 8
Enable Timer1
Stop Timer1
On Timer1 Flash
Gosub Flashoff
Gosub Landescheinwerferoff
Gosub Posilightsoff
Dim V As Byte
Dim Flasher As Byte
Dim Posi As Byte
Declare Sub Flash
Config Timer2 = Timer , Prescale = 256
Stop Timer2
Timer2=0
Dim Zahl as Byte
Dim Z11 As Byte
Enable Interrupts
Start Timer1
Do
Waitms 20
Loop
Empfaengerwerten:
Gosub Empfaengereins
Return
Empfaengereins:
Bitwait PIND.2, reset
Bitwait PIND.2, set
Start Timer2
Bitwait PIND.2, reset
Stop Timer2
Zahl = Timer2
Timer2 = 0
Waitms 500
Return
Empfaengersort:
Print Zahl
If Zahl > 105 Then
Gosub Flashon
Gosub Landescheinwerferon
Else
If Zahl > 85 Then
Gosub Flashon
Gosub Landescheinwerferoff
Else
If Zahl < 75 Then
Gosub Flashoff
Gosub Landescheinwerferoff
End If
End If
End If
Return
Flash:
'Disable Interrupts
Stop Timer1
If V = 0 Then
Set Flashlinks
Set Flashrechts
Set Flashheck
End If
If V = 1 Then
Reset Flashlinks
Reset Flashrechts
Reset Flashheck
End If
If V = 2 Then
Waitms 30
End If
If V = 3 Then
Waitms 30
End If
If V = 4 Then
Set Flashlinks
Set Flashrechts
Set Flashheck
End If
If V = 5 Then
Reset Flashlinks
Reset Flashrechts
Reset Flashheck
End If
If V = 6 Then
Waitms 30
Set Baconheck
End If
If V = 7 Then
Gosub Empfaengerwerten
End If
If V = 8 Then
Gosub Empfaengersort
End If
If V = 9 Then
End If
If V = 10 Then
Waitms 30
End If
If V = 11 Then
Waitms 30
End If
If V = 12 Then
End If
If V = 13 Then
End If
If V = 14 Then
Waitms 30
Reset Baconheck
End If
If V = 15 Then
Waitms 30
V = 0
'Enable Interrupts
Start Timer1
Timer1 = 3000
Return
End If
'Enable Interrupts
Incr V
Start Timer1
Timer1 = 3000
Return
Flashon:
If Flasher = 0 Then
Start Timer1
Flasher = 1
End If
Return
Flashoff:
Stop Timer1
Flasher = 0
Reset Flashlinks
Reset Flashrechts
Reset Flashheck
Reset Baconheck
Return
Landescheinwerferon:
If Landescheinwerfer = 0 Then
Set Landescheinwerfer
End If
Return
Landescheinwerferoff:
If Landescheinwerfer = 1 Then
Reset Landescheinwerfer
End If
Return
Posilightson:
If Posi = 0 Then
Set Posilightlirot
Set Posilightregruen
Posi = 1
End If
Return
Posilightsoff:
If Posi = 1 Then
Reset Posilightlirot
Reset Posilightregruen
Posi = 0
End If
Return
Lesezeichen