Die Lösung!!!!!!! .....Vielleicht
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
Re: Die Lösung!!!!!!! .....Vielleicht
Hallo,
> Hab nen Code vor nem Frequenzzähler gefunden
das merkt man :-( ...
> und geändert
aber nicht verstanden.
Dabei war Dein eigenes Programm doch fast schon fertig. Fehlten noch die Interrupts, das wäre es gewesen. Warum schmeist Du das was Du selbst geschrieben hast so einfach weg. Da (scheinst) Du gewust zu haben wie das Programm arbeitet, auch wenn noch Fehler drin waren. Bei der jetzt verwendeten fremden Lösung bezweifel ich das.
> würde das so hinhauen????
nein, würde es nicht. Beim Timer1 Interrupt fehlt die Hälfte.
Was ich auch nicht verstehe, BASCOM hat einen recht gut funktionierenden und einfach zu bedienenden Simulator. Warum probierst Du es nicht aus.
Ciao,
Werner