搜索
bottom↓
回复: 12

MPLAB X IDE 用XC8配置位的写法

[复制链接]

出0入0汤圆

发表于 2013-5-7 18:12:02 | 显示全部楼层 |阅读模式
最近在用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的时候,按照说明搞的有警示的。但是不耽误应用。

出0入0汤圆

 楼主| 发表于 2013-5-7 18:18:28 | 显示全部楼层
在C:\Program Files\Microchip\xc8\v1.12\docs\chips文件下有相应的配置位介绍,仔细看一下就知道怎么做了。
下面是我做的675的配置位,编译后没有任何问题:
#pragma config BOREN = OFF, CPD = OFF, FOSC = XT, MCLRE = OFF, WDTE = OFF, CP = OFF, PWRTE = OFF
希望对使用这个XC8的朋友有帮助。

出0入0汤圆

发表于 2013-5-7 18:28:10 | 显示全部楼层
IDE中不是可以设置吗,自动生成代码

出0入0汤圆

发表于 2013-5-7 20:15:50 | 显示全部楼层
IDE里有设置的地方,

出0入0汤圆

 楼主| 发表于 2013-5-7 22:06:08 | 显示全部楼层
楼上的两位,我们说的不是一个IDE吧

出0入0汤圆

发表于 2013-5-8 09:02:02 | 显示全部楼层
X IDE也是可以设置的,好像是在view下面的,配置好生成一下,然后复制到代码中就可以了

出0入0汤圆

 楼主| 发表于 2013-5-8 10:15:15 | 显示全部楼层
是的有,找到了。
在调试会话期间,可以在 Configuration Bits (配置
位)窗口中临时更改配置位 (Window (窗口)>PIC Memory Views (PIC 存储器视
图)>Configuration Bits)。然后,可以通过在窗口中单击右键,并选择 “Generate
Source Code to Output”(生成源代码到输出)来导出设置。然后,可以将该代码从
Output (输出)窗口中复制到代码中。

出0入0汤圆

发表于 2013-8-9 14:51:55 | 显示全部楼层
楼主有XC8的编译器吗?

出0入0汤圆

发表于 2014-2-20 17:16:44 | 显示全部楼层
MPLAB+XC8编译PIC18单片机产生如下错误,怎么解决?
The program file could not be loaded: The Extended CPU Mode configuration bit is enabled, but the program was not built using extended CPU instructions.

出0入0汤圆

发表于 2014-2-24 08:59:58 | 显示全部楼层
支持3楼的说法,先自动生成了,然后自己根据自己的情况可以修改,然后修改的时候不知道写法,可以根据Configuration Bits这个窗口查看这个配置位的值,然后自己选择。

出0入0汤圆

发表于 2014-4-8 16:31:20 | 显示全部楼层
XC8+X IDE配合使用,提供配置字输出功能。

出0入0汤圆

发表于 2014-4-15 14:04:13 | 显示全部楼层
本帖最后由 gosfon 于 2014-4-15 14:06 编辑

我一般是查器件的头文件,如:p30f6014a.h,头文件中 Macros for setting device configuration registers  这行注释下面就是配置位的一些函数和设置

出0入0汤圆

发表于 2015-8-5 12:17:32 | 显示全部楼层
MPLAB本身带有Configuration bit功能,可以自动生成配置代码的!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-1 10:08

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表