Кто загонял LPC213x в Power Down? не могу понять, но,
если в 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 ...