Witam forum.
1. Sytuacja
PCF8583 podłączony do ATMega128 za pomocą I2C, wyjście INT z PCF podłączone go wejścia PE4 (INT4) mikrokontrolera za pomocą 4k7 pull-up resistor, zwartego do zasilania. Zegar działa bez zarzutu gdy czas/data jest odczytywany za pomocą odpowiedniej procedury.
2. Wyzwanie jest następujące:
problem pojawia się w momencie gdy odczyt czasu/daty ma być wyzwalany z wnętrza procedury obsługi przerwania INT4. Wygląda na to, że sygnał generowany przez PCF nigdy nie opada do zera (nie mam oscyloskopu - więc nie mam pewności) co wyzwalałoby przerwanie. Próbowałem różne wejścia (INT7-INT4) z różnymi warunkami wyzwalania przerwania. Niestety bez skutku.
Do INT 6 jest podpięta klawiatura - działa OK.
Za ewentualne propozycje/sugestię będę wdzięczny.
Pozdrawiam
Michał
1. Sytuacja
PCF8583 podłączony do ATMega128 za pomocą I2C, wyjście INT z PCF podłączone go wejścia PE4 (INT4) mikrokontrolera za pomocą 4k7 pull-up resistor, zwartego do zasilania. Zegar działa bez zarzutu gdy czas/data jest odczytywany za pomocą odpowiedniej procedury.
2. Wyzwanie jest następujące:
problem pojawia się w momencie gdy odczyt czasu/daty ma być wyzwalany z wnętrza procedury obsługi przerwania INT4. Wygląda na to, że sygnał generowany przez PCF nigdy nie opada do zera (nie mam oscyloskopu - więc nie mam pewności) co wyzwalałoby przerwanie. Próbowałem różne wejścia (INT7-INT4) z różnymi warunkami wyzwalania przerwania. Niestety bez skutku.
Do INT 6 jest podpięta klawiatura - działa OK.
Za ewentualne propozycje/sugestię będę wdzięczny.
Pozdrawiam
Michał
// inicjalizacja przerwan
EIMSK = (1<<INT4)|(1<<INT6);
EICRB = 0x02; // INT4 trigger by falling edge, INT6 low level
oraz
SIGNAL(SIG_INTERRUPT4)
{
read_time = 1; // Ustaw flage zegara
}