Problem polega na tym, aby pomierzyć ilość impulsów jaka upływa pomiędzy kolejnymi pomiarami czujnika. Chodzi o to żeby timer1 zliczający impulsy po wykonaniu pomiaru przez czujnika wyświetlał ich ilość, a następnie zliczał kolejne impulsy upływające do wykonania 2 pomiaru itd. Zamiast czasu podawać na monitor zliczone impulsy pomiędzy kolejnymi pomiarami. Poniżej załączam kod programu z obsługą czujnika plus odmierzanie 1s przez timer1. Ktoś ma jakieś pomysły jak to zrealizować ??
$regfile = "m8def.dat"
$crystal = 8000000
$lib "i2c_twi.lbx"
$baud = 9600
'deklaracja adresu I2C dla czujnika
...
...
'globalne zezwolenie na przerwania
Enable Interrupts
'konfiguracja interfejscu I2C
Config Scl = Portc.5
Config Sda = Portc.4
Config Twi = 100000
I2cinit
'deklaracja procedur i funkcji
Declare Sub Sonar_pomiar
Declare Function Sonar_odczyt() As Word
'pętla głowna
'odbsługa timera1 do odmierzania czasu 1s
Dim I As Integer
Dim Sekundy As Long
Tccr1a = &H00
Tccr1b = &H0C
Ocr1ah = &H7A 'wpisujemy wartość 31250 (7A12) po zliczeniu której mamy 1s
Ocr1al = &H12
On Oc1a Odmierzamy
Enable Compare1a
Tcnt1h = &H00
Tcnt1l = &H00
Do
For I = 1 To 5000
Call Sonar_pomiar
Print "pomiar " ; I ; " dystans " ; Sonar_odczyt() ; " sekundy " ; Sekundy
Next I
Loop
Odmierzamy:
Incr Sekundy
Return
'procedura wykonania pomiaru przez czujnik
...
...
'funkcja odbioru pomiaru w postaci 2 bajtów i zapisu do zmiennej typu word
...
...