Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[atmega162][avr-gcc] Problem z przerwaniem zewnętrznym

24 Lis 2008 14:57 1274 7
  • Poziom 11  
    Witam,
    Podłączyłem sobie do atmegi162 odbiornik podczerwieni (TSOP1736) przez pin PD2, czyli przerwanie INT0. Inicjalizacja przerwania wygląda następująco:

    Code:

       DDRD=0;

       PORTD=4;


       GICR=_BV(INT0);
       MCUCR=_BV(ISC01);

       sei();


    A minimalistyczna obsługa przerwania wygląda tak:

    Code:

    ISR(INT0_vect){
       command++;
    }


    No i rzecz w tym, że przerwanie cały czas się wykonuje (od kilku do kilkunastu razy na sekundę) mimo, że odbiornik nic nie odbiera. Na odbiór sygnałów chyba też reaguje, gdyż podczas nadawania zmienna command szybciej się inkrementuje (albo mi się tak tylko wydaje). O co w tym wszystkim może chodzić?
  • Specjalista - Mikrokontrolery
    wykonuje sie bo lapie jakies zbocza - wszystko od strony programu jest ok. jesliby sie wykonywalo caly czas to nie byloby 'kilka - kilkanascie razy na sekunde' tylko pewnie kilkaset tysiecy razy na sekunde.

    4\/3!!
  • Poziom 11  
    Jak więc można to rozwiazać? Jakiś kondensator między masą a portem może?
  • VIP Zasłużony dla elektroda
    Najpierw pokaż schemat.

    Pozdrawiam,
    Dr.Vee
  • Poziom 11  
    W zasadzie, to schematu żadnego nie ma. TSOP1736 jest zwyczajnie podłączony pod 5V ze stabilizatora, a jego wyjście idzie bezpośrednio do pinu PD2. Dodatkowo, w akcie desperacji, dodałem dodatkowy rezystor podciągający wyjście odbiornika do 5V, jednakże to nic nie zmieniło.
  • Pomocny post
    Poziom 32  
    Spróbuj podłączyć wg. tego:
    [atmega162][avr-gcc] Problem z przerwaniem zewnętrznym
  • Pomocny post
    VIP Zasłużony dla elektroda
    To poszukaj w datasheecie jaki jest rekomendowany schemat podłączenia układu. Między VCC a pin 2 układu rezystor 100 omów, między pin 2 a 1 kondensator 4,7uF.

    Pozdrawiam,
    Dr.Vee
  • Poziom 11  
    Rzeczywiście, problemem był nawet nie tyle ten kondensator, co rezystor w szeregu z zasilaniem. Teraz działa dobrze, dzięki :)