So habs noch nen bissele Verbessert ( siehe Pulses und Sek )
Code:
$regfile = "2313def.dat"
Config Portb = Output
Config Portd = Output
Config Pind.5 = Input
Dim Var1 As Byte
Dim Freq As Long
Dim S As String * 5
Dim X As Byte
Dim Pos As Byte
Dim Z As String * 1
Dim L As Byte
Dim W As Long
Config Timer1 = Counter , Edge = Rising
Enable Interrupts
Enable Timer1
Portd.5 = 0
Timer0 = 216 ' Constante zum erzeugen einer "Exacten" Sek.
Timer1 = 0
Start Timer0
Start Timer1 'Auf die Pins, Fertig, Messen!
On Timer0 Sek
On Timer1 Pulses ' Anzeige Schlaufe
Do
S = Str(freq)
L = Len(s)
For X = 1 To L
S = Str(freq)
Pos = L - X
Pos = Pos + 1
Z = Mid(s , Pos , 1)
If Z = "0" Then Portb = 63
If Z = "1" Then Portb = 34
If Z = "2" Then Portb = 94
If Z = "3" Then Portb = 118
If Z = "4" Then Portb = 99
If Z = "5" Then Portb = 117
If Z = "6" Then Portb = 125
If Z = "7" Then Portb = 38
If Z = "8" Then Portb = 127
If Z = "9" Then Portb = 119
If X = 1 Then Portd = 1
If X = 2 Then Portd = 2
If X = 3 Then Portd = 4
If X = 4 Then Portd = 8
If X = 5 Then Portd = 16
Waitms 2
Next X
Loop
Sek:
Incr Var1
If Var1 = 39 Then 'Wenn Timer0 39 überlief (1 Sek) dann:
Freq = W + Counter1
Var1 = 0
Timer0 = 216
Timer1 = 0
End If ' Wenn Timer0 (Gatetimer) voll, dann Var1 + 1
Return
Pulses:
W = W + 65536
Return
Das ist der Komplete Code inklusive Multiplex Ausgabe!!!
Lesezeichen