Сплячий режим, вихід з нього, сторожовий пес
Сплячий режим (Sleep) і зупинка (Powerdown) зазвичай застосовуються при автономному живленні пристрою, коли контролер ледарює і жере енергію даремно. Цілком розумно припиняти його роботу на цей час.
AT90S2313 може зануритися в сон двома способами:
- Команда Idle. Зупиняє тактовий генератор, але UART, зовнішні переривання і переривання по таймеру / лічильника продовжують працювати. Всі вони виводять мікроконтролер із сплячого режиму.
- Команда Powerdown зупиняє тактовий генератор, але працювати продовжують тільки зовнішні переривання.
Розглянемо приклад роботи з режимом Powerdown і виходом з нього:
powerdown.bas Після того, як контролер поморгай світлодіодом і напише повідомлення на РКІ, Powerdown занурить його в сон.
Натискання кнопки на Int0 розбудить його.
Сторожовий пес (watchdog)
Bascom дозволяє реалізувати функцію ватчдога в програмі. Ватчдог - така функція, яка скидає контролер, якщо програма починає тупити або зависає. По суті це - таймер, який потрібно регулярно обнуляти. Якщо програма зависає, вона не робить черговий скидання лічильника. Як тільки він переповнюється, відбувається апаратне скидання контролера. Ця функція потрібна в додатках, де стабільність роботи критична, і дайте йому працювати, що б не сталося.
Природно, програма контролера повинна взаємодіяти з таймером ватчдога. Його спрацьовування - серйозна позаштатна ситуація, яка може бути викликана як несправністю самої програми, так і обладнання. У будь-якому випадку, якщо ви застосовуєте сторожовий таймер, подбайте про систему протоколювання помилок, інакше ви ризикуєте ніколи не дізнатися причину збою. І малоймовірно, що він не повториться знову.
Ватчдог налаштовується таким чином: В діапазоні від 16 до 2048 мс.
Лічильник потрібно постійно скидати перед переповненням: Щоб запобігти апаратне скидання.
Ватчдог може бути запущений або зупинений в потрібний момент: Але схоже, сама лише наявність команди Stop Watchdog зневажає всю ідею його застосування.
У AT90S2313 ватчдог використовує окремий тактовий генератор 1 МГц, вбудований в чіп. Він не дуже точний, так що затримки таймера можуть злегка варіюватися.
Ось приклад вимушеного спрацьовування таймера:
watchdog.bas Після команди Start Watchdog контролер відправляється в режим Sleep, зупиняючи тактовий генератор. Так як ватчдог працює на незалежному тактовом генераторі, такий хід речей його не влаштовує, і він генерує примусовий апаратне скидання приблизно через 2 секунди.
Бажаєте купити тютюн для кальяну?
CMS версія 3.0.0 by Demson