Авторизация


...

Кто на сайте?

Сейчас 82 гостей и ни одного зарегистрированного пользователя на сайте

Статистика

-Посетители : 26605
-Материалы : 210

Пользователь сайта продает...

  Адаптер питания

Пользователь сайта покупает...

Варианты записи конфигурационных битов

Автор: Анатолий Просмотров: 4457

 

 

 

А теперь, ВНИМАНИЕ!

При использовании директивы 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, микроконтроллера горячо любимого начинающими программистами.

;=====================================================================
;       Configuration Bits
;
;   NAME            Address
;   CONFIG            2007h
;=====================================================================
; The following is an assignment of address values for all of the
 
; configuration registers for the purpose of table reads
 
_CONFIG          EQU  H'2007'
 
;----- CONFIG Options ------------------------------------------------
 
_LP_OSC         EQU  H'3FFC'    ; LP oscillator
 
_XT_OSC         EQU  H'3FFD'    ; XT oscillator
 
_HS_OSC         EQU  H'3FFE'    ; HS oscillator
 
_RC_OSC         EQU  H'3FFF'    ; RC oscillator
 
 
 
_WDT_OFF        EQU  H'3FFB'    ; WDT disabled
 
_WDT_ON         EQU  H'3FFF'    ; WDT enabled
 
 
 
_PWRTE_ON       EQU  H'3FF7'    ; Power-up Timer is enabled
 
_PWRTE_OFF      EQU  H'3FFF'    ; Power-up Timer is disabled
 
 
 
_CP_ON          EQU  H'000F'    ; All program memory is code protected
 
_CP_OFF         EQU  H'3FFF'    ; Code protection disabled

Ниже в таблице представлены стандартные символы директивы __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

Случайные статьи....

Prev Next

Трансиверы RFM12BP; IA4421;TRC102; MRF49XA. основные функции и настрой…

07-04-2011 Super User

Трансиверы RFM12BP; IA4421;TRC102; MRF49XA. основные функции и настройка

   Предлагается информация по радиомодулю цифрового трансивера RFM12BP,  полученная в результате его изучения. Эта информация будет полезна при изучении микросхем трансиверов IA4421;TRC102; MRF49XA.    

Получение синусоидального сигнала с ЦАП микроконтроллера.

14-01-2016 Николай Викторов

Получение синусоидального сигнала с ЦАП микроконтроллера.

В некоторых микроконтроллерах есть встроенные модули DAC(цифро-аналоговый преобразователь) в частности PIC12F1822  о котором далее пойдет речь  и хотя в данном МК разрядность модуля не велика, но все равно можно получить относительно неплохой синусоидальный сигнал. Вообще сам метод применим и к...

ПП преобразования однобайтного двоичного числа в трёхзначное десятичн…

29-05-2012 Super User

 До вызова ПП преобразования необходимо "прописать" регистры  Bit2_10, Led_U, Led_H, Led_L и Temp . Однобайтное двоичное число записывается в регистр Bit2_10. Результат в трех регистрах Led_U, Led_H, Led_L - верхний, старший и младший байты соответственно.  

Варианты записи конфигурационных битов

30-07-2011 Анатолий

Варианты записи конфигурационных битов

Для выбора различных режимов работы микроконтроллера используются биты конфигурации. В микроконтроллерах среднего семейства биты конфигурации располагаются в регистре по адресу 2007h. Регистр этот несколько необычен, так как имеет в своем составе не 8, а 14 битов. Обращение к нему возможно...


Все права принадлежат ChipMK.ru. При копировании материала ссылка обязательна. 2011-2017 © ChipMK.ru

ChipMk.ru Яндекс.Метрика
PRCY.ru