Миро Самек "Использование режимов малого энергопотребления в простых программных архитектурах" (перевод)
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
- 45492 просмотра
Новые записи в блогах
- Устранение дребезга контактов на основе вертикальных счетчиков
- Диагностика 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
5 лет 20 недель назад
5 лет 35 недель назад
5 лет 45 недель назад
5 лет 47 недель назад
6 лет 3 недели назад
6 лет 27 недель назад
6 лет 28 недель назад
6 лет 31 неделя назад
6 лет 42 недели назад
7 лет 22 недели назад