logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Atmega32 nie reaguje na przerwanie z PCF8583 co 5 minut - co robię źle?

imarszi 28 Mar 2012 11:26 1569 5
REKLAMA
  • #1 10728428
    imarszi
    Poziom 14  
    Witam i pozdrawiam.

    Chciałbym co 5 minut wysyłać przerwanie z pcf8583 do atmegi32. W pcf wszystko działa, chyba (co zadany czas odpowiednie bity są ustawione i jak mierzę napięcie pomiędzy wyprowadzeniu pinu int pcf a +5v to najpierw mam zero a po upływie zadanego czasu 5v,czyli int jest w stanie niskim), obsługa przerwania w Atmega32 działa jak trzeba, tzn. jak pin Int0 Atmegi zewrę z masą to wykonuję się kod z obsługi przerwania.
    Niby wszystko OK ale jak podłącze Int0 z Atmegi do int z pcf to do przerwania nie dochodzi :( Oddzielnie wszystko działa a razem nie chce.
    O co chodzi ?
  • REKLAMA
  • Pomocny post
    #2 10728501
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • Pomocny post
    #3 10728527
    mirekk36
    Poziom 42  
    atom1477 napisał:
    Pin INT w PCF jest typu otwarty dren. Potrzebujesz więc rezystor podciągający.


    No dokładnie ale spokojnie wystarczy programowe podciągnięcie wejścia INT do VCC - na 100% też będzie działać poprawnie.
  • REKLAMA
  • #4 10728531
    imarszi
    Poziom 14  
    Ja bardziej jestem programistą niż elektronikiem :)

    O to chodzi ?

    PORTD=_BV(2);

    GICR=_BV(INT0);

    Czy ?

    DDRD=_BV(2);
    PORTD=_BV(2);
    GICR=_BV(INT0);


    Trzeci pin portu D to Int0
  • REKLAMA
  • Pomocny post
    #5 10728564
    mirekk36
    Poziom 42  
    No i bardzo dobrze, masz:

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    tylko pozbyłem się tych brzydkich makr _BV(), których osobiście nie cierpię ;) ale jak się uprzesz to oczywiście możesz je stosować. Ja wolę tak bo jest bardziej przejrzyście.
  • #6 10728600
    imarszi
    Poziom 14  
    DDRD=0; // pin jako Wejscie

    W końcu działa !!!
    Wielkie dzięki !!!
REKLAMA