
Napisałem tak jak niżej ale tak tylko mierzy czas trwania samego impulsu.
A służyć to ma temu aby generować nowy odmierzony impuls z możliwością jego wyprzedzenia od zera do kilku mili sek.
$crystal = 8000000
$regfile = "m8def.dat"
Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.6 , Db6 = Portd.4 , Db7 = Portd.3 , E = Portb.0 , Rs = Portd.7
Config Int0 = Low Level , Rising 'Falling opadające , rising wzrastające
Config Timer0 = Timer , Prescale = 1
Enable Interrupts
Enable Timer0
Enable Int0
On Int0 _int ' wyzwalanie od impulsu wejsćiowego
Dim X As Word ' czas między impulsami generowanymi
Cls
Cursor Off
'''''''''''program
Do
Locate 1 , 1
Lcd "X=" ; X ; " "
Loop
_int:
Portd.0 = 0
Stop Timer0
X = Timer0 ' to tu wynik zliczania
Timer0 = 0
Start Timer0 'nowe zliczanie
Return