Как стать программистом Как устроен компьютер. Что такое программа. Как написать свою программу. И многое другое узнаете вы из этой книги. Получить бесплатно! |
Регистры MCUSR и WDTCR
Микроконтроллеры / Для начинающих / Архитектура /Что нужно для того, чтобы стать профессиональным разработчиком программ для микроконтроллеров и выйти на такой уровень мастерства, который позволит с лёгкостью найти и устроиться на работу с высокой зарплатой (средняя зарплата программиста микроконтроллеров по России на начало 2017 года составляет 80 000 рублей). Подробнее... |
MCUSR - MCU Status Register (регистр состояния микроконтроллера)
Регистр состояния MCU предоставляет данные о том, какой источник сброса вызвал сброс микроконтроллера.
- Биты 7…4 - Res: зарезервированные биты. Эти биты в ATtiny13A являются зарезервированными битами и всегда будут считываться как ноль.
- Бит 3 - WDRF: Watchdog Reset Flag - флаг сброса сторожевого таймера. Этот бит устанавливается, если происходит сброс сторожевого таймера. Бит сбрасывается путем сброса при включении питания или путем записи логического нуля во флаг.
- Бит 2 - BORF: Brown-out Reset Flag - флаг сброса детектора падения напряжения. Этот бит устанавливается, если происходит сброс по падению напряжения питания. Бит сбрасывается путем сброса при включении питания или путем записи логического нуля во флаг.
- Бит 1 – EXTRF: External Reset Flag - флаг внешнего сброса. Этот бит устанавливается, если происходит внешний сброс. Бит сбрасывается путем сброса при включении питания или путем записи логического нуля во флаг.
- Бит 0 – PORF: Power-on Reset Flag - флаг сброса при включении питания. Этот бит устанавливается, если происходит сброс при включении питания. Бит сбрасывается только путем записи логического нуля во флаг.
Чтобы использовать флаги сброса для определения условия сброса, пользователь должен прочитать и затем сбросить MCUSR как можно раньше в программе. Если регистр очищен до того, как произойдет другой сброс, источник сброса можно найти, просмотрев флаги сброса.
WDTCR - Watchdog Timer Control Register (регистр управления сторожевым таймером)
- Бит 7 – WDTIF: Watchdog Timer Interrupt Flag - флаг прерывания сторожевого таймера. Этот бит устанавливается, когда в сторожевом таймере наступает тайм-аут, и если сторожевой таймер настроен на прерывание. WDTIF очищается аппаратным обеспечением при выполнении соответствующего вектора обработки прерываний. В качестве альтернативы, WDTIF очищается путем записи логической единицы во флаг. Когда установлен I-бит в регистрах SREG и WDTIE, то выполняется прерывание тайм-аута сторожевого таймера.
- Бит 6 – WDTIE: Watchdog Timer Interrupt Enable - включение прерывания сторожевого таймера. Когда этот бит записывается в единицу и устанавливается I-бит в регистре состояния, включается прерывание сторожевого таймера. Если WDE отключен в сочетании с этой настройкой, сторожевой таймер находится в режиме прерывания, и соответствующее прерывание выполняется, если в сторожевом таймере наступает тайм-аут. Если установлен параметр WDE, сторожевой таймер находится в режиме прерывания и сброса системы. Первый тайм-аут в сторожевом таймере установит флаг WDTIF. Выполнение соответствующего вектора прерывания очистит WDTIE и WDTIF автоматически аппаратно (сторожевой таймер переходит в режим сброса системы). Это полезно для обеспечения безопасности сторожевого таймера при использовании прерывания. Чтобы оставаться в режиме прерывания и сброса системы, WDTIE необходимо устанавливать после каждого прерывания. Однако это не следует делать в рамках самой процедуры обработки прерываний, поскольку это может поставить под угрозу функцию безопасности режима сброса системы сторожевого таймера. Если прерывание не будет выполнено до следующего тайм-аута, будет применен сброс системы.
WDTON | WDE | WDTIE | Режим | Действие по тайм-ауту |
1 | 0 | 0 | Остановка | Нет |
1 | 0 | 1 | Режим прерываний | Прерывание |
1 | 1 | 0 | Режим сброса системы | Сброс |
1 | 1 | 1 | Режим прерывания и сброса системы | Прерывание, а затем переход к сбросу системы |
0 | x | x | Режим сброса системы | Сброс |
ПРИМЕЧАНИЕ: Фуз-бит WDTON, установленный в 0, означает “включено” (запрограммировано), а 1 - “выключено” (не запрограммировано).
- Бит 4 – WDCE: Watchdog Change Enable - включить изменение сторожевой таймер. Этот бит используется в синхронизированных последовательностях для изменения битов WADE и предварительного делителя частоты. Чтобы очистить бит WDE и/или изменить биты делителя частоты, необходимо установить бит WDCE. После записи в единицу аппаратное обеспечение очистит WDCE после четырех тактов.
- Бит 3 – WDE: Watchdog System Reset Enable - включить сброс системы сторожевым таймером. WDE перезаписывается с помощью WDRF в регистре MCUSR. Это означает, что WDE всегда устанавливается, когда установлен WDRF. Чтобы очистить WDE, сначала необходимо очистить WDRF. Эта функция обеспечивает многократный сброс при наступлении условий, вызывающих сбой, и безопасный запуск после сбоя.
- Бит 5, 2:0 – WDP[3:0]: Watchdog Timer Prescaler 3, 2, 1 and 0 - предварительный делитель частоты сторожевого таймера 3, 2, 1 и 0. Биты WDP[3:0] определяют значение предварительного делителя частоты сторожевого таймера при запуске сторожевого таймера. Различные значения предварительного делителя частоты и соответствующие им периоды ожидания показаны в таблице 8-2.
WDP3 | WDP2 | WDP1 | WDP0 | Количество циклов генератора сторожевого таймера (WDT) | Обычное время тайм-аута при напряжении питания 5В |
0 | 0 | 0 | 0 | 2К (2048) циклов | 16 мс |
0 | 0 | 0 | 1 | 4К (4096) циклов | 32 мс |
0 | 0 | 1 | 0 | 8К (8192) циклов | 64 мс |
0 | 0 | 1 | 1 | 16К (16384) циклов | 0,125 с |
0 | 1 | 0 | 0 | 32К (32768) циклов | 0,25 с |
0 | 1 | 0 | 1 | 64К (65536) циклов | 0,5 с |
0 | 1 | 1 | 0 | 128К (131072) циклов | 1 с |
0 | 1 | 1 | 1 | 256К (262144) циклов | 2 с |
1 | 0 | 0 | 0 | 512К (524288) циклов | 4 с |
1 | 0 | 0 | 1 | 1024К (1048576) циклов | 8 с |
1 | 0 | 1 | 0 | Резерв | Резерв |
1 | 0 | 1 | 1 | Резерв | Резерв |
1 | 1 | 0 | 0 | Резерв | Резерв |
1 | 1 | 0 | 1 | Резерв | Резерв |
1 | 1 | 1 | 1 | Резерв | Резерв |
Вступить в группу "Основы программирования"
Подписаться на RUTUBE-канал Подписаться на Дзен-канал Подписаться на рассылки по программированию |
Микроконтроллеры для ЧАЙНИКОВ
Бесплатная рассылка о микроконтроллерах. Рассылка содержит как бесплатную информацию для начинающих, так и ссылки на платные продукты (книги, видеокурсы и др.) для тех, кто захочет вникнуть в тему более глубоко. Подробнее... |