历史上的今天
今天是:2025年01月28日(星期二)
2020年01月28日 | PIC单片机CONFIG说明
2020-01-28 来源:eefocus
CONFIG又称为熔丝位,可以通过配置熔丝位来配置单片机内部的功能,比如晶振时钟、看门狗、JTAG、掉电检测与代码保护等,如果对这些设置不了解的话,建议直接复制粘贴。
在PIC单片机中,我们既可以通过在代码中添加CONFIG代码来设置熔丝位,也可以通过在MPLAB IDE集成开发环境中通过界面进行配置。
界面配置方法:
点击Configure>Select Device选择相应的器件,这里我们选择PIC24FJ64GB004,如图1、图2所示:

图1

图2
选择好器件后,点击Configure>Configuration Bits,进入图3界面,取消掉Configration Bits set in code,这样就可以通过界面进行CONFIG的配置,如图3所示。

图3
从图3我们还可以看到PIC24FJ64GB004的CONFIG存放在0xABF8 0xABFE的地址上,这个地址也与GLD文件中的CONFIG地址相对应。每个设置选项的不同对应的Value值也是不同的。至于图中每个设置选项的具体含义请参考下面在代码中配置。
代码中的配置方法:
如果想在代码中配置,需要在图3界面勾选Configration Bits set in code,然后在代码中添加CONFIG代码,如下:
#include _CONFIG1(WDTPS_PS1 & FWPSA_PR32 & WINDIS_OFF & FWDTEN_OFF & ICS_PGx1 & GWRP_OFF & GCP_OFF & JTAGEN_OFF) _CONFIG2(POSCMOD_HS & I2C1SEL_PRI & IOL1WAY_OFF & OSCIOFNC_ON & FCKSM_CSDCMD & FNOSC_PRIPLL & PLL96MHZ_ON & PLLDIV_DIV2 & IESO_ON) _CONFIG3(WPFP_WPFP0 & SOSCSEL_SOSC & WUTSEL_LEG & WPDIS_WPDIS & WPCFG_WPCFGDIS & WPEND_WPENDMEM) _CONFIG4(DSWDTPS_DSWDTPS3 & DSWDTOSC_LPRC & RTCOSC_SOSC & DSBOREN_OFF & DSWDTEN_OFF) 然后我们在C30编译器里找到p24fxxxx.h文件,文件位置:C:Program FilesMicrochipMPLAB C30supportPIC24Fh,通过p24fxxxx.h找到具体器件的头文件p24FJ64GB004.h,在此头文件里详细介绍了每个CONFIG配置的含义,以及具体的Value值。 截取其中一段注释与代码如下: /* ** Only one invocation of CONFIG1 should appear in a project, ** at the top of a C source file (outside of any function). ** ** The following constants can be used to set CONFIG1. ** Multiple options may be combined, as shown: ** ** _CONFIG1( OPT1_ON & OPT2_OFF & OPT3_PLL ) ** ** Watchdog Timer Postscaler: ** WDTPS_PS1 1:1 ** WDTPS_PS2 1:2 ** WDTPS_PS4 1:4 ...... ...... ** Watchdog Timer: ** FWDTEN_OFF Watchdog Timer is disabled ** FWDTEN_ON Watchdog Timer is enabled ...... ...... #define WDTPS_PS1 0x7FF0 #define WDTPS_PS2 0x7FF1 #define WDTPS_PS4 0x7FF2 ...... ...... #define FWDTEN_OFF 0x7F7F #define FWDTEN_ON 0x7FFF 从注释可以看到WDTPS_PS1是关于看门狗时钟预分频设置,FWDTEN是关于看门狗时钟是否启动的设置,对比CONFIG代码可以发现看门狗时钟被设置为未分频同时未启动。
史海拾趣
|
由于是第一次做红外传感器,所以自己到网上搜了几个电路,发现了很多问题,和大家分享一下。 第一个问题就是检测电路是否正确,我一开始就上来就做,其实是错误的,后来就发生了怎么调电路 的结果都是错误的。(其实错误的一塌糊涂) 所以很好 ...… 查看全部问答> |
|
wince 6.0增加简体字库后,NK.bin就有33M了。 想把NK.bin调大,如35M 1、修改Bootloader\\Eboot\\eboot.bib,修改如下: //#define ROM_RAMIMAGE_SIZE 0x02000000   ...… 查看全部问答> |
|
大家好,在单片机中发送双音频是怎么回事? 发送双音频和发送单音频有什么区别和联系? 我现在做的是报警器,一个主机接收,手持机用于发送 里面用到双音频,还有发送一位单音频,这样的发送有什么方法可以看得出来? 谢谢! … 查看全部问答> |
|
我以前只会写一些单片机的小程序 现在发现测试驱动的性能也不知道如何下手,我觉得wince驱动和win32 有些类似,我想请问这些驱动应该如何测试? 都有什么指标要求?我们公司混乱得很,用肉眼感觉测试,觉得有点离谱。请大家说说你们的办法。多谢 ...… 查看全部问答> |
|
怎么通过WAVEINOPEN那些API函数把音频数据录成原始的PCM文件(没有压缩,没有处理过)?在网上没找到,只找到录成WAV文件的例子 怎么通过WAVEINOPEN那些API函数把音频数据录成原始的PCM文件(没有压缩,没有处理过)?在网上没找到,只找到录成WAV文件的例子! //------------- 希望能够给个简单的例子程序啊!… 查看全部问答> |
|
为什么我每次创建菜单后都出现fatal error RC1015: cannot open include file 'afxres.h'.。。 为什么我每次创建菜单后都出现fatal error RC1015: cannot open include file \'afxres.h\'.。。 我创建菜单后,就inclue \"resource.h\" 然后编译 每次都是这个错误 为此 我实验过 重装evc \\sdk\\但是还是 这样 所以求救。。还有 一个问题我写 ...… 查看全部问答> |
|
P1REN会影响到P1OUT吗?请有EZ430-F2013的朋友帮我做个实验,非常简单 从TI提供的P1口的图纸上看,P1OUT.0的输出不受P1REN.0的影响,可是如果做个实验,发现完全不是这么回事: 如下分析使用EZ430-F2013: 1.随便打开一个工程,进入调试状态,不运行程序,打开寄存器窗口; 2.在寄存器窗口中,设置P1OUT.0=1,P1DIR.0 ...… 查看全部问答> |
|
AT91RM9200 ARM中SMC里的NWAIT信号的使用 datasheet中对于NWAIT的描述没理解,是这样的么?比如外挂FPGA,当EBI向外设输出读命令之后,外设FPGA将NWAIT信号拉低,这样EBI开始等待,等外设中的数据读回来之后,外设把NWAIT拉高,结束读过程。同理,写操作,当EBI向外设输出写命令之后,外设F ...… 查看全部问答> |




