.
Для выбора различных режимов работы микроконтроллера используются биты конфигурации. В микроконтроллерах среднего семейства биты конфигурации располагаются в регистре по адресу 2007h. Регистр этот несколько необычен, так как имеет в своем составе не 8, а 14 битов. Обращение к нему возможно только на этапе программирования, поскольку он находится за пределами пользовательской памяти программ. Состав и расположение битов в конфигурационном слове необходимо уточнять в технической документации на конкретный микроконтроллер.
А теперь, ВНИМАНИЕ!
При использовании директивы MPASM __CONFIG совсем НЕОБЯЗАТЕЛЬНО знать расположение битов конфигурации. Как так, ведь нам же нужно настроить PIC на определенный режим работы и для этого необходимо выставить каждый бит в конфигурационном слове? Инженеры, работающие в компании «MICROCHIP», мужики не глупые - облегчили задачу. Зачем настраивать каждый бит в двоичной системе счисления, а потом переводить в шестнадцатеричную? К чему все эти цифры? Разработчики компилятора решили, что человеку намного понятнее слова, чем цифры. Если, например, необходимо выключить сторожевой таймер, то проще так и написать _WDT_OFF, или если используем стандартный кварцевый/керамический резонатор – тогда так и напишем _XT _OSC.
Сравним конфигурационное слово, записанное разными вариантами:
__CONFIG 3FF5h
__CONFIG _XT_OSC & _WDT_ON & _PWRTE_ON & _CP_OFF
В обоих случаях компилятор все сделает в лучшем виде для того чтобы микроконтроллер понял что от него хотят и в итоге это будет выглядеть так: B’11111111110101’, то есть используется кварцевый/керамический резонатор; сторожевой таймер включен; включена выдержка после включения питания; защита от считывания выключена.
Конечно же, первый вариант выглядит компактнее, но второй понятнее. Кроме того, используя второй вариант не нужно себе забивать голову расположением конфигурационных битов. А представьте себе ситуацию, когда необходимо что-то изменить в конфигурации, сколько же необходимо выполнить действий.
Для конфигурации необходимо знать, какие биты используются в данном МК, но и тут «микрочиповские» инженеры «подсуетились». Открываем inc-файл соответствующий микроконтроллеру (по-умолчанию находятся в папке: C:\Program_Files\Microchip\MPASM_Suite) - смотрим и радуемся «блюдечку с голубой каемочкой».
В качестве примера приведена часть, касающаяся конфигурационных битов, файла P16F84.INC, микроконтроллера горячо любимого начинающими программистами.
Ниже в таблице представлены стандартные символы директивы __CONFIG
Название |
Символ |
Тактовый генератор |
_RS_OSC |
_LP_OSC |
|
_XT_OSC |
|
_HS_OSC |
|
Сторожевой таймер WDT |
_WDT_ON |
_WDT_OFF |
|
Таймер включения питания PWRT |
_PWRTE_ON |
_PWRTE_OFF |
|
Сброс по снижению питания |
_BODEN_ON |
_BODEN_OFF |
|
Режим работы вывода MCLR |
_MCLRE_ON |
_MCLRE_OFF |
|
Защита кода программы |
_CP_ON |
_CP_OFF |
|
Защита EEPROM памяти данных |
_DP_ON |
_DP_OFF |
|
Защита калибровочной константы |
_CPC_ON |
_CPC_OFF |
Напоминаю, что не все биты конфигурации могут использоваться в конкретном микроконтроллере. Возможны некоторые отличия.
Оба варианта записи конфигурационных битов имеют право на жизнь, и каким из них пользоваться решать только программисту. Моей же целью была лишь попытка облегчить жизнь начинающим и меньше забивать голову не совсем нужной информацией. На начальном этапе ее и так хватает. Удачи в программировании!
На форуме можно задать вопросы по теме и поделиться своими наработками
PS: Уже после написания данной статьи мне подсказали, что использование файлов-заготовок оформление программы упрощается в разы. Файлы-заготовки можно найти в папках Code и Object расположенных по C:\Program Files\Microchip\MPASM Suite\Template
Все права принадлежат ChipMK.ru. При копировании материала ссылка обязательна. 2011-2021 © ChipMK.ru
![]() |
|