Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Getrc5 w obsłudze przerwania

Jan Pawluk
Getrc5 w obsłudze przerwania

Postautor: Jan Pawluk » 22 lip 2003, o 19:47

Mamy tak:
________________________________________________
Config Rc5 = Pind.2
Config Lcd = 16 * 2
Config Int0 = Falling
On Int0 Grc5
Enable Interrupts
Enable Int0
'Cursor Off
Dim Address As Byte , Command As Byte , Fl As Bit , K As Byte , I As Byte
Cls
Lcd "Start programu!"
Fl = 0
K = 0

Do
If Fl = 1 Then
Disable Int0
Fl = 0
Command = Command And &B01111111
Locate 1 , 1
Lcd "Odebrano: " ; Address ; " " ; Command ; Spc(6)
Wait 5
Enable Int0
End If
Loop
End


Grc5:
Disable Int0
Incr K
Cls
Lcd "Sprawdzam: " ; K ; Spc(9)
Address = 255
Wait 1
I = 0
Enable Interrupts
While Address = 255
' Miało by to chodzić w kółko do przeczytania kodu rc5
' Poprzednie naciśnięcie klawisza było przejęte przez INT0,
' wołana zaraz Getrc5 może otrzymać kod niekopletny.
' Kolejny odczyt RC5 nie powinien wywołać ponownie Grc5
' gdyż jest Disable Int0 a wywołuje!!! ( 3 razy a potem idzie w buraki)
Incr I
Getrc5(address , Command)
Locate 2 , 1
Lcd K ; " " ; I ; " " ; Address ; " " ; Command ; Spc(6)
Wend
Fl = 1
Enable Int0
Return
_____________________________________________
Wydaje mi się, (chodź nie ma takich zastrzeżeń w opisie funkcji)
że funkcja Getrc5 nie nadaje się do użycia w programie obsługi
przerwań, nawet innych niż sama używa, a szkoda.

Jan Pawluk

Wróć do „Projektowanie PCB, programy EDA, CAD, narzędziowe”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 87 gości