Witam wszystkich uczestników forum.
Niniejszym chciałbym zaprezentować mój pierwszy projekt na AVR. Dzięki bezcennym poradnikom Mirka powoli uczę się programowania, dlatego też proszę o łaskawe potraktowanie moich rozwiązań. Zdaję sobie sprawę, że z całą pewnością można to rozwiązać inaczej, z pewnością łatwiej, ale mój stan wiedzy w programowaniu pozwolił mi na opracowanie tego w poniższej formie
A o co chodzi... Projekt powstał oczywiście z potrzeby chwili. Mam telewizor LG i do niego pilota, który może obsługiwać dwa urządzenia (można przełączać pomiędzy dwoma adresami urządzeń). Oraz, nie chwaląc się, posiadam tuner telewizyjny DVBT firmy WIWA
. Tuner ten jest obsługiwany pilotem, który również działa przy kodowaniu podczerwieni NEC. Oczywiście ani adres urządzenia ani kody poszczególnych klawiszy nie odpowiadały pilotowi od telewizora. Nie rozwodząc się zbytnio pilot od tunera wyzionął ducha. Tak więc przyszedł mi do głowy pomysł, aby zbudować układ na Atmega 16, który podmieni kody wysyłane przez pilota LG dla drugiego urządzenia, na adres i kody zrozumiałe dla tunera. Ot cała filozofia.
Na poniższym zdjęciu pokazałem założenia czasowe dla odbierania danych i wysyłania nowych.
Przepraszam za jakość rysunku ale chyba widać ogólną zasadę. W górnej części przebieg odbierany przez odbiornik podczerwieni, a na dole przebiegi wysyłane przez diodę Irda. Najpierw odbieramy pierwszą ramkę danych. Ze względu na to, że jest za mało czasu przed pojawieniem się ewentualnego impulsu powtórki tego samego kodu, wprowadziłem zwłokę na wysłanie nowego kodu. Dlatego dopiero w następnym okresie jest dużo więcej "ciszy" i właśnie w tym momencie wysyłam zmienioną ramkę. W praktyce całkiem nieźle to działa.
Zastanawiałem się czy w ogóle jest możliwość jednoczesnego odbierania i wysyłania danych, zupełnie niezależnie od siebie, ale tu moja wiedza się niestety kończy (takie luźne pytanie).
Na poniższym zdjęciu pokazałem "zamontowane" urządzenie tzn ustawione przed tunerem w taki sposób aby obudowa zasłaniała odbiornik tunera a tylko dioda nadawcza go oświetlała.
A tak wygląda po otwarciu obudowy. Jak widać całość zmontowana na płytce uniwersalnej, ale całość zmontowałem w ciągu jednego wieczoru. Wiem, że można by to wykonać ładniej ale byłem bardzo ciekawy czy będzie działać.
A teraz to czego boję się najbardziej
mój kod. Na pewno będzie tam widoczny wpływ wielu rad Mirka i z czym się liczę wielu niedociągnięć, przed którymi przestrzegał
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Jeśli ktoś miałby ochotę to przeanalizować to będę wdzięczy za komentarze. Krytykę przyjmuję również - oczywiście w granicach rozsądku...
Najlepsze Życzenia Noworoczne
michciobb