Реклама ⓘ
Главная » Микроконтроллеры
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Реклама ⓘ

Группа команд управления процессором

Табл 6. Команды управления процессором

Команда

Описание

Действие

Циклы

Код операции

Флаги

ATtiny

ATmega

nop

No operation

-

1

0000 0000 0000 0000

None

+

+

sleep

Sleep

-

1

1001 0101 1000 1000

None

+

+

wdr

Watchdog Reset

-

1

1001 0101 1010 1000

None

+

+

break

Break

-

1

1001 0101 1001 1000

None

±

±

К группе команд управления процессором (табл.6) относятся 4 инструкции, которые не связаны с работой ЦПУ но, так или иначе, оказывают влияние на его аппаратные ресурсы.

Команда nop (Отсутствие операций) необходима для формирования точных временных интервалов. Она заставляет микроконтроллер затратить один холостой цикл машинного времени в течении которого процессор бездействует. Работа конвейера команд при этом не нарушается. По логике работы “пустая операция” nop может быть заменена на mov Rd,Rd или movw Rd,Rd, которые тоже выполнятся за 1 цикл и не изменят ни содержимое Rd ни SREG.

Команда sleep (Переход в спящий режим) переводит процессор в спящий режим работы. В этом состоянии происходит полная остановка АЛУ и еще ряда периферийных устройств. Какие именно узлы будут отключены зависит от вида спящего режима (имеется до 6-ти режимов). Сам же выбор спящего режима задается соответствующими установками в управляющем РВВ MCUCR (для ряда моделей также через MCUCSR,EMCUCR,SMCR). Дальнейшее выполнение программы (выход из спящего режима) возможно лишь в результате прерывания от работающего модуля или сброса микроконтроллера.

Обязательным узлом в составе современных микроконтроллеров является сторожевой таймер WDT (Watchdog Timer). Это независимый от процессора внутренний RC-генератор, который у AVR имеет частоту 128 кГц, и счетчик импульсов с программируемым коэффициентом счета. После поступления определенного числа импульсов счетчик переполняется и выдает сигнал сброса. Каждый раз когда в тексте программы встречается команда wdr (Сброс сторожевого таймера) происходит обнуление счетчика и сброс микроконтроллера откладывается на интервал времени необходимый до следующего переполнения. Таким образом при нормальном ходе программы и включенном сторожевом таймере перезагрузка не настанет никогда. Но если вдруг возник какой-либо непредвиденный сбой в результате которого произошло “зависание” программа, то инструкция wdr не будет выполнена и произойдет сброс. Хотя использование WDT значительно повысит стабильность работы устройства, его нужно использовать с осторожностью. Необходимо ставить инструкции wdr в тот участок кода который, гарантировано выполняется с такой периодичностью, чтобы счетчик таймера не переполнился. За управление сторожевым таймером отвечает РВВ WDTCR (WDTCSR) и ячейка конфигурации WDTON.

Последняя команда данной группы break (Остановка) доступна только моделям, имеющим на борту отладочный интерфейс JTAG (Joint Test Action Group) или dW (debugWire) и может быть необходима только в процессе отладки приложения. Инструкция является обыкновенной программной точкой остановки. Встречая её в ходе программы процессор останавливает свою работу и передаёт управление встроенному отладчику, через который можно проанализировать текущее состояние регистров, памяти и т.д. Пропуская через дешифратор команд инструкцию break, а также любой неизвестный код операции, микроконтроллер интерпретирует ее как пустую команду nop.

Перейти к следующей части:

Теги:

Котов Игорь Юрьевич Опубликована: 2012 г. 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (0) | Я собрал (0) | Подписаться

Статью еще никто не комментировал. Вы можете стать первым.
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется сила тока?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

AVR-программатор USB ASP
AVR-программатор USB ASP
Ветрогенератор 200 Вт усилитель класса D на IRS2092
вверх