Hab nen Code vor nem Frequenzzähler gefunden und geändert
würde das so hinhauen????
Code:
$regfile = "2313def.dat"
$crystal = 16384000 'Quarz: 16,384MHz
Dim Lcount As Long At &H60 'Zähler-Variable
Dim Wcountlo As Word At &H60 Overlay 'LoWord der Zählervariablen
Dim Wcounthi As Word At &H62 Overlay 'HiWord der Zählervariablen
Dim Sresult As String * 16 At &H64 'Ausgabestring
Dim Result(16) As Byte At &H64 Overlay 'Ausgabestring als Byte-Array
Dim I As Byte
Dim Gate As Byte
'Timer0 (Torzeit) und Timer1 (Zähler) konfigurieren:
On Timer0 Ongatetime 'Interrupt-Routine für die Torzeit
On Timer1 Oncounteroverflow 'Interrupt-Routine fürs HiWord des Zählerstands
Config Timer0 = Timer , Prescale = 1024 'Torzeit-Timer mit Takt/1024
Config Timer1 = Counter , Edge = Rising 'Zähler an steigender Signalflanke
Ddrd.5 = 0 'PD5/T1 auf Eingang setzen (Zähler-Eingang)
Enable Timer0 'Timer0-Interrupts ein (Torzeit)
Enable Interrupts 'Interrupts global einschalten
Start Timer0
Main:
Goto Main
Ongatetime: 'Timer0-Torzeit beendet
If Gate = 0 Then 'Zähler starten
Enable Counter1 'Zähler-Overflow-Interrupts einschalten
Start Counter1
Gate = 1
Elseif Gate < 40 Then '40 Timer0-Umläufe warten
Incr Gate
Else 'Tor zumachen, Zähler auslesen
Stop Counter1
Disable Counter1 'Zähler-Overflow-Interrupts ausschalten
Wcountlo = Counter1 'LoWord in die LONG-Zählervariable holen
Counter1 = 0 'Zähler zurücksetzen (Voreinstellen geht hier auch!)
Gate = 0
'ANZEIGERUTINE
Tifr.tov0 = 1 'Timer0-Overflow-Flag löschen (nicht = 0!!!)
Tifr.tov1 = 1 'Timer1-Overflow-Flag löschen (nicht = 0!!!)
End If
Return
Oncounteroverflow:
Incr Wcounthi 'HiWord der Zählervariablen erhöhen (lCount=lCount+65536)
Return
Lesezeichen