Witam.
Napisałem sobie taki program, początkowo bez timerów lecz nie działał jak chciałem,
Zrobiłem z timerem i niestety nic to nie dało.
Program wygląda tak:
No i mam taki problem że, jeśli warunek poniżej będzie spełniony, program czeka 50 sekund i nawet gdy w tym czasie warunek ten się zmieni i według założeń powinien działac kolejny warunek, muszę zaczekac aż minie te 50 sekund :
Przeczytałem helpa i artykuł o timerach ale nie znalazłem odpowiedzi jak mam zrobic aby było dobrze.
Może mi ktoś powiedziec jak to zrobic?
Napisałem sobie taki program, początkowo bez timerów lecz nie działał jak chciałem,
Zrobiłem z timerem i niestety nic to nie dało.
Program wygląda tak:
$regfile = "attiny2313.dat" 'typ proca
$crystal = 1000000 'taktowanie
Config Portb = Input 'port b jako wejścia
Portb = &B00111111
Config Portd = Output 'pprt d jako wyjścia
Portd = &B0000000 'wszędzie stan spoczynkowy-0
Config Timer1 = Timer , Prescale = 64
On Timer1 Podprogram
Enable Interrupts
Enable Timer1
Timer1 = 49911 'wpisanie wartosci 49911 do timera
Do
Loop
End
Podprogram:
Timer1 = Timer1 + 49911
If Pinb.0 = 0 And Pinb.1 = 0 Then
Wait 2
Portd.0 = 1
Waitms 100
Portd.0 = 0
End If
If Pinb.0 = 1 And Pinb.1 = 0 Then
Wait 50
Portd.1 = 1
Waitms 500
Portd.1 = 0
Waitms 500
Portd.1 = 1
Waitms 500
Portd.1 = 0
Wait 5
End If
If Pinb.0 = 0 And Pinb.1 = 1 Then
Portd.1 = 1
Else
Portd.1 = 0
End If
ReturnNo i mam taki problem że, jeśli warunek poniżej będzie spełniony, program czeka 50 sekund i nawet gdy w tym czasie warunek ten się zmieni i według założeń powinien działac kolejny warunek, muszę zaczekac aż minie te 50 sekund :
If Pinb.0 = 1 And Pinb.1 = 0 Then
Wait 50
Portd.1 = 1
Waitms 500
Portd.1 = 0Przeczytałem helpa i artykuł o timerach ale nie znalazłem odpowiedzi jak mam zrobic aby było dobrze.
Może mi ktoś powiedziec jak to zrobic?