Обычно в режиме ожидания процессор переходит в режим пониженного энергопотребления (спящий режим), если это система с низким энергопотреблением и процессор имеет такой режим. Обычно это специальная инструкция по сборке, например, на ARM Cortex M3 вы выполняете инструкцию "WFI". На других чипах может существовать специальный регистр вне ядра, который управляет питанием (в отличие от инструкции).
Обратите внимание, что перед переходом в режим пониженного энергопотребления часто возникают условия (требования, которые должны быть выполнены). Иногда перед сном вам нужно заблокировать, иногда разблокировать прерывания; проверьте таблицу данных вашего чипа.
Обычно перед переходом в режим низкого энергопотребления вы отключаете любую периферийную систему, которая вам не нужна. Опять же, проверьте таблицу данных вашего чипа. Кроме того, если вы собираетесь использовать прерывание для пробуждения, убедитесь, что периферийное устройство не выключено и прерывание включено, в противном случае вы не проснетесь.
Последний пункт: часто при отладке (например, под управлением устройства JTAG) происходят странные вещи при переходе в режим низкого энергопотребления, поэтому вы хотите отключить «спящий» режим в режиме ожидания при отладке и делать это только при запуске без отладчик. Обычно это решение во время компиляции (#ifdef ...)