Witam.
Tworzę pewien program, który powinien odbierać dane wysyłane przez podczerwień.
Program, co 10ms w przerwaniu od T0, odczytuje dane z czujnika temperatury. Gdy te dane zostają odczytane, powraca do pętli głównej. Wtedy są już aktywne przerwania Timera 1 (ICP; przerwania, za każdym razem gdy wywoływana jest procedura obsługi przerwania licznika T0, są wyłączane), dzięki czemu możliwy jest odbiór komunikatów z pilota (RC5). Gdy pilot coś nadaje, wywołanie przerwania Timera1 zatrzymuje Timer0, aby nie przeszkadzał w prawidłowym odbieraniu ramki.
ir_decode.c
[ .... kolega nie czytał mojej prośby, którą wszędzie piszę - aby nie publikować na forach bibliotek z moich książek ? toż przecież szczególnie na tym forum, każdy posiada i to Bluebooka - więc każdy ma też biblioteki. Można publikować zawartość plików main.c albo własne pliki projektu ... ale z bibliotekami to proszę o zrozumienie - mirekk36 ]fragment progr. gł.:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
przerw. - fragment:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Program działa poprawnie wtedy, kiedy wysyłam kody z pilotów RC5. Gdy nacisnę przycisk innego pilota, program się blokuje - nie następuje włączenie przerwań Timera0. Gdy ponownie, po zablokowaniu się układu, wyślę coś z pilota RC5, to za którymś razem program się odblokowuje i normalnie odbiera komendy.
Czym to może być spowodowane?