×
单片机 > 单片机程序设计 > 详情

ZC-ADK中PIC单片机的CONGFIG说明

发布时间:2020-05-30 发布时间:
|

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代码可以发现看门狗时钟被设置为未分频同时未启动。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
ARM 汇编的必知必会