平台为:MPLAB V8.92,这个ID有两个编译选项:DEBUG和RELEASE,那么可以根据系统预定宏来自动根据选择模式,配置配置字。
一、PIC18F系列配置字编写
MUC: PIC18F4550
IDE: MPLAB V8.92
编译器:MCC18 V3.47
配置字讲解帮助手册在编译器如下目录:doc\hlpPIC18ConfigSet.chm
例如:D:\Program Files\Microchip\mplabc18\v3.47\doc\hlpPIC18ConfigSet.chm
注意:配置字文件必须只能有main.c文件包含。。。。。。
配置字编写:以18F为例
#ifdef __DEBUG
#pragma config EBTRB = OFF
#else
#pragma config EBTRB = ON
#endif
这段代码就编译预定义宏__DEBUG,然后根据用户选择编译模式自动打开和关闭读保护
例子:
#ifndef __PIC18F4550_CONFIG_H__
#define __PIC18F4550_CONFIG_H__
#include <p18cxxx.h>
//看门狗
#define WDT_ENABLE 0//1:打开;0:关闭
//USB
#define USB_ENABLE 0//1:打开;0:关闭
//PLL Prescaler Selection bits
//96 MHz PLL Prescaler
/*
PLLDIV = 1 No divide (4 MHz input)
PLLDIV = 2 Divide by 2 (8 MHz input)
PLLDIV = 3 Divide by 3 (12 MHz input)
PLLDIV = 4 Divide by 4 (16 MHz input)
PLLDIV = 5 Divide by 5 (20 MHz input)
PLLDIV = 6 Divide by 6 (24 MHz input)
PLLDIV = 10 Divide by 10 (40 MHz input)
PLLDIV = 12 Divide by 12 (48 MHz input)
*/
#pragma config PLLDIV = 5
//CPU System Clock Postscaler
/*
CPUDIV = OSC1_PLL2 [OSC1/OSC2 Src: /1][96 MHz PLL Src: /2]
CPUDIV = OSC2_PLL3 [OSC1/OSC2 Src: /2][96 MHz PLL Src: /3]
CPUDIV = OSC3_PLL4 [OSC1/OSC2 Src: /3][96 MHz PLL Src: /4]
CPUDIV = OSC4_PLL6 [OSC1/OSC2 Src: /4][96 MHz PLL Src: /6]
*/
#pragma config CPUDIV = OSC1_PLL2
//USB Clock Selection bit
//used in Full Speed USB mode only; UCFG:FSEN = 1
//USBDIV = 1 Clock source from OSC1/OSC2
//USBDIV = 2 Clock source from 96 MHz PLL/2
#pragma config USBDIV = 2
//Oscillator Selection bits
/*
FOSC = XT_XT XT oscillator, XT used by USB
FOSC = XTPLL_XT XT oscillator, PLL enabled, XT used by USB
FOSC = ECIO_EC External clock, port function on RA6, EC used by USB
FOSC = EC_EC External clock, CLKOUT on RA6, EC used by USB
FOSC = ECPLLIO_EC External clock, PLL enabled, port function on RA6, EC used by USB
FOSC = ECPLL_EC External clock, PLL enabled, CLKOUT on RA6, EC used by USB
FOSC = INTOSCIO_EC Internal oscillator, port function on RA6, EC used by USB
FOSC = INTOSC_EC Internal oscillator, CLKOUT on RA6, EC used by USB
FOSC = INTOSC_XT Internal oscillator, XT used by USB
FOSC = INTOSC_HS Internal oscillator, HS used by USB
FOSC = HS HS oscillator, HS used by USB
FOSC = HSPLL_HS HS oscillator, PLL enabled, HS used by USB
*/
#pragma config FOSC = HSPLL_HS
//Fail-Safe Clock Monitor Enable bit
#pragma config FCMEN = OFF
//Internal/External Oscillator Switchover bit
#pragma config IESO = OFF
//Power-up Timer Enable bit