Всем добрый день.
Хочу научится усыплять этот процессор для снижения энергопотребления.
Из режимов пониженного энергопотребления подходит только sleep - когда тактирование процессора останавливается а переферия остаётся рабочей.
По таблице
Table 45. Encoding of reduced power modes на стр. 62 определяю что в РСОN 2 младших бита должны быть 0
00 Execution of WFI or WFE enters either Sleep or Deep Sleep mode as defined by the SLEEPDEEP bit in the Cortex-M3 System Control Register.Бит SLEEPDEEP в System Control Register после старта 0 т.е. определён переход в sleep
Делаю так:
Код
PCON = 0; //указываю что переход в sleep
asm("wfi") //пытаюсь усыпить процессор
Из разрешенных прерываний в NVIC uart0/2/3 и таймер 0
В итоге получаю вот что - программа продолжает работать но такое чувство что многократно замедляется исполнение задач.
Наглядно это видно в значительном уменьшении потока отладочной информации из устройства.
Есть подозрение что происходит пропуск прерываний от таймера. Визуально пропусков прерываний от uarts не заметно т.к. строки с текстом приходят без пропусков символов.
Кто работал с sleep-режимами в lpc17xx подскажите где и что я могу упускать. Заранее спасибо.