PCF8583 i przerwanie
PCF8583 i przerwanie
Do tej pory używałem układu PCF8583 w roli samego zegara i wszystko było ok. Ostatnio postanowiłem dobudować alarm i tu się zaczęły schody. Mianowicie byłem przekonany, że po uaktywnieniu alarmu przerwania będą nadal generowane co sekundę, a okazuje się, że nie i teraz przerwanie generowane jest w momencie nadejścia alarmu. Czy może da się jakoś zmusić ten układ, by pomimo uaktywnienia alarmu (ustawiony bit 2 w rejestrze kontrolnym) nadal były generowane przerwania co sekundę? Jeśli nie, będę musiał zmienić zupełnie ideę zegara, która do tej pory działała właśnie na odczycie czasu w cosekundowych przerwaniach.
Pierwszą czynnością Twojego programu po wywołaniu alarmu powinno być ... ustawienie nowego alarmu 
Zobacz także uwagę do Figure 12:
Zobacz także uwagę do Figure 12:
co jest opisane:(1) If the alarm enable bit of the control and status register is reset (logic 0), a 1 Hz signal is observed on the interrupt pin INT.
7.9 Interrupt output
The conditions for activating the output INT (active LOW) are determined by appropriate
programming of the alarm control register. These conditions are clock alarm, timer alarm,
timer overflow, and event counter alarm. An interrupt occurs when the alarm flag or the
timer flag is set, and the corresponding interrupt is enabled. In all events, the interrupt is
cleared only by software resetting of the flag which initiated the interrupt.
In the clock mode, if the alarm enable is not activated (alarm enable bit of the control and status register is logic 0), the interrupt output toggles at 1 Hz with a 50 % duty cycle (may be used for calibration). This is the default power-on state of the device. The OFF voltage of the interrupt output may exceed the supply voltage,
To nie zmienia faktu, że przerwania są generowane w zależności od trybu pracy. Bez alarmu na wyjściu INT są impulsy 1Hz, z alarmem nie ma ich w ogóle, jedyna opcja przerwania to pojawienie się alarmu, co znalazłem w sumie po dogłębnej analizie datasheet
EDIT
Ubiegłeś mnie z tym cytatem
Cóż, będę musiał w takim razie sprawdzać godzinę w inny sposób, ale już na pewno nie w przerwaniu INT.In the clock mode, if the alarm enable is not activated (alarm enable bit of the control and
status register is logic 0), the interrupt output toggles at 1 Hz with a 50 % duty cycle [...]
EDIT
Ubiegłeś mnie z tym cytatem
Nie wiem jaką funkcjonalność potrzebujesz, ale jeżeli to ma być na zasadzie:
1. czekaj na określoną godzinę i wywołaj alarm,
2. po wywołaniu alarmu generuj przerwania co 1 sekundę,
to wystarczy (chyba) w pierwszym przerwaniu (od ustawionej godziny) wyłączyć alarm by mieć przerwania co 1 sekundę.
Poza tym zawsze możesz zastosować to co napisałem na początku pierwszego postu.
1. czekaj na określoną godzinę i wywołaj alarm,
2. po wywołaniu alarmu generuj przerwania co 1 sekundę,
to wystarczy (chyba) w pierwszym przerwaniu (od ustawionej godziny) wyłączyć alarm by mieć przerwania co 1 sekundę.
Poza tym zawsze możesz zastosować to co napisałem na początku pierwszego postu.