Program jest odbiornikiem kodu z pilota z kodowaniem NEC wraz z możliwością wykrycia przytrzymania klawisza ( wykrycie znacznika powtórzenia). Tzn miał być, ale nie działa do końca

Przerwanie od zbocza reaguje tylko na zbocze opadające, wtedy też jest zerowany timer oraz wartość rejestru timera w chwili przerwania zamieniana na mikrosekundy, następnie zaś sprawdzane jest czy wartość ta odpowiada wartości BIT1 wraz z odchyłkami BLAD. Jeśli tak to wpisujemy do wartości odbieranego bajtu 1, jeśli nie - wartość 0. Każde przerwanie zapisuje bit danych ostatnio odebranego bitu, dlatego ignorujemy 2 pierwsze przerwania (pierwsze to znaczniki początku, drugie to pierwszy bit danych). To feralne przerwanie od przepełnienia ma za zadanie wykryć koniec przyciśnięcia danego klawisza i przygotować zmienne do odbioru kolejnych danych.
Wiem, że nie jest to program idealny do celu przedstawionego w pierwszym zdaniu. Przybliżając jego zasadę działania mam nadzieję również, że ktoś pokieruje mnie jak to można zrobić lepiej.
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Dołączam obrazek dla lepszego zrozumienia działania programu. Ten znacznik powtórzenia jest jakiś dziwny, nieNECowski. Ale działa bo wysyłając go programem do telewizora interpretował on to jako przytrzymanie klawisza. Znacznik został wykryty przerwaniami od zboczy.

EDIT:
Z fusebitów jedynie zmieniałem na częstotliwość 8Mhz, tak jak pokazał to mirekk36 na jednym ze swoich filmików dla początkujących.