Andy_Mozzhevilov 0 16 сентября, 2005 Опубликовано 16 сентября, 2005 · Жалоба не могу понять, но, если в pwd перейти записью PCON = 7, то есть согласно документации с выключением работы BOD в PWD режиме, то при выходе из PWD происходит рестарт контроллера. Если в PWD перейти PCON = 3 (оставив BOD работающим), то выход из pwd происходит нормально. На reset все нормально, никаких провалов. Vcc = 3.3, то есть под ситуацию из errata не попадает. В pwd захожу по уровневому прерыванию на EINT2, в прерывании же меняю полярность, сбрасываю флаг и включаю пробуждение по EINT2, засыпаю, просыпаясь все восстанавливаю и выхожу. void Eint_isr(void) { // switch to power down EXTPOLAR_bit.EXTPOLAR2 = 0; //0 - low level aclive EXTINT_bit.EINT2 = 1; //clear INT FLAG EXTWAKE_bit.EXTWAKE2 = 1; //wake by INT2 PIN_OFF(GREEN_LED); PCON = 7; // power down //exit from pwd PIN_ON(GREEN_LED); EXTWAKE_bit.EXTWAKE2 = 0; //disable wake by INT2 EXTPOLAR_bit.EXTPOLAR2 = 1; //1 - high level aclive EXTINT_bit.EINT2 = 1; //clear INT FLAG } int main (void) { PIN_FUNC(EINT_PIN, 3); //EINT2 mode EXTMODE_bit.EXTMODE2 = 0; //0 - level sens EXTPOLAR_bit.EXTPOLAR2 = 1; //1 - high level aclive EXTINT_bit.EINT2 = 1; //clear INT FLAG ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andy_Mozzhevilov 0 20 сентября, 2005 Опубликовано 20 сентября, 2005 · Жалоба оказалось, глюк инженерных образцов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться