Witam
Jak działa generowanie przerwania w układzie PCF8583 ??. Interesuje mnie co ile występuje i czy jest możliwość programowania jego występowania.
Pozdrawiam
Aktyw Forum
Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.
Sprawdź punkty Zarejestruj sięGenerowanie przerwania PCF8583
Moderatorzy:Jacek Bogusz, robertw, k.pawliczak, Moderatorzy
Jak ustawisz alarm to samo się wygeneruje. Pelny opis w dokumentacji, a dokumentacja dostępna w internecie.
[ Dodano: 22-08-2005, 17:56 ]
No dobrze. Sądząc z pytania jesteś młodym i początkującym programistą. Oto opis.
PCF8583 to zegar RTC z możliwością ustawienia alarmów, lub pracy Timera. Konsekwencją pozytywnego porównania alarmu z godziną bieżącą jest wygenerowanie tzw. przerwania na nodze INT. Musi być ono odczytane i odpowiednio zinterpretowane przez jednostkę centralną. To samo dotyczy Timera.
Aby ustawić alarm należy wpisać odpowiednie wartości (kod BCD) do rejestrów alarmu 09H - dziesiąte i setne części sekundy, 0AH - sekundy, 0BH - minuty, 0CH - godziny, 0DH - dzień miesiąca(lub bitowo dni tygodnia), 0EH - miesiąc. Dodatkowo ustawić w rejestrze 00H (CONTROL\STATUS) bit "alarm enable" - główne zezwolenie dla alarmu (aktywuje rejestr 08H (ALARM CONTROL).
W rejestrze ALARM CONTROL wybrać tryb alarmu (5:4 bit owego rejestru):
00 - no clock alarm
01 - daily alarm (codziennie)
10 - weekday alarm (w określonym dniu tygodnia - można ustawić bity dla dowolnych dni tygodnia)
11 - dated alarm (w określonym dniu miesiąca)
Ustawić bit "timer alarm enable" (6 bit), ustawić bit "alarm interrupt enable" (7 bit). Ostatni bit spowoduje wygenerowanie przerwania i ustawienie flagi alarmu (bit 1 rejestru CONTROL\STATUS) w odpowiednim czasie.
Przerwania zegara warto używać tylko, gdy "usypiamy" procesor. W pozostałych przypadkach, co prawda ułatwia identyfikację alarmu, lecz zajmuje cenną nóżkę procesora. W takim przypadku częsty odczyt i kontrola flagi alarmu sprawdza się równie dobrze.
[ Dodano: 22-08-2005, 17:56 ]
No dobrze. Sądząc z pytania jesteś młodym i początkującym programistą. Oto opis.
PCF8583 to zegar RTC z możliwością ustawienia alarmów, lub pracy Timera. Konsekwencją pozytywnego porównania alarmu z godziną bieżącą jest wygenerowanie tzw. przerwania na nodze INT. Musi być ono odczytane i odpowiednio zinterpretowane przez jednostkę centralną. To samo dotyczy Timera.
Aby ustawić alarm należy wpisać odpowiednie wartości (kod BCD) do rejestrów alarmu 09H - dziesiąte i setne części sekundy, 0AH - sekundy, 0BH - minuty, 0CH - godziny, 0DH - dzień miesiąca(lub bitowo dni tygodnia), 0EH - miesiąc. Dodatkowo ustawić w rejestrze 00H (CONTROL\STATUS) bit "alarm enable" - główne zezwolenie dla alarmu (aktywuje rejestr 08H (ALARM CONTROL).
W rejestrze ALARM CONTROL wybrać tryb alarmu (5:4 bit owego rejestru):
00 - no clock alarm
01 - daily alarm (codziennie)
10 - weekday alarm (w określonym dniu tygodnia - można ustawić bity dla dowolnych dni tygodnia)
11 - dated alarm (w określonym dniu miesiąca)
Ustawić bit "timer alarm enable" (6 bit), ustawić bit "alarm interrupt enable" (7 bit). Ostatni bit spowoduje wygenerowanie przerwania i ustawienie flagi alarmu (bit 1 rejestru CONTROL\STATUS) w odpowiednim czasie.
Przerwania zegara warto używać tylko, gdy "usypiamy" procesor. W pozostałych przypadkach, co prawda ułatwia identyfikację alarmu, lecz zajmuje cenną nóżkę procesora. W takim przypadku częsty odczyt i kontrola flagi alarmu sprawdza się równie dobrze.
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 13 gości