Witam!
Od niedawna męczę się z odebraniem kodu Rc5 w tle działania innego programu.
W moim wypadku jest to zegar z budzikiem na LCD który działa bez problemu lecz jak tylko dorzucę do programu procedurę odbierania Ir to wtedy przestaje mi liczyć czas mój zegar.
Niżej zamieszczam przykładowy program z odliczaniem 1 sekundy przez Timer0 i dodanym do tego programem do odbioru Kodu Rc5 w przerwaniu Int0. Dodam, że obydwa programy pojedynczo działają bez problemu.
Prosił bym o poradę co robię źle z góry dzięki.
pozdrawiam
Poprawiłem tytuł.
[zumek]
Od niedawna męczę się z odebraniem kodu Rc5 w tle działania innego programu.
W moim wypadku jest to zegar z budzikiem na LCD który działa bez problemu lecz jak tylko dorzucę do programu procedurę odbierania Ir to wtedy przestaje mi liczyć czas mój zegar.
Niżej zamieszczam przykładowy program z odliczaniem 1 sekundy przez Timer0 i dodanym do tego programem do odbioru Kodu Rc5 w przerwaniu Int0. Dodam, że obydwa programy pojedynczo działają bez problemu.
$regfile = "m8def.dat"
$crystal = 8000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5
Cursor Off
Config Timer0 = Timer , Prescale = 256
Config Int0 = Low Level
Config Portd.0 = Output
On Int0 Pobr_rc5
On Timer0 Odmierz_1s
Dim Odebr_kod As Bit
Dim Address As Byte , Command As Byte
Dim S As Byte , Licz_8ms As Byte
Set Odebr_kod
Set Portd.0
Enable Timer0
Enable Int0
Enable Interrupts
Load Timer0 = 250
Start Timer0
Cls
Do
Cls
Lcd S
Waitms 150
If Odebr_kod = 1 And Address = 0 And Command = 12 Then
Portd.0 = 1
Wait 1
Reset Odebr_kod
Enable Int0
End If
If Odebr_kod = 1 And Address = 0 And Command = 59 Then
Portd.0 = 0
Wait 1
Reset Odebr_kod
Enable Int0
End If
Loop
End
Pobr_rc5:
Disable Int0
Enable Interrupts
Getrc5(address , Command)
Command = Command And &B01111111
Set Odebr_kod
Return
Odmierz_1s:
Load Timer0 = 250
Incr Licz_8ms
If Licz_8ms = 125 Then
Licz_8ms = 0
Incr S
End If
Return
Prosił bym o poradę co robię źle z góry dzięki.
pozdrawiam
Poprawiłem tytuł.
[zumek]