Перейти к содержанию
    

LPC213x в PowerDown

не могу понять, но,

если в 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

...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...