Читаем PIC-микроконтроллеры. Все, что вам необходимо знать полностью

      __config _WDT_ON; Включаем сторожевой таймер

        org h’000’; Вектор сброса

MAIN btfSS STATUS,NOT_TO; Сброс от сторожевого таймера?

            clrf BEAN_COUNT; ЕСЛИ нет, ТО обнуляем счетчик

; Остальной инициализационный код ------------

             clrwdt; Устанавливаем NOT_ТO и сбрасываем сторожевой таймер

Строго говоря, при инициализации после сброса по питанию команду clrwdt вызывать не обязательно. Однако из-за этой секции инициализации увеличивается время перехода к основной части программы и, соответственно, время до запланированного вызова команды clrwdt. Так что дополнительная команда clrwdt в конце любого блока инициализации является полезной предосторожностью.

Поскольку генератор сторожевого таймера полностью независим от системного тактового сигнала, он продолжает работать даже после перевода микроконтроллера в «спящий» режим. Для этого команда sleep сбрасывает сторожевой таймер и деактивирует флаг . К тому же она активизирует флаг  (STATUS[3]), указывающий на то, что процессор находится в «спящем» режиме. Благодаря всем этим действиям между выполнением команды sleep и наступлением тайм-аута сторожевого таймера проходит время, равное одному периоду сторожевого таймера. Если тайм-аут наступит при нахождении микроконтроллера в спящем режиме, то микроконтроллер проснется и продолжит выполнение программы с команды, следующей за командой sleep[170]. Обычно этой командой является команда сброса сторожевого таймера clrwdt.

При необходимости программа может определить, что выход из спящего режима произошел по тайм-ауту сторожевого таймера, проверив флаги  и . В микроконтроллерах младшего уровня тайм-аут сторожевого таймера является единственным способом вывода микроконтроллера из спящего режима, не считая аппаратного сброса. В микроконтроллерах среднего и верхнего уровней выход из спящего режима тоже может осуществляться по внешнему прерыванию, а также, в некоторых случаях, по сигналу от Таймера 1 и аналоговых модулей, которые могут работать от собственного тактового генератора. Следует иметь в виду, что при включенном сторожевом таймере ток потребления микроконтроллера в спящем режиме возрастает с 0.9 мкА (5 мкА шах) до 7.5 мкА (30 мкА шах) (цифры приведены для модели PIC16F87X при VDD = 3 В, ТА —40…+85 °C). Если требуется длительная работа устройства от батарей (см., например, Вопрос для самопроверки 12.6 на стр. 449), то это может оказаться серьезной проблемой. Для сравнения скажу, что процессор, работающий на частоте 32.768 кГц при напряжении 3 В и выключенном сторожевом таймере, потребляет ток около 20 мкА (35 мкА max).

* * *

Модели младшего уровня имеют базовый 8-битный счетчик/предделитель, который первоначально назывался счетчиком/таймером реального времени (Real-Time Clock/Counter — RTCC). Хотя этот термин до сих пор встречается в документации на старые микроконтроллеры линейки PIC16CXXX, появление дополнительных таймеров привело к возникновению более логичного термина — Таймер 0. Тем не менее сокращение «RTCC» до сих пор встречается в старых книгах и программном обеспечении. Например, в компиляторе CCS задание внешнего тактового сигнала Таймера 0 с активным спадающим фронтом и коэффициента деления предделителя, равного 4, осуществляется вызовом функции setup_counters (rtcc_ext_1_to_h, rtcc_div_4[171]).

Из Рис. 13.3 можно заметить, что Таймер 0 представляет собой 8-битный счетчик, расположенный в регистре с адресом h’01’, подключенный к 8-битному предделителю. Таким образом, с помощью трех битов PS[2:0] регистра OPTION_REG мы можем задавать восемь различных частот сигнала, подаваемого на вход счетного регистра таймера. Поскольку предделитель Таймера 0 является также постделителем сторожевого таймера[172], для его подключения к Таймеру 0 необходимо сбросить бит PSA регистра OPTION_REG.

Рис. 13.3.Упрощенная структура Таймера 0

По умолчанию после сброса предделитель подключен к сторожевому таймеру. В этом случае счетчик таймера может работать либо от внутреннего системного тактового сигнала частотой fOSC/4 (т. е. с частотой, в четыре раза меньшей частоты на выводе XTAL1) или от внешнего сигнала, поступающего на вход RA4/T0CKI (или GP5/T0CKI) микроконтроллера. Для переключения между внутренним и внешним тактовым сигналом служит бит T0CS регистра OPTION_REG (OPTION_REG[5]). При работе от внешнего тактового сигнала активный фронт, по которому происходит инкрементирование счетного регистра, задается битом T0SE регистра OPTION_REG (OPTION_REG [4]).

Перейти на страницу:

Все книги серии Программируемые системы

PIC-микроконтроллеры. Все, что вам необходимо знать
PIC-микроконтроллеры. Все, что вам необходимо знать

Данная книга представляет собой исчерпывающее руководство по микроконтроллерам семейства PIC компании Microchip, являющегося промышленным стандартом в области встраиваемых цифровых устройств. В книге подробно описывается архитектура и система команд 8-битных микроконтроллеров PIC, на конкретных примерах изучается работа их периферийных модулей.В первой части излагаются основы цифровой схемотехники, математической логики и архитектуры вычислительных систем. Вторая часть посвящена различным аспектам программирования PIC-микроконтроллеров среднего уровня: описывается набор команд, рассматривается написание программ на ассемблере и языке высокого уровня (Си), а также поддержка подпрограмм и прерываний. В третьей части изучаются аппаратные аспекты взаимодействия микроконтроллера с окружающим миром и обработки прерываний. Рассматриваются такие вопросы, как параллельный и последовательный ввод/вывод данных, временные соотношения, обработка аналоговых сигналов и использование EEPROM. В заключение приводится пример разработки реального устройства. На этом примере также демонстрируются простейшие методики отладки и тестирования, применяемые при разработке реальных устройств.Книга рассчитана на самый широкий круг читателей — от любителей до инженеров, при этом для понимания содержащегося в ней материала вовсе не требуется каких-то специальных знаний в области программирования, электроники или цифровой схемотехники. Эта книга будет также полезна студентам, обучающимся по специальностям «Радиоэлектроника» и «Вычислительная техника», которые смогут использовать ее в качестве учебного пособия при прослушивании соответствующих курсов или выполнении курсовых проектов.

Сид Катцен

Радиоэлектроника

Похожие книги

Электроника для начинающих (2-е издание)
Электроника для начинающих (2-е издание)

В ходе практических экспериментов рассмотрены основы электроники и показано, как проектировать, отлаживать и изготавливать электронные устройства в домашних условиях. Материал излагается последовательно от простого к сложному, начиная с простых опытов с электрическим током и заканчивая созданием сложных устройств с использованием транзисторов и микроконтроллеров. Описаны основные законы электроники, а также принципы функционирования различных электронных компонентов. Показано, как изготовить охранную сигнализацию, елочные огни, электронные украшения, устройство преобразования звука, кодовый замок и др. Приведены пошаговые инструкции и более 500 наглядных рисунков и фотографий. Во втором издании существенно переработан текст книги, в экспериментах используются более доступные электронные компоненты, добавлены новые проекты, в том числе с контроллером Arduino.

Чарльз Платт

Радиоэлектроника / Технические науки
Электроника для начинающих
Электроника для начинающих

В ходе практических экспериментов рассмотрены основы электроники и показано, как проектировать, отлаживать и изготавливать электронные устройства в домашних условиях. Материал излагается последовательно от простого к сложному, начиная с простых опытов с электрическим током и заканчивая созданием сложных устройств с использованием транзисторов и микроконтроллеров. Описаны основные законы электроники, а также принципы функционирования различных электронных компонентов. Показано, как изготовить охранную сигнализацию для защиты от проникновения в дом, елочные огни, электронные украшения для одежды, устройство преобразования звука, кодовый замок, автономную роботизированную тележку и др. Приведены пошаговые инструкции и более 500 наглядных рисунков и фотографий.Для начинающих радиолюбителей

Паоло Аливерти , Чарльз Платт

Радиоэлектроника / Технические науки
Искусство схемотехники. Том 3 (Изд.4-е)
Искусство схемотехники. Том 3 (Изд.4-е)

Широко известная читателю по предыдущим изданиям монография известных американских специалистов посвящена быстро развивающимся областям электроники. В ней приведены наиболее интересные технические решения, а также анализируются ошибки разработчиков аппаратуры: внимание читателя сосредотачивается на тонких аспектах проектирования и применения электронных схем. На русском языке издается в трех томах. Том 3 содержит сведения о микропроцессорах, радиотехнических схемах, методах измерения и обработки сигналов, принципах конструирования аппаратуры и проектирования маломощных устройств, а также обширные приложения. Для специалистов в области электроники, автоматики, вычислительной техники, а также студентов соответствующих специальностей вузов и техникумов.

Пауль Хоровиц , Уинфилд Хилл

Техника / Радиоэлектроника