最近在用MPLAB X IDE 用XC8编译器,关于配置位的写法XC8的说明书是这样写的:
配置位访问
PIC 器件具有几个包含配置位或熔丝的存储单元。这些位指定基本的器件操作,例如振
荡器模式、看门狗定时器、编程模式和代码保护。未正确设置这些位可能导致代码失败
或器件无法运行。
对于 PIC18 器件,这些位可以使用配置 pragma 伪指令进行设置。(在未来版本中,也
会对于其他 8 位器件引入 pragma 伪指令。)该 pragma 伪指令具有以下形式。
#pragma config setting = state|value
#pragma config register = value
其中, setting 是配置设置描述符 (如 WDT), state 是所需状态的文本描述 (如
OFF)。 value 字段是一个可以优先用于描述符的数值。
假设存在以下仅针对 PIC18 的示例。
#pragma config WDT = ON // turn on watchdog timer
#pragma config WDT = 1 // an alternate form of the above
#pragma config WDTPS = 0x1A // specify the timer postscale value
通过用逗号分隔每个设置 / 值对,可以使用一条 pragma 伪指令来编程多个设置。例如,
以上示例可以使用一条 pragma 伪指令指定,如下所示。
#pragma config WDT=ON, WDTPS = 0x1A
可以使用一个数值来编程整个寄存器,而不需要单独指定各个设置,例如:
#pragma config CONFIG1L = 0x8F
每个寄存器的高半部分和低半部分必须单独编程。
与PIC18器件关联的设置和值可以通过一个HTML指南确定。打开文件
pic18_chipinfo.html,它位于编译器安装的 DOCS 目录中。单击您使用的目标器
件,它将显示适用于该 pragma 伪指令的设置和值。更多信息,请查看您所使用器件的
数据手册。
低档和中档器件的配置位可以使用 HI-TECH C®中支持的 __CONFIG 宏设置,
例如:
#include <xc.h>
__CONFIG(WDTDIS & HS & UNPROTECT);
要使用该宏,请确保在源文件中包含 <xc.h>。对于具有多个配置字的器件,随后每次
调用 __CONFIG() 都将按顺序修改下一个配置字。通常它具有以下形式:
#include <xc.h>
__CONFIG(WDTDIS & XT & UNPROTECT); // Program config. word 1
__CONFIG(FCMEN);
注意事项:
config pragma 伪指令和 __CONFIG 宏都不会生成可执行代码。它们都应放置在函数
定义之外,以免影响函数代码的操作。
MPLAB IDE v8 具有一个对话框(Config(配置)>Configuration bits...(配置位)),
它可用于在对器件进行编程时指定配置位。如果不选中该对话框中的 “Configuration
Bits Set in Code”(在代码中设置配置位)复选框,则在代码中使用 __CONFIG 宏指定
的所有配置位都会被忽略,并改为使用该对话框中的那些配置位。在处理 MPLAB IDE
v8 项目时,请确保知道配置位设置的来源。
MPLAB X IDE 不允许对配置位进行调整。它们必须在源代码中使用 pragma 伪指令(或
旧式的宏)指定。
配置字中的所有位都应进行编程,以防止意外的程序行为。不要将它们保留为默认 / 未
编程状态。并不是所有配置位的默认状态都为逻辑高电平;一些配置位的默认状态为逻
辑低电平。更多信息,请查看您所使用器件的数据手册。
实际我在应用PIC12F675的时候,按照说明搞的有警示的。但是不耽误应用。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>