Witam. Próbuję napisać program odpowiedzialny za pomiar odcinków czasowych pomiędzy impulsami sygnału S1 i S2 (zgodnie z załącznikiem).
Proszę o prześledzenie kodu, wszelkie uwagi i sugestie mile widziane. Nie mam pewności co do poprawności pobierania wartości licznika TIMER1 za pomocą TCNT1.
Proszę o prześledzenie kodu, wszelkie uwagi i sugestie mile widziane. Nie mam pewności co do poprawności pobierania wartości licznika TIMER1 za pomocą TCNT1.
'program do pomiaru okresu sygnałów podpiętych do PD.2(INT0) i PD.3(INT1).
$regfile = "M8def.dat"
$crystal = 8000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db7 = Portc.0 , Db6 = Portc.1 , Db5 = Portc.2 , Db4 = Portc.3 , E = Portc.4 , Rs = Portc.5
Dim A(5) As Word 'czas pomiędzy impulsami s1 s21 s22 s23 s24 s25
Dim B(5) As Byte 'przepełnienia impulsów s1 s21 s22 s23 s24 s25
Dim Przep As Byte 'przepełenienie
Dim Index As Byte 'index talicy
Config Int0 = Rising 'sygnał s1 - narastające zbocze (Falling - opadające)
Config Int1 = Rising 'sygnał s2 - narastające zbocze
Config Pind.2 = Input
Config Pind.3 = Input 'A tu ustawiamy podciąganie wejść przez rezystory wewnątrz procesora
Set Portd.2
Set Portd.3
Config Timer1 = Timer , Prescale = 1024
Przep = 0
Index = 1
Timer1 = 0 'Ustawiamy licznik
Stop Timer1
Enable Interrupts
Enable Int0
Enable Int1
On Int0 S1 'pomiar czasu sygnału s1
On Int1 S2 'pomiar czasu sygnału s2
On Timer1 P1
Cls
Lcd "OK"
Waitms 500
'głowna pętla
Do
Loop
End
S1: 'było przerwanie- impuls s1 - licznik zaczyna liczyć
Timer1 = 0
Start Timer1
Return
S2: 'było drugie przerwanie- impuls s2
A(index) = Tcnt1 'odczytanie wartości licznika
B(index) = Przep
Incr Index 'interesują mnie czasy tylko dla jednego okresu S1
If Index = 6 Then
Stop Timer1
Cls 'wyświetlamy zawartość licznika
Lcd "tu beda wyswietlane wyniki obliczen" 'będzie dopisany kawałek kodu odpowiedzialny za przeliczenie
Waitms 15 'czasów na interesujące mnie przesunięcie między sobą sygnału S1 i S2
Index = 1
Przep = 0
End If
Return
P1: 'było przepełnienie timer1
Incr Przep 'zliczanie przepełnienia zegara
Return