Witam,
Piszę program do atmega8 i mam problem z ustawieniem Timer1. Dopiero zaczynam programować więc proszę o wyrozumiałość.
Chciałbym ustawić tak timer1 aby zaczął liczyć czas od pojawienia się na portd.3 pierwszego impulsu do drugiego impulsu, zapisał wartość do zmiennej, wyzerował się i zaczął zliczać czas od drugiego do trzeciego impulsu zapisał znów wartość do zmiennej i tak w kółko, a zatrzymał by się gdy czas będzie dłuższy między impulsami niż 2 sekundy.
Część programu już napisałem ale z Timerm nie mogę sobie poradzić.
Pozdrawiam i czekam na pomoc.
Piszę program do atmega8 i mam problem z ustawieniem Timer1. Dopiero zaczynam programować więc proszę o wyrozumiałość.
Chciałbym ustawić tak timer1 aby zaczął liczyć czas od pojawienia się na portd.3 pierwszego impulsu do drugiego impulsu, zapisał wartość do zmiennej, wyzerował się i zaczął zliczać czas od drugiego do trzeciego impulsu zapisał znów wartość do zmiennej i tak w kółko, a zatrzymał by się gdy czas będzie dłuższy między impulsami niż 2 sekundy.
Część programu już napisałem ale z Timerm nie mogę sobie poradzić.
Pozdrawiam i czekam na pomoc.
$regfile = "m8def.dat"
$crystal = 8000000
Config Timer1 = Timer , Prescale = 64
Dim Time1 As Single
Time1 = 0.
Do
If Portd.3 = 1 And Time1 > 0.058252 Then
Portd.0 = 1
end if
If Portd.3 = 1 And Time1 < 0.058252 And Time1 > 0.057692 Then
Waitus 528
Portd.0 = 1
end if
If Portd.3 = 1 And 0.057692 > Time1 And Time1 < 0.057143 Then
Waitus 666
Portd.0 = 1
end if
If Portd.3 = 1 And 0.057143 > Time1 And Time1 < 0.056338 Then
Waitus 944
Portd.0 = 1
End If
Loop