Panowie pomożecie, siedzę już drugi dzień i włosy se rwe!!!
We wcześniejszym poście udało się uruchomić pilota do nikona z wykorzystaniem przerwania Compare Match. ISR(TIMER0_COMP_vect). Efekt jest taki że ramka jest wysyłana non stop i aparat robi fotki bezustannie. Nie potrafię tego zatrzymać, wiec postanowiłem zmodyfikować kod, tak aby działa w ten sposób, aby wyzwolenie migawki w aparacie odbywało się po wciśnięciu klawisza, modyfikując projekt z bluebook'a "pilot ma podczerwień" str. 371. Problem w tym ze nie wykorzystuje standardu RC5, tylko nadajnik ma generować taką fale jak w pierwszym posice. Puszczam nośną 38,4 kHz a potem ją załączać i wyłączać wg pokazanego w pierwszym poście wykresu czasowego. Niestety nośna nie wyzwala migawki w aparacie. Wciśniecie klawisza działa, sprawdzam to za pomocą LED. Podłączenie wygląda tak,(stara wersja płyty ATB, w nowej wersji jest wyprowadzenie na diodę nadawcą):

program C poniżej:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Prośba na spojrzenie kodu co jest nie tak. I czy dobrze rozumie kod:
1. Po naciśnięciu klawisza pojawia się stan niski na pinie PD2 (INTO)
2. Powoduje to wybudzenie procesora i przejście do przerwania ISR(INTO_vect)
3. Jest sprawdzenie za pomocą if'a czy jest wciśnięty klawisz, jeśli tak, to
4. Wykonuje się polecenie LED_TOG; oraz nikonRelease();
5. W efekcie jest zmian stanu pinu na PA2 oraz uruchamia się Timer0, który generuje nośną
6. pojawia się stan wysoki przez okres 2000us z częstotliwościowa 38,4 kHz
7. pojawia się stan niski przez okres 27830 us z częstotliwościowa 38,4 kHz
8. i tak dalej... po skończeniu procedury nikonRelease(); następuje zmiana stanu portów i pinów związanych z klawiszem i INTO
Liczę na Was

PS: Sprawdziłem za pomocą aparatu w telefonie dioda nadawcza ciągle się świeci, dlaczego?