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







Zitieren

Lesezeichen