Witam Forumowiczów,
Mam problem z ogarnięciem tematu wywoływania przerwań. Nie jest to problem jak je wywołać ale jak je okiełznać
Wygląda to tak:
Jest układ na Mega644PA-AU. Po I2C współpracuje z zegarkiem PCF8583, oprócz tego linia przerwania z PCF podłączona jest do portu D6 procka. Klawiatura zrealizowana jest na przetworniku ADC (port A0) i drabince rezystorowej. Oczywiście układ robi coś tam nawet skomplikowanego ale nie to jest tematem. Otóż chcę maksymalnie oszczędzać energię akumulatora zasilającego i oczywiście chcę wybudzać układ przerwaniem z PCF o określonej godzinie, układ zrobi co ma zrobić ustawia kolejne budzenie i idzie spać. Jednak w tzw. międzyczasie użytkownik może zechcieć coś z nim zrobić. Zatem konieczne jest aby układ wybudzał się także po naciśnięciu klawisza. I w sumie to wszystko działa ale... właśnie jest jakieś ale. Mianowicie po włączeniu zasilania układ jakby głupiał na instrukcji poprzedzającej wyłączenie przerwań przed wyłączeniem procka "Power Powerdown". W tym przykładzie nie wyłącza podświetlenia "Reset LCDB". Po jego obsłużeniu i ponownym wejściu w uśpienie kolejne wybudzenie jest już OK. Za nic nie mogę dojść o co chodzi. Poniżej ta istotna część kodu realizująca obsługę przerwania.
Mam problem z ogarnięciem tematu wywoływania przerwań. Nie jest to problem jak je wywołać ale jak je okiełznać
Wygląda to tak:
Jest układ na Mega644PA-AU. Po I2C współpracuje z zegarkiem PCF8583, oprócz tego linia przerwania z PCF podłączona jest do portu D6 procka. Klawiatura zrealizowana jest na przetworniku ADC (port A0) i drabince rezystorowej. Oczywiście układ robi coś tam nawet skomplikowanego ale nie to jest tematem. Otóż chcę maksymalnie oszczędzać energię akumulatora zasilającego i oczywiście chcę wybudzać układ przerwaniem z PCF o określonej godzinie, układ zrobi co ma zrobić ustawia kolejne budzenie i idzie spać. Jednak w tzw. międzyczasie użytkownik może zechcieć coś z nim zrobić. Zatem konieczne jest aby układ wybudzał się także po naciśnięciu klawisza. I w sumie to wszystko działa ale... właśnie jest jakieś ale. Mianowicie po włączeniu zasilania układ jakby głupiał na instrukcji poprzedzającej wyłączenie przerwań przed wyłączeniem procka "Power Powerdown". W tym przykładzie nie wyłącza podświetlenia "Reset LCDB". Po jego obsłużeniu i ponownym wejściu w uśpienie kolejne wybudzenie jest już OK. Za nic nie mogę dojść o co chodzi. Poniżej ta istotna część kodu realizująca obsługę przerwania.
Kod: VB.net
