Авторизация


...

Кто на сайте?

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

Статистика

-Посетители : 23863
-Материалы : 209

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

  LM393

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

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

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

 

 

 

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

При использовании директивы 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

Тактовый генератор.

22-07-2012 Super User

В даташитах на микроконтроллеры очень подробно расписаны режимы работы генератора. Здесь мы рассмотрим общий метод настройки тактового генератора микроконтроллеров серии PIC18XXXX .  Микроконтроллеры PIC18FXX2 может работать в восьми режимах.

Прерывания в семействе PIC18 xxxx

14-05-2011 Super User

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

Таймер - термометр вытяжного вентилятора.

01-04-2014 Александр Милевский

Таймер - термометр вытяжного вентилятора.

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

Подключения LCD (ЖК) индикатора к одному порту.

07-07-2012 Николай Викторов

Подключения LCD (ЖК)  индикатора к одному порту.

   Очень часто, при подключении к микроконтроллеру LCD  (ЖК) индикатора  применяется стандартная схема подключения, при которой , что в 8 битном режиме,  что в 4 битном задействуются один порт целиком и как минимум две линии от другого порта. Если в...


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

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