Авторизация


...

Кто на сайте?

Сейчас 38 гостей и 4 зарегистрированных пользователей на сайте

  • lfandresagea
  • oelletoryk

Статистика

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

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

  DUB-E100

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

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

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

 

 

 

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

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

Подключение ENC28J60 + PIC к локальной сети Часть II.

14-11-2011 Николай Викторов

Подключение ENC28J60 + PIC к локальной сети Часть II.

В этой части рассмотрим отправку пакетов от ENC28J60 и реализацию  протоколов ARP, IP и ICMP(Ping). Надеюсь , что те , кто пока слабо  разбирается в сетевых  протоколах к концу чтения статьи поймут  для чего они нужны . К примеру, вот...

Аналого-цифровое преобразование (АЦП).

31-05-2012 Super User

 Без такой возможности, как аналого-цифрового преобразование, применение   микроконтроллеров  резко бы ограничилось. Это очень часто применяемый метод измерений в различных конструкциях и устройствах. В семействе  PIC18XXXX, как правило присутствует встроенный модуль аналого-цифрового преобразования (АЦП) и несколько аналоговых каналов . Количество...

Бит, байт и простое объяснение логических операций.

20-04-2012 Super User

Как и в любой вычислительной технике,  где применяется цифровой сигнал  практически всегда встречаются такие слова  как  "бит" и "байт".  Не является исключением и микроконтроллеры. Давайте  попробуем разобраться, что же это такое.

Разлочка автонавигатора Prestigio GeoVision 5300.

16-12-2012 Алексей

Разлочка автонавигатора Prestigio GeoVision 5300.

Хочется надеяться что эта статья положит начало целому циклу статей по связке микроконтроллер-WinCE. В частности использовать портативное устройство для вывода различного рода информации, например, связать логический анализатор с WinCE. В свое время мной был куплен автонавигатор Prestigio GeoVision 5300. Естественно целью...


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

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