
Zitat von
Ceos
ausserdem ist das waitms IN einer ISR schon fast sträflich!
Ja ich wunder mich auch ein bisschen, aber ich hab das 1:1 aus einem Buch abgeschrieben und da stand es so drin
, ich hab nirgens eine anleitung gefunden wie man soetwas in ein bestehendes programm einbaut, deswegen weiß ich eben nicht wie ich das einsetzen muss, damit beides läuft
.
Edit: Ich habs jetzt etwas umgeschrieben, ohne goto, mir ist grad so ein Geistesblitz gekommen
, das funktioniert auch, auch wenn der timer drin ist funktioniert es noch, allerdings blinkt nichts.
Hier der neue Code:
Code:
$regfile = "m8def.dat"
$crystal = 8000000
Config Portc.1 = Input
Config Portc.2 = Input
Config Portc.3 = Input
Config Portc.4 = Input
Config Portc.5 = Input
Config Portd.0 = Output
Config Portd.1 = Output
Config Portd.2 = Output
Config Portd.3 = Output
Set Portc.1
Set Portc.2
Set Portc.3
Set Portc.4
Set Portc.5
Config Debounce = 30
Const An = 1
Const Aus = 0
Einschalten Alias Pinc.1
Ausschalten Alias Pinc.2
Rauchmelder Alias Pinc.3
Notaus Alias Pinc.4
Feuer Alias Pinc.5
Schuetz Alias Portd.0
Gelb Alias Portd.1
Rot Alias Portd.2
Alarm Alias Portd.3
Dim F As Bit
Dim B As Bit
Dim A As Bit
Dim C As Bit
C = 1
Config Timer0 = Timer , Prescale = 1024
Enable Timer0
Enable Interrupts
'On Timer0 Timer0_isr
Do
NOP
'Rauchmelder unscharf schalten
Debounce Rauchmelder , 0 , Rmtoggle , Sub
'Schütz An/Aus
If Einschalten = 0 Then Gosub Setzen
If Ausschalten = 0 Then Gosub Rsetzen
'Not-Aus
If Notaus = 1 And B = 1 Then
Gelb = C
Elseif Notaus = 0 And B = 1 Then
Gelb = 1
End If
'Rauchmelder-Ausgelöst
If Feuer = 0 And F = 0 Then
Alarm = An
Gosub Rsetzen
Else
Alarm = Aus
End If
Loop
'loop
'Flip-Flop setzen
Setzen:
Schuetz = An
Gelb = An
B = An
Return
'Flip-Flop zurücksetzen
Rsetzen:
Schuetz = Aus
Gelb = Aus
B = Aus
If F = 1 Then
Gosub Rmtoggle
End If
Return
Rmtoggle:
Toggle F
If F = 1 Then
Rot = C
Else
Rot = 0
End If
Return
'Timer0_isr:
'Load Timer0 , 195
'C = 0 : Waitms 5 : C = 1
'Return
End
Ich hab den Timer da jetzt mal auskommentiert und C auf 1 gesetzt, weil sonst gar nichts geleuchtet geschweige denn geblinkt hat
.
Lesezeichen