Миро Самек "Использование режимов малого энергопотребления в простых программных архитектурах" (перевод)
AVR
AVR - малопотребляющий 8-разрядный RISC контроллер фирмы Atmel - также предоставляет возможность атомарного перехода в режим сна, хотя он и не столь очевиден, как в случае HC08 или MSP430. В AVR есть инструкция "SLEEP", которая останавливает тактирование ядра, но она не влияет на прерывания и поэтому должна выполняться уже после их разрешения. Это могло бы стать проблемой, если бы не следующее неприметное примечание в техническом описании [3]:
|
/" 4.7 Обработка режимов сброса и прерывания <..> Если для разрешения прерываний используется инструкция "SEI", то инструкция, следующая сразу за "SEI", будет выполнена до передачи управления ожидающим прерываниям, как показано в этом примера:
"/ |
Другими словами, пара инструкций "SEI-SLEEP" будет выполняться атомарно, вероятнее всего, из-за конвейерной архитектуры AVR. Будьте внимательны и всегда используйте "SEI-SLEEP" только вместе, никогда не разбивая их какой-либо иной инструкцией.
В листинге 4 приведён пример, показывающий переход в режим сна из фонового цикла, для компилятора IAR AVR. В листинге 5 показан тот же пример для компилятора GNU AVR (WinAVR).
| Листинг 4. Пример для компилятора IAR AVR показывает как переходить в режим сна из фонового цикла |
|
| Листинг 5. Пример для компилятора GNU AVR (WinAVR) показывает как переходить в режим сна из фонового цикла |
|
- блог пользователя teap0t
- 51094 просмотра
Новые записи в блогах
- Устранение дребезга контактов на основе вертикальных счетчиков
- Диагностика Imprecise Bus Faults в микроконтроллерах Cortex-M3/M4/M4F
- Self-powered камера
- Фоновый модулятор: беспроводная связь из ничего (перевод)
- Texas Instruments Analog Applications Journal SLYT612 "Снижение искажений в аналоговых КМОП ключах" (перевод)
- USB MSD. Часть 6. Команды SCSI (перевод)
- USB MSD. Часть 3. USB класс накопителей данных (перевод)
- Texas Instruments Application Report SBAA042 "Кодовые схемы, используемые в аналогово-цифровых преобразователях" (перевод)
- 10 принципов правильного интерфейса
- Релиз SDK на русский микропроцессор КРОЛИК


Recent comments
12 недель 4 дня назад
8 лет 19 недель назад
8 лет 34 недели назад
8 лет 44 недели назад
8 лет 46 недель назад
9 лет 2 недели назад
9 лет 26 недель назад
9 лет 28 недель назад
9 лет 31 неделя назад
9 лет 42 недели назад