Составители:
27
бита EEIE (INTCON<6>). Сброс флага EEIF должен выполнятся
программой обработки этого прерывания.
GIE - Бит разрешения/запрещения всех прерываний.
GIE = 0: запрещает ВСЕ прерывания
GIE = 1: разрешает ВСЕ прерывания, которые не запрещены
индивидуальными битами
Он сбрасывается в ноль автоматически при следующих обстоятельствах:
- по включению питания;
- по внешнему сигналу /MCLR при нормальной работе;
- по внешнему сигналу /MCLR в режиме SLEEP;
- по переполнению таймера WDT при нормальной работе;
- по переполнению таймера WDT в режиме SLEEP.
Сторожевой таймер
Перезапуск микроконтроллера можно осуществить с помощью
сторожевого таймера (Watchdog timer, WDT). WDT предназначен для того,
чтобы избежать “зависания" микроконтроллера. Это таймер работает от
собственного тактового генератора, который включается сразу после подачи
напряжения питания. Импульсы этого генератора подсчитываются
специальным регистром-счетчиком
импульсов. Когда происходит его
переполнение, выполняется автоматический перезапуск микроконтроллера, и
выполнение программы начинается заново с нулевого адреса. Регистр-счетчик
сторожевого таймера переполняется с периодом в 18 мсек. Для увеличения
периода срабатывания WDT используют пределитель. Он представляет собой
дополнительный счетчик, который подключается между генератором и
счетчиком WDT. Для пределителя задается коэффициент деления, на величину
которого увеличивается период срабатывания (переполнения) сторожевого
таймера. Таким образом счетчик WatchDog таймера время срабатывания WDT
составляет 18 мсек*коэффициент пределителя.
В ходе нормального выполнения программы WDT необходимо
периодически обнулять чтобы избежать ненужного перезапуска. Обнуление
производится командой CLRWDT.
Если произошло зацикливание или подвисание, то через
предусмотренный промежуток времени (зависит от значения коэффициента
деления пределителя) WDT подаст сигнал сброса
, и программа будет
выполняться заново. Подключение пределителя к WDT и задание
коэффициента деления осуществляется с помощью регистра OPTION. Он
расположен по адресу 81h и имеет следующую структуру:
Страницы
- « первая
- ‹ предыдущая
- …
- 27
- 28
- 29
- 30
- 31
- …
- следующая ›
- последняя »