Code:
$regfile = "2313def.dat"
Dim Var1 As Byte
Dim Var2 As Long
Dim Freq As Long
Config Portb = Output
Config Portd = Output
Enable Interrupts
Enable Timer0
Enable Timer1
Config Timer0 = Timer , Prescale = 1024
Config Timer1 = Counter , Edge = Rising
Config Pinb.5 = Input
Portb.5 = 0
On Timer0 Test1: ' Springe zu Test1 wenn Timer0 "voll"
On Timer1 Test2: ' Springe zu Test2 wenn Timer1 "voll"
Timer0 = 216 ' Constante zum erzeugen einer "Exacten" Sek.
Timer1 = 0
Start Timer0
Start Timer1 'Auf die Pins, Fertig, Messen!
Do ' Anzeige Schlaufe
Loop
Test1:
' Wenn Timer0 (Gatetimer) voll, dann Var1 + 1
Incr Var1
If Var1 = 39 Then 'Wenn Timer0 39 überlief (1 Sek) dann:
If Portd.5 = 0 Then Portd.5 = 1 Else Portd.5 = 0 ' Wenn Sek. vorbei schaltet LED an oder aus ( zur Kontrolle )
Freq = Timer1 ' Lese Timer1 aus ( Counter )
Freq = Freq + Var2 ' Addiere Timer1 und Anzahl der überlaufe von Timer1*256
Var1 = 0
Var2 = 0
Stop Timer0 ' Starte Messung erneut
Stop Timer1
Timer0 = 126
Timer1 = 0
Start Timer0
Start Timer1
Return
End If
Return
Test2: ' Wenn counter (Timer1) überlauft, dann addiere 65536
Var2 = Var2 + 65536
Return
Lesezeichen