#ifndef HC89S_CONFIG_H_
#define HC89S_CONFIG_H_
#include "HC89S003AF4.h"
//<<< Use Configuration Wizard in Context Menu >>>
/*
*********************************************************************************************************
* 时钟相关配置
*********************************************************************************************************
*/
/*************************************** 系统时钟配置 ************************************************/
// 系统时钟配置
// 产生 BOR 复位时
// <0=> 不关闭高频内部 RC
// <1=> 关闭高频内部 RC
#define CLOCK_RC_EN_PD_INIT 2
// 内部高频RC使能
// 配置系统时钟源为内部高频 RC 32MHZ
#define CLOCK_IN_HIGH_ENABLE 1
// OSC时钟频率
// OSC时钟为内部高频RC分频
// <0x50=> 32 MHZ
// <0x51=> 16 MHZ
// <0x52=> 08 MHZ
// <0x53=> 04 MHZ
#define CLOCK_IN_HIGH_CLKSWR_INIT 0x51
// CPU时钟(OSC时钟分频比) <1-255>
// CPU时钟为OSC时钟分频
#define CLOCK_IN_HIGH_CLKDIV_INIT 1
//
// 内部低频RC使能
// 配置系统时钟源为内部低频 RC 44KHZ
#define CLOCK_IN_LOW_ENABLE 0
// CPU时钟(OSC时钟分频比) <1-255>
// CPU时钟为OSC时钟分频
#define CLOCK_IN_LOW_CLKDIV_INIT 0
//
// 外部高频晶振使能
// 配置系统时钟源为外部高频
#define CLOCK_OUT_HIGH_ENABLE 0
// 外部高频晶振选择信号
// 外部高频晶振频率
// <0=> 4M/8M 晶振
// <1=> 4M/8M 晶振大驱动能力
// <3=> 选择 16M/20M 晶振
#define CLOCK_OUT_HIGH_HXTAL_MODE_SEL_INIT 0
// warmup 计数值
// 外部高频晶振 warmup 计数值选择,计数时钟源为所选外部高频晶振
// <0=> 2048
// <1=> 256
// <2=> 16384
// <3=> 65536
#define CLOCK_OUT_HIGH_HXTAL_CFG_INIT 0
//
// 外部低频晶振使能
// 配置系统时钟源为外部低频
#define CLOCK_OUT_LOW_ENABLE 0
// warmup 计数值
// 外部低频晶振 warmup 计数值选择,计数时钟源为所选外部低频晶振
// <0=> 16384
// <1=> 4096
// <2=> 1024
// <3=> 65536
#define CLOCK_OUT_HIGH_LXTAL_CFG_INIT 0
//
// 声明CPU时钟频率
// 在进行 FLASH 的 IAP 擦写或者系统进入掉电模式之前,指明目前 CPU 时钟的频率
#define CLOCK_FREQ_CLK_ENABLE 0
// 频率
// <16=> 16MHz
// <8=> 08MHz
// <4=> 04MHz
// <2=> 02MHz
// <1=> 小于等于 1MHz
#define CLOCK_FREQ_CLK_INIT 16
//
// 时钟输出
// 使能/失能时钟输出
#define CLOCK_OUTPUT_ENABLE 0
// 输出时钟选择
// <0=> CPU时钟
// <1=> OSC时钟
// <2=> WDT时钟
// <3=> 外部晶振时钟
// <4=> 内部高频 RC32M 输出
// <5=> 内部高频 RC32M 2分频输出
// <6=> 内部高频 RC32M 4分频输出
// <7=> 内部高频 RC32M 8分频输出
#define CLOCK_CLK_OUT_SEL_INIT 0
// 时钟输出引脚映射
// <0x00=> P00
// <0x01=> P01
// <0x02=> P02
// <0x03=> P03
// <0x04=> P04
// <0x05=> P05
// <0x06=> P06
// <0x07=> P07
// <0x10=> P10
// <0x11=> P11
// <0x20=> P20
// <0x21=> P21
// <0x22=> P22
// <0x23=> P23
// <0x24=> P24
// <0x25=> P25
// <0x26=> P26
// <0x27=> P27
#define CLOCK_CLOCKMAP_INIT 0
//
//
/*
*********************************************************************************************************
* 系统总中断配置
*********************************************************************************************************
*/
// 系统总中断配置
#define SYSTEM_EA_INIT_ENABLE 1
// 总中断开关
// <0=> 关闭
// <1=> 打开
#define SYSTEM_EA_INIT 1
//
/*
*********************************************************************************************************
* GPIO相关配置
*********************************************************************************************************
*/
// GPIO配置
// 芯片端口初始化
#define GPIO_INIT_ENABLE 1
// P0 端口模式配置
// P00
// <3=> Not Used
// <0=> 输入(非施密特)
// <1=> 带下拉输入(非施密特)
// <2=> 带上拉输入(非施密特)
// <3=> 模拟输入
// <4=> 输入(施密特)
// <5=> 带下拉输入(施密特)
// <6=> 带上拉输入(施密特)
// <8=> 推挽输出
// <9=> 开漏输出
// <10=> 开漏带上拉输出
// P01
// <3=> Not Used
// <0=> 输入(非施密特)
// <1=> 带下拉输入(非施密特)
// <2=> 带上拉输入(非施密特)
// <3=> 模拟输入
// <4=> 输入(施密特)
// <5=> 带下拉输入(施密特)
// <6=> 带上拉输入(施密特)
// <8=> 推挽输出
// <9=> 开漏输出
// <10=> 开漏带上拉输出
#define GPIO_MODE_P0M0 163
// P02
// <3=> Not Used
// <0=> 输入(非施密特)
// <1=> 带下拉输入(非施密特)
// <2=> 带上拉输入(非施密特)
// <3=> 模拟输入
// <4=> 输入(施密特)
// <5=> 带下拉输入(施密特)
// <6=> 带上拉输入(施密特)
// <8=> 推挽输出
// <9=> 开漏输出
// <10=> 开漏带上拉输出
// P03
// <3=> Not Used
// <0=> 输入(非施密特)
// <1=> 带下拉输入(非施密特)
// <2=> 带上拉输入(非施密特)
// <3=> 模拟输入
// <4=> 输入(施密特)
// <5=> 带下拉输入(施密特)
// <6=> 带上拉输入(施密特)
// <8=> 推挽输出
// <9=> 开漏输出
// <10=> 开漏带上拉输出
#define GPIO_MODE_P0M1 56
// P04
// <3=> Not Used
// <0=> 输入(非施密特)
// <1=> 带下拉输入(非施密特)
// <2=> 带上拉输入(非施密特)
// <3=> 模拟输入
// <4=> 输入(施密特)
// <5=> 带下拉输入(施密特)
// <6=> 带上拉输入(施密特)
// <8=> 推挽输出
// <9=> 开漏输出
// <10=> 开漏带上拉输出
// P05
// <3=> Not Used
// <0=> 输入(非施密特)
// <1=> 带下拉输入(非施密特)
// <2=> 带上拉输入(非施密特)
// <3=> 模拟输入
// <4=> 输入(施密特)
// <5=> 带下拉输入(施密特)
// <6=> 带上拉输入(施密特)
// <8=> 推挽输出
// <9=> 开漏输出
// <10=> 开漏带上拉输出
#define GPIO_MODE_P0M2 131
// P06
// <3=> Not Used
// <0=> 输入(非施密特)
// <1=> 带下拉输入(非施密特)
// <2=> 带上拉输入(非施密特)
// <3=> 模拟输入
// <4=> 输入(施密特)
// <5=> 带下拉输入(施密特)
// <6=> 带上拉输入(施密特)
// <8=> 推挽输出
// <9=> 开漏输出
// <10=> 开漏带上拉输出
// P07
// <3=> Not Used
// <0=> 输入(非施密特)
// <1=> 带下拉输入(非施密特)
// <2=> 带上拉输入(非施密特)
// <3=> 模拟输入
// <4=> 输入(施密特)
// <5=> 带下拉输入(施密特)
// <6=> 带上拉输入(施密特)
// <8=> 推挽输出
// <9=> 开漏输出
// <10=> 开漏带上拉输出
#define GPIO_MODE_P0M3 51
//
// P1 端口模式配置
// P10
// <3=> Not Used
// <0=> 输入(非施密特)
// <1=> 带下拉输入(非施密特)
// <2=> 带上拉输入(非施密特)
// <3=> 模拟输入
// <4=> 输入(施密特)
// <5=> 带下拉输入(施密特)
// <6=> 带上拉输入(施密特)
// <8=> 推挽输出
// <9=> 开漏输出
// <10=> 开漏带上拉输出
// P11
// <3=> Not Used
// <0=> 输入(非施密特)
// <1=> 带下拉输入(非施密特)
// <2=> 带上拉输入(非施密特)
// <3=> 模拟输入
// <4=> 输入(施密特)
// <5=> 带下拉输入(施密特)
// <6=> 带上拉输入(施密特)
// <8=> 推挽输出
// <9=> 开漏输出
// <10=> 开漏带上拉输出
#define GPIO_MODE_P1M0 63
//
// P2 端口模式配置
// P20
// <3=> Not Used
// <0=> 输入(非施密特)
// <1=> 带下拉输入(非施密特)
// <2=> 带上拉输入(非施密特)
// <3=> 模拟输入
// <4=> 输入(施密特)
// <5=> 带下拉输入(施密特)
// <6=> 带上拉输入(施密特)
// <8=> 推挽输出
// <9=> 开漏输出
// <10=> 开漏带上拉输出
// P21
// <3=> Not Used
// <0=> 输入(非施密特)
// <1=> 带下拉输入(非施密特)
// <2=> 带上拉输入(非施密特)
// <3=> 模拟输入
// <4=> 输入(施密特)
// <5=> 带下拉输入(施密特)
// <6=> 带上拉输入(施密特)
// <8=> 推挽输出
// <9=> 开漏输出
// <10=> 开漏带上拉输出
#define GPIO_MODE_P2M0 130
// P22
// <3=> Not Used
// <0=> 输入(非施密特)
// <1=> 带下拉输入(非施密特)
// <2=> 带上拉输入(非施密特)
// <3=> 模拟输入
// <4=> 输入(施密特)
// <5=> 带下拉输入(施密特)
// <6=> 带上拉输入(施密特)
// <8=> 推挽输出
// <9=> 开漏输出
// <10=> 开漏带上拉输出
// P23
// <3=> Not Used
// <0=> 输入(非施密特)
// <1=> 带下拉输入(非施密特)
// <2=> 带上拉输入(非施密特)
// <3=> 模拟输入
// <4=> 输入(施密特)
// <5=> 带下拉输入(施密特)
// <6=> 带上拉输入(施密特)
// <8=> 推挽输出
// <9=> 开漏输出
// <10=> 开漏带上拉输出
#define GPIO_MODE_P2M1 136
// P24
// <3=> Not Used
// <0=> 输入(非施密特)
// <1=> 带下拉输入(非施密特)
// <2=> 带上拉输入(非施密特)
// <3=> 模拟输入
// <4=> 输入(施密特)
// <5=> 带下拉输入(施密特)
// <6=> 带上拉输入(施密特)
// <8=> 推挽输出
// <9=> 开漏输出
// <10=> 开漏带上拉输出
// P25
// <3=> Not Used
// <0=> 输入(非施密特)
// <1=> 带下拉输入(非施密特)
// <2=> 带上拉输入(非施密特)
// <3=> 模拟输入
// <4=> 输入(施密特)
// <5=> 带下拉输入(施密特)
// <6=> 带上拉输入(施密特)
// <8=> 推挽输出
// <9=> 开漏输出
// <10=> 开漏带上拉输出
#define GPIO_MODE_P2M2 51
// P26
// <3=> Not Used
// <0=> 输入(非施密特)
// <1=> 带下拉输入(非施密特)
// <2=> 带上拉输入(非施密特)
// <3=> 模拟输入
// <4=> 输入(施密特)
// <5=> 带下拉输入(施密特)
// <6=> 带上拉输入(施密特)
// <8=> 推挽输出
// <9=> 开漏输出
// <10=> 开漏带上拉输出
// P27
// <3=> Not Used
// <0=> 输入(非施密特)
// <1=> 带下拉输入(非施密特)
// <2=> 带上拉输入(非施密特)
// <3=> 模拟输入
// <4=> 输入(施密特)
// <5=> 带下拉输入(施密特)
// <6=> 带上拉输入(施密特)
// <8=> 推挽输出
// <9=> 开漏输出
// <10=> 开漏带上拉输出
#define GPIO_MODE_P2M3 168
//
// P02 端口上拉电阻
// 配置 P02 端口上拉电阻
#define GPIO_INIT_PULLRES_ENABLE 0
// 阻值
// <0=> 50 KΩ
// <16=> 100 KΩ
// <32=> 150KΩ
// <48=> 300 KΩ
#define GPIO_PULLRESVALUE_P02 0
//
// P00 端口消抖
// 配置 P00 端口消抖
#define GPIO_INIT_DBC_P00_ENABLE 0
// 端口消抖时钟
// <0=> Fosc /1
// <1=> Fosc /4
// <2=> Fosc /16
// <3=> Fosc /64
// 消抖时钟个数 <0-63>
#define GPIO_DBC_INIT_P00 0
//
// P01 端口消抖
// 配置 P01 端口消抖
#define GPIO_INIT_DBC_P01_ENABLE 0
// 端口消抖时钟
// <0=> Fosc /1
// <1=> Fosc /4
// <2=> Fosc /16
// <3=> Fosc /64
// 消抖时钟个数 <0-63>
#define GPIO_DBC_INIT_P01 0
//
// P02 端口消抖
// 配置 P02 端口消抖
#define GPIO_INIT_DBC_P02_ENABLE 0
// 端口消抖时钟
// <0=> Fosc /1
// <1=> Fosc /4
// <2=> Fosc /16
// <3=> Fosc /64
// 消抖时钟个数 <0-63>
#define GPIO_DBC_INIT_P02 127
//
//
/*
*********************************************************************************************************
* 复位相关配置
*********************************************************************************************************
*/
// 复位配置
// 配置多种方式复位
#define RESET_INIT_ENABLE 0
// BOR 检测配置
#define RESET_BORVS_INIT_ENABLE 0
// BOR 检测电压
// <0=> 1.8 V
// <1=> 2.0 V
// <2=> 2.4 V
// <3=> 2.6 V
// <4=> 3.0 V
// <5=> 3.6 V
// <6=> 3.9 V
// <7=> 4.2 V
// BOR 状态
// <0=> 关闭
// <1=> 打开
// BOR 消抖
// <0=> 关闭
// <1=> 打开
#define RESET_BORVS_INIT 129
// 消抖时钟个数 <0-255>
// 输入范围:0~255
// 消抖时间 = BORDBC[7:0] * 8T CPU +2 T CPU
// 注意:需要使能 BOR_DBC_EN,否则 BOR 不消抖。
#define RESET_BORDBC_INIT 255
//
// 外部 RST 去抖配置
#define RESET_RSTDBC_INIT_ENABLE 0
// 消抖时钟个数 <0-65535>
// 输入范围:0~65535
// 消抖时间 = RSTDBC[7:0] * 8T CPU +2 T CPU
#define RESET_RSTDBC_INIT 255
//
// 堆栈溢出复位配置
#define RESET_SPOV_INIT_ENABLE 0
// 堆栈溢出复位
// <0=> 关闭
// <1=> 打开
#define RESET_SPOV_INIT 0
//
//
/*
*********************************************************************************************************
* 低电压检测LVD相关配置
*********************************************************************************************************
*/
// 低电压检测LVD配置
#define LVD_INIT_ENABLE 0
// LVD 使能
// LVD 检测 P0.2端口电压
// LVD 检测电压
// <0=> 1.9 V
// <1=> 2.0 V
// <2=> 2.4 V
// <3=> 2.6 V
// <4=> 3.0 V
// <5=> 3.6 V
// <6=> 3.9 V
// <7=> 4.2 V
#define LVD_LVDCC_INIT 0
// LVD 中断允许
#define LVD_LVDIE_INIT 0
// 中断优先级
// 外部中断0 中断优先级
// <0=> 优先级 0(最低)
// <1=> 优先级 1
// <2=> 优先级 2
// <3=> 优先级 3(最高)
#define LVD_IP1_INIT 0
//
#define LVD_LVDC_INIT LVD_LVDIE_INIT+LVD_LVDIE_INIT
// 外部 RST 去抖配置
#define LVD_LVDDBC_INIT_ENABLE 0
// 消抖时钟个数 <0-65535>
// 输入范围:0~65535
// 消抖时间 = RSTDBC[7:0] * 8T CPU +2 T CPU
#define LVD_LVDDBC_INIT 255
//
//
/*
*********************************************************************************************************
* 看门狗相关配置
*********************************************************************************************************
*/
// 看门狗配置
#define WDT_INIT_ENABLE 0
/**************************************** 使能WDT *************************************/
#if WDT_INIT_ENABLE
/**************************************** 使能WDT中断 *************************************/
// 看门狗中断
#define WDT_INT_ENABLE 0
#if WDT_INT_ENABLE
// 中断开关
// <0=> 关闭
// <1=> 打开
#define WDT_EWT_INIT 0
// 中断优先级
// 外部中断0 中断优先级
// <0=> 优先级 0(最低)
// <1=> 优先级 1
// <2=> 优先级 2
// <3=> 优先级 3(最高)
#define WDT_IP1_INIT 0
//
/**************************************** 失能WDT中断 *************************************/
#else
#define WDT_IP1_INIT 0
#define WDT_EWT_INIT 0
#endif
// 看门狗复位
// <0=> 关闭
// <1=> 打开
// 看门狗低功耗模式下运行
// <0=> 关闭
// <1=> 打开
// 看门狗定时器时钟源分频
// <0=> 内部低频 RC(44K)8 分频
// <1=> 内部低频 RC(44K)16 分频
// <2=> 内部低频 RC(44K)32 分频
// <3=> 内部低频 RC(44K)64 分频
// <4=> 内部低频 RC(44K)128 分频
// <5=> 内部低频 RC(44K)256 分频
// <6=> 内部低频 RC(44K)512 分频
// <7=> 内部低频 RC(44K)1024 分频
#define WDT_WDTC_INIT 17
// 看门狗定时配置<0-255>
// 注意:
// 在使用 WDT 进行掉电模式唤醒时请注意,清狗动作和进入掉电指令之间间隔大于等于 3 个
// wdt_clk(约 70us);
// 下面以 44KHz 为例进行计算,真实的内部低频 RC 频率可通过定时器 5 进行捕获测量得到。
// 溢出时间 =( WDT分频系数 * (WDTCCR[7:0]+1))/实际内部低频RC频率。
#define WDT_WDTCCR_INIT 255
//
/**************************************** 失能WDT *************************************/
#else
#define WDT_INT_ENABLE 0
#define WDT_IP1_INIT 0
#define WDT_WDTC_INIT 0x4F
#define WDT_EWT_INIT 0
#define WDT_WDTCCR_INIT 0x00
#endif
/*
*********************************************************************************************************
* 外部中断相关配置
*********************************************************************************************************
*/
// 外部中断配置
// 配置 外部中断
#define EXIT_INIT_ENABLE 0
#if EXIT_INIT_ENABLE
/**************************************** 配置外部中断0 *****************************************/
// 外部中断0
// 配置 外部中断 0
#define EXIT0_INIT_ENABLE 0
/**************************************** 使能配置外部中断0 *************************************/
#if EXIT0_INIT_ENABLE
// 管脚选择
// 外部中断0 管脚选择位
// <0=> P00
// <1=> P10
#define EXIT0_INT0_PINS_INIT 0
// 中断触发沿
// 外部中断0 触发沿选择位
// <0=> 低电平中断
// <1=> 下降沿中断
// <2=> 上升沿中断
// <3=> 双沿中断
#define EXIT0_IT0_INIT 0
// 中断优先级
// 外部中断0 中断优先级
// <0=> 优先级 0(最低)
// <1=> 优先级 1
// <2=> 优先级 2
// <3=> 优先级 3(最高)
#define EXIT0_IP0_INIT 0
// 中断开关
// <0=> 关闭
// <1=> 打开
#define EXIT0_EX0_INIT 0
/**************************************** 失能配置外部中断0 *************************************/
#else
#define EXIT0_INT0_PINS_INIT 0
#define EXIT0_IT0_INIT 0
#define EXIT0_EX0_INIT 0
#define EXIT0_IP0_INIT 0
#endif
//
/**************************************** 配置外部中断1 *****************************************/
// 外部中断1
// 配置 外部中断 1
#define EXIT1_INIT_ENABLE 0
/**************************************** 使能配置外部中断1 *************************************/
#if EXIT1_INIT_ENABLE
// 管脚选择
// 外部中断1 管脚选择位
// <0=> P01
// <1=> P11
#define EXIT1_INT1_PINS_INIT 2
// 中断触发沿
// 外部中断1 触发沿选择位
// <0=> 低电平中断
// <1=> 下降沿中断
// <2=> 上升沿中断
// <3=> 双沿中断
#define EXIT1_IT1_INIT 4
// 中断优先级
// 外部中断1 中断优先级
// <0=> 优先级 0(最低)
// <1=> 优先级 1
// <2=> 优先级 2
// <3=> 优先级 3(最高)
#define EXIT1_IP0_INIT 48
// 中断开关
// <0=> 关闭
// <1=> 打开
#define EXIT1_EX1_INIT 4
/**************************************** 失能配置外部中断1 *************************************/
#else
#define EXIT1_INT1_PINS_INIT 0
#define EXIT1_IT1_INIT 0
#define EXIT1_EX1_INIT 0
#define EXIT1_IP0_INIT 0
#endif
//
/**************************************** 配置外部中断2-7 *****************************************/
// 外部中断2-7
// 配置 外部中断 2-7
#define EXIT2_7_INIT_ENABLE 0
/**************************************** 使能配置外部中断2-7 *************************************/
#if EXIT2_7_INIT_ENABLE
/**************************************** 配置外部中断2 *****************************************/
// 外部中断2
// 配置 外部中断 2
#define EXIT2_INIT_ENABLE 1
/**************************************** 使能配置外部中断2 *************************************/
#if EXIT2_INIT_ENABLE
// 中断触发沿
// 外部中断2 触发沿选择位
// <0=> 低电平中断
// <1=> 下降沿中断
// <2=> 上升沿中断
// <3=> 双沿中断
#define EXIT2_IT2_INIT 16
// 中断开关
// <0=> 关闭
// <1=> 打开
#define EXIT2_EINT2_INIT 4
/**************************************** 失能配置外部中断2 *************************************/
#else
#define EXIT2_IT2_INIT 0
#define EXIT2_EINT2_INIT 0
#endif
//
/**************************************** 配置外部中断3 *****************************************/
// 外部中断3
// 配置 外部中断 3
#define EXIT3_INIT_ENABLE 0
/**************************************** 使能配置外部中断3 *************************************/
#if EXIT3_INIT_ENABLE
// 中断触发沿
// 外部中断3 触发沿选择位
// <0=> 低电平中断
// <1=> 下降沿中断
// <2=> 上升沿中断
// <3=> 双沿中断
#define EXIT3_IT3_INIT 0
// 中断开关
// <0=> 关闭
// <1=> 打开
#define EXIT3_EINT3_INIT 0
/**************************************** 失能配置外部中断3 *************************************/
#else
#define EXIT3_IT3_INIT 0
#define EXIT3_EINT3_INIT 0
#endif
//
/**************************************** 配置外部中断4 *****************************************/
// 外部中断4
// 配置 外部中断 4
#define EXIT4_INIT_ENABLE 0
/**************************************** 使能配置外部中断4 *************************************/
#if EXIT4_INIT_ENABLE
// 中断触发沿
// 外部中断4 触发沿选择位
// <0=> 低电平中断
// <1=> 下降沿中断
// <2=> 上升沿中断
// <3=> 双沿中断
#define EXIT4_IT4_INIT 0
// 中断开关
// <0=> 关闭
// <1=> 打开
#define EXIT4_EINT4_INIT 0
/**************************************** 失能配置外部中断4 *************************************/
#else
#define EXIT4_IT4_INIT 0
#define EXIT4_EINT4_INIT 0
#endif
//
/**************************************** 配置外部中断5 *****************************************/
// 外部中断5
// 配置 外部中断 5
#define EXIT5_INIT_ENABLE 0
/**************************************** 使能配置外部中断5 *************************************/
#if EXIT5_INIT_ENABLE
// 中断触发沿
// 外部中断5 触发沿选择位
// <0=> 低电平中断
// <1=> 下降沿中断
// <2=> 上升沿中断
// <3=> 双沿中断
#define EXIT5_IT5_INIT 0
// 中断开关
// <0=> 关闭
// <1=> 打开
#define EXIT5_EINT5_INIT 0
/**************************************** 失能配置外部中断5 *************************************/
#else
#define EXIT5_IT5_INIT 0
#define EXIT5_EINT5_INIT 0
#endif
//
/**************************************** 配置外部中断6 *****************************************/
// 外部中断6
// 配置 外部中断 6
#define EXIT6_INIT_ENABLE 0
/**************************************** 使能配置外部中断6 *************************************/
#if EXIT6_INIT_ENABLE
// 中断触发沿
// 外部中断6 触发沿选择位
// <0=> 低电平中断
// <1=> 下降沿中断
// <2=> 上升沿中断
// <3=> 双沿中断
#define EXIT6_IT6_INIT 0
// 中断开关
// <0=> 关闭
// <1=> 打开
#define EXIT6_EINT6_INIT 0
/**************************************** 失能配置外部中断6 *************************************/
#else
#define EXIT6_IT6_INIT 0
#define EXIT6_EINT6_INIT 0
#endif
//
/**************************************** 配置外部中断7 *****************************************/
// 外部中断7
// 配置 外部中断 7
#define EXIT7_INIT_ENABLE 0
/**************************************** 使能配置外部中断7 *************************************/
#if EXIT7_INIT_ENABLE
// 中断触发沿
// 外部中断7 触发沿选择位
// <0=> 低电平中断
// <1=> 下降沿中断
// <2=> 上升沿中断
// <3=> 双沿中断
#define EXIT7_IT7_INIT 0
// 中断开关
// <0=> 关闭
// <1=> 打开
#define EXIT7_EINT7_INIT 0
/**************************************** 失能配置外部中断7 *************************************/
#else
#define EXIT7_IT7_INIT 0
#define EXIT7_EINT7_INIT 0
#endif
//
/**************************************** 配置外部中断2-7优先级 *************************************/
// 中断优先级
// 外部中断1 中断优先级
// <0=> 优先级 0(最低)
// <1=> 优先级 1
// <2=> 优先级 2
// <3=> 优先级 3(最高)
#define EXIT2_7_IP3_INIT 0
/**************************************** 配置外部中断使能 *************************************/
// 中断开关
// <0=> 关闭
// <1=> 打开
#define EXIT2_7_EX2_7_INIT 64
/**************************************** 失能配置外部中断2-7 *************************************/
#else
#define EXIT2_INIT_ENABLE 0
#define EXIT3_INIT_ENABLE 0
#define EXIT4_INIT_ENABLE 0
#define EXIT5_INIT_ENABLE 0
#define EXIT6_INIT_ENABLE 0
#define EXIT7_INIT_ENABLE 0
#define EXIT2_IT2_INIT 0
#define EXIT2_EINT2_INIT 0
#define EXIT3_IT3_INIT 0
#define EXIT3_EINT3_INIT 0
#define EXIT4_IT4_INIT 0
#define EXIT4_EINT4_INIT 0
#define EXIT5_IT5_INIT 0
#define EXIT5_EINT5_INIT 0
#define EXIT6_IT6_INIT 0
#define EXIT6_EINT6_INIT 0
#define EXIT7_IT7_INIT 0
#define EXIT7_EINT7_INIT 0
#define EXIT2_7_EX2_7_INIT 0
#define EXIT2_7_IP3_INIT 0
#endif
//
/**************************************** 配置外部中断8-15 *****************************************/
// 外部中断8-15
// 配置 外部中断 8-15
#define EXIT8_15_INIT_ENABLE 0
/**************************************** 使能配置外部中断8-15 *************************************/
#if EXIT8_15_INIT_ENABLE
/**************************************** 配置外部中断8 *****************************************/
// 外部中断8
// 配置 外部中断 8
#define EXIT8_INIT_ENABLE 0
/**************************************** 使能配置外部中断8 *************************************/
#if EXIT8_INIT_ENABLE
// 中断触发沿
// 外部中断8 触发沿选择位
// <0=> 低电平中断
// <1=> 下降沿中断
// <2=> 上升沿中断
// <3=> 双沿中断
#define EXIT8_IT8_INIT 2
// 中断开关
// <0=> 关闭
// <1=> 打开
#define EXIT8_EINT8_INIT 0
/**************************************** 失能配置外部中断8 *************************************/
#else
#define EXIT8_IT8_INIT 0
#define EXIT8_EINT8_INIT 0
#endif
//
/**************************************** 配置外部中断9 *****************************************/
// 外部中断9
// 配置 外部中断 9
#define EXIT9_INIT_ENABLE 0
/**************************************** 使能配置外部中断9 *************************************/
#if EXIT9_INIT_ENABLE
// 中断触发沿
// 外部中断9 触发沿选择位
// <0=> 低电平中断
// <1=> 下降沿中断
// <2=> 上升沿中断
// <3=> 双沿中断
#define EXIT9_IT9_INIT 0
// 中断开关
// <0=> 关闭
// <1=> 打开
#define EXIT9_EINT9_INIT 0
/**************************************** 失能配置外部中断9 *************************************/
#else
#define EXIT9_IT9_INIT 0
#define EXIT9_EINT9_INIT 0
#endif
//
/**************************************** 配置外部中断10 *****************************************/
// 外部中断10
// 配置 外部中断 10
#define EXIT10_INIT_ENABLE 0
/**************************************** 使能配置外部中断10 *************************************/
#if EXIT10_INIT_ENABLE
// 中断触发沿
// 外部中断10 触发沿选择位
// <0=> 低电平中断
// <1=> 下降沿中断
// <2=> 上升沿中断
// <3=> 双沿中断
#define EXIT10_IT10_INIT 0
// 中断开关
// <0=> 关闭
// <1=> 打开
#define EXIT10_EINT10_INIT 0
/**************************************** 失能配置外部中断10 *************************************/
#else
#define EXIT10_IT10_INIT 0
#define EXIT10_EINT10_INIT 0
#endif
//
/**************************************** 配置外部中断11 *****************************************/
// 外部中断11
// 配置 外部中断 11
#define EXIT11_INIT_ENABLE 0
/**************************************** 使能配置外部中断11 *************************************/
#if EXIT11_INIT_ENABLE
// 中断触发沿
// 外部中断11 触发沿选择位
// <0=> 低电平中断
// <1=> 下降沿中断
// <2=> 上升沿中断
// <3=> 双沿中断
#define EXIT11_IT11_INIT 0
// 中断开关
// <0=> 关闭
// <1=> 打开
#define EXIT11_EINT11_INIT 0
/**************************************** 失能配置外部中断11 *************************************/
#else
#define EXIT11_IT11_INIT 0
#define EXIT11_EINT11_INIT 0
#endif
//
/**************************************** 配置外部中断12 *****************************************/
// 外部中断12
// 配置 外部中断 12
#define EXIT12_INIT_ENABLE 0
/**************************************** 使能配置外部中断12 *************************************/
#if EXIT12_INIT_ENABLE
// 中断触发沿
// 外部中断12 触发沿选择位
// <0=> 低电平中断
// <1=> 下降沿中断
// <2=> 上升沿中断
// <3=> 双沿中断
#define EXIT12_IT12_INIT 0
// 中断开关
// <0=> 关闭
// <1=> 打开
#define EXIT12_EINT12_INIT 0
/**************************************** 失能配置外部中断12 *************************************/
#else
#define EXIT12_IT12_INIT 0
#define EXIT12_EINT12_INIT 0
#endif
//
/**************************************** 配置外部中断13 *****************************************/
// 外部中断13
// 配置 外部中断 13
#define EXIT13_INIT_ENABLE 0
/**************************************** 使能配置外部中断13 *************************************/
#if EXIT13_INIT_ENABLE
// 中断触发沿
// 外部中断13 触发沿选择位
// <0=> 低电平中断
// <1=> 下降沿中断
// <2=> 上升沿中断
// <3=> 双沿中断
#define EXIT13_IT13_INIT 0
// 中断开关
// <0=> 关闭
// <1=> 打开
#define EXIT13_EINT13_INIT 0
/**************************************** 失能配置外部中断13 *************************************/
#else
#define EXIT13_IT13_INIT 0
#define EXIT13_EINT13_INIT 0
#endif
//
/**************************************** 配置外部中断14 *****************************************/
// 外部中断14
// 配置 外部中断 14
#define EXIT14_INIT_ENABLE 0
/**************************************** 使能配置外部中断14 *************************************/
#if EXIT14_INIT_ENABLE
// 中断触发沿
// 外部中断14 触发沿选择位
// <0=> 低电平中断
// <1=> 下降沿中断
// <2=> 上升沿中断
// <3=> 双沿中断
#define EXIT14_IT14_INIT 0
// 中断开关
// <0=> 关闭
// <1=> 打开
#define EXIT14_EINT14_INIT 0
/**************************************** 失能配置外部中断14 *************************************/
#else
#define EXIT14_IT14_INIT 0
#define EXIT14_EINT14_INIT 0
#endif
//
/**************************************** 配置外部中断15 *****************************************/
// 外部中断15
// 配置 外部中断 15
#define EXIT15_INIT_ENABLE 0
/**************************************** 使能配置外部中断15 *************************************/
#if EXIT15_INIT_ENABLE
// 中断触发沿
// 外部中断15 触发沿选择位
// <0=> 低电平中断
// <1=> 下降沿中断
// <2=> 上升沿中断
// <3=> 双沿中断
#define EXIT15_IT15_INIT 64
// 中断开关
// <0=> 关闭
// <1=> 打开
#define EXIT15_EINT15_INIT 128
/**************************************** 失能配置外部中断15 *************************************/
#else
#define EXIT15_IT15_INIT 0
#define EXIT15_EINT15_INIT 0
#endif
//
/**************************************** 配置外部中断8-15优先级 *************************************/
// 中断优先级
// 外部中断1 中断优先级
// <0=> 优先级 0(最低)
// <1=> 优先级 1
// <2=> 优先级 2
// <3=> 优先级 3(最高)
#define EXIT8_15_IP3_INIT 192
/**************************************** 配置外部中断使能 *************************************/
// 中断开关
// <0=> 关闭
// <1=> 打开
#define EXIT8_15_EX8_15_INIT 0
/**************************************** 失能配置外部中断8-15 *************************************/
#else
#define EXIT8_INIT_ENABLE 0
#define EXIT9_INIT_ENABLE 0
#define EXIT10_INIT_ENABLE 0
#define EXIT11_INIT_ENABLE 0
#define EXIT12_INIT_ENABLE 0
#define EXIT13_INIT_ENABLE 0
#define EXIT14_INIT_ENABLE 0
#define EXIT15_INIT_ENABLE 0
#define EXIT8_IT8_INIT 0
#define EXIT8_EINT8_INIT 0
#define EXIT9_IT9_INIT 0
#define EXIT9_EINT9_INIT 0
#define EXIT10_IT10_INIT 0
#define EXIT10_EINT10_INIT 0
#define EXIT11_IT11_INIT 0
#define EXIT11_EINT11_INIT 0
#define EXIT12_IT12_INIT 0
#define EXIT12_EINT12_INIT 0
#define EXIT13_IT13_INIT 0
#define EXIT13_EINT13_INIT 0
#define EXIT14_IT14_INIT 0
#define EXIT14_EINT14_INIT 0
#define EXIT15_IT15_INIT 0
#define EXIT15_EINT15_INIT 0
#define EXIT8_15_IP3_INIT 0
#define EXIT8_15_EX8_15_INIT 0
#endif
//
#else
#define EXIT0_INIT_ENABLE 0
#define EXIT0_INT0_PINS_INIT 0
#define EXIT0_IT0_INIT 0
#define EXIT0_EX0_INIT 0
#define EXIT0_IP0_INIT 0
#define EXIT1_INIT_ENABLE 0
#define EXIT1_INT1_PINS_INIT 0
#define EXIT1_IT1_INIT 0
#define EXIT1_EX1_INIT 0
#define EXIT1_IP0_INIT 0
#define EXIT2_7_INIT_ENABLE 0
#define EXIT2_INIT_ENABLE 0
#define EXIT3_INIT_ENABLE 0
#define EXIT4_INIT_ENABLE 0
#define EXIT5_INIT_ENABLE 0
#define EXIT6_INIT_ENABLE 0
#define EXIT7_INIT_ENABLE 0
#define EXIT2_IT2_INIT 0
#define EXIT2_EINT2_INIT 0
#define EXIT3_IT3_INIT 0
#define EXIT3_EINT3_INIT 0
#define EXIT4_IT4_INIT 0
#define EXIT4_EINT4_INIT 0
#define EXIT5_IT5_INIT 0
#define EXIT5_EINT5_INIT 0
#define EXIT6_IT6_INIT 0
#define EXIT6_EINT6_INIT 0
#define EXIT7_IT7_INIT 0
#define EXIT7_EINT7_INIT 0
#define EXIT2_7_EX2_7_INIT 0
#define EXIT2_7_IP3_INIT 0
#define EXIT8_15_INIT_ENABLE 0
#define EXIT8_INIT_ENABLE 0
#define EXIT9_INIT_ENABLE 0
#define EXIT10_INIT_ENABLE 0
#define EXIT11_INIT_ENABLE 0
#define EXIT12_INIT_ENABLE 0
#define EXIT13_INIT_ENABLE 0
#define EXIT14_INIT_ENABLE 0
#define EXIT15_INIT_ENABLE 0
#define EXIT8_IT8_INIT 0
#define EXIT8_EINT8_INIT 0
#define EXIT9_IT9_INIT 0
#define EXIT9_EINT9_INIT 0
#define EXIT10_IT10_INIT 0
#define EXIT10_EINT10_INIT 0
#define EXIT11_IT11_INIT 0
#define EXIT11_EINT11_INIT 0
#define EXIT12_IT12_INIT 0
#define EXIT12_EINT12_INIT 0
#define EXIT13_IT13_INIT 0
#define EXIT13_EINT13_INIT 0
#define EXIT14_IT14_INIT 0
#define EXIT14_EINT14_INIT 0
#define EXIT15_IT15_INIT 0
#define EXIT15_EINT15_INIT 0
#define EXIT8_15_IP3_INIT 0
#define EXIT8_15_EX8_15_INIT 0
#endif
//
/*************************************** 定时器0 配置 ************************************************/
// 定时器0配置
// 配置 定时器0
#define TIMER0_INIT_ENABLE 0
/**************************************** 定时器0使能 *************************************/
#if TIMER0_INIT_ENABLE
// 定时器0功能
// <0=> 内部定时
// <1=> 外部计数
#define TIMER0_CT0_INIT 0
// 定时器0 中断开关
// <0=> 关闭
// <1=> 打开
#define TIMER0_ET0_INIT 2
// 定时器0 中断优先级
// 定时器0 中断优先级
// <0=> 优先级 0(最低)
// <1=> 优先级 1
// <2=> 优先级 2
// <3=> 优先级 3(最高)
#define TIMER0_IP0_INIT 12
// 定时器0方式
// 注意:方式 3 时 T0 占用 T1 的 TR1、TF1 及中断源,由于 TR1 被 T0 占用,此时需要关闭 T1,可将 T1 设为工作方式 3。
// <0=> 方式0 16 位重装载定时器/计数器
// <1=> 方式1 16 位定时器/计数器
// <2=> 方式2 8 位自动重装初值定时器/计数器
// <3=> 方式3 T0 分成两个(TL0/TH0)独立的 8 位定时器/计数器;T1停止计数
#define TIMER0_M0_INIT 0
// 定时器0时钟源
// 定时器系统时钟源分频选择位
// <0=> 定时器0 时钟为 Fosc /12
// <1=> 定时器0 时钟为 Fosc
#define TIMER0_T0X12_INIT 1
// 定时器0门控
// 定时器0运行控制
// <0=> 停止 定时器0 工作
// <1=> 启动 定时器0 工作
#define TIMER0_TR0_INIT 16
// 定时器0门控位
// <0=> 只需软件置 TR0 即可启动 Tx
// <1=> 只有在 INT0 端口电平为高电平时 TR0 置 1,定时器0 才工作
#define TIMER0_GATE0_INIT 0
//
// 定时器0比较输出
#define TIMER0_T0OUT_INIT 0
// 定时器0引脚映射
// <0x00=> P00
// <0x01=> P01
// <0x02=> P02
// <0x03=> P03
// <0x04=> P04
// <0x05=> P05
// <0x06=> P06
// <0x07=> P07
// <0x10=> P10
// <0x11=> P11
// <0x20=> P20
// <0x21=> P21
// <0x22=> P22
// <0x23=> P23
// <0x24=> P24
// <0x25=> P25
// <0x26=> P26
// <0x27=> P27
#define TIMER0_T0MAP_INIT 0x00
//
// 定时器0定时
// 高八位<0-255>
#define TIMER0_TH0_INIT 0xFA
// 低八位<0-255>
#define TIMER0_TL0_INIT 0xCB
//
#else
#define TIMER0_CT0_INIT 0
#define TIMER0_ET0_INIT 0
#define TIMER0_M0_INIT 0
#define TIMER0_IP0_INIT 0
#define TIMER0_T0X12_INIT 0
#define TIMER0_TR0_INIT 0
#define TIMER0_GATE0_INIT 0
#define TIMER0_T0OUT_INIT 0
#define TIMER0_T0MAP_INIT 0
#define TIMER0_TL0_INIT 0x00
#define TIMER0_TH0_INIT 0x00
#endif
//
/****************************************** 定时器1 配置 *********************************************/
// 定时器1配置
// 配置 定时器1
#define TIMER1_INIT_ENABLE 0
/******************************************* 定时器1使能 *********************************************/
#if TIMER1_INIT_ENABLE
// 定时器1功能
// <0=> 内部定时
// <1=> 外部计数
#define TIMER1_CT1_INIT 0
// 定时器1 中断开关
// <0=> 关闭
// <1=> 打开
#define TIMER1_ET1_INIT 8
// 定时器1 中断优先级
// 定时器1 中断优先级
// <0=> 优先级 0(最低)
// <1=> 优先级 1
// <2=> 优先级 2
// <3=> 优先级 3(最高)
#define TIMER1_IP0_INIT 0
// 定时器1方式
// 注意:方式 3 时 T0 占用 T1 的 TR1、TF1 及中断源,由于 TR1 被 T0 占用,此时需要关闭 T1,可将 T1 设为工作方式 3。
// <0=> 方式0 16 位重装载定时器/计数器
// <1=> 方式1 16 位定时器/计数器
// <2=> 方式2 8 位自动重装初值定时器/计数器
#define TIMER1_M1_INIT 0
// 定时器1时钟源
// 定时器系统时钟源分频选择位
// <0=> 定时器1 时钟为 Fosc /12
// <1=> 定时器1 时钟为 Fosc
#define TIMER1_T1X12_INIT 0
// 定时器1门控
// 定时器1运行控制
// <0=> 停止 定时器1 工作
// <1=> 启动 定时器1 工作
#define TIMER1_TR1_INIT 64
// 定时器1门控位
// <0=> 只需软件置 TR1 即可启动 Tx
// <1=> 只有在 INT1 端口电平为高电平时 TR0 置 1,定时器1 才工作
#define TIMER1_GATE1_INIT 0
//
// 定时器1比较输出
#define TIMER1_T1OUT_INIT 0
// 定时器1引脚映射
// <0x00=> P00
// <0x01=> P01
// <0x02=> P02
// <0x03=> P03
// <0x04=> P04
// <0x05=> P05
// <0x06=> P06
// <0x07=> P07
// <0x10=> P10
// <0x11=> P11
// <0x20=> P20
// <0x21=> P21
// <0x22=> P22
// <0x23=> P23
// <0x24=> P24
// <0x25=> P25
// <0x26=> P26
// <0x27=> P27
#define TIMER1_T1MAP_INIT 0x00
//
// 定时器1定时
// 高八位<0-255>
#define TIMER1_TH1_INIT 0xFA
// 低八位<0-255>
#define TIMER1_TL1_INIT 0xCB
//
/******************************************* 定时器1 失能 ******************************************/
#else
#define TIMER1_CT1_INIT 0
#define TIMER1_ET1_INIT 0
#define TIMER1_M1_INIT 0
#define TIMER1_IP0_INIT 0
#define TIMER1_T1X12_INIT 0
#define TIMER1_TR1_INIT 0
#define TIMER1_GATE1_INIT 0
#define TIMER1_T1OUT_INIT 0
#define TIMER1_T1MAP_INIT 0
#define TIMER1_TL1_INIT 0x00
#define TIMER1_TH1_INIT 0x00
#endif
//
/*************************************** 定时器3 配置 ************************************************/
// 定时器3配置
// 配置 定时器3
#define TIMER3_INIT_ENABLE 0
/*************************************** 定时器3使能 ***********************************************/
#if TIMER3_INIT_ENABLE
// 定时器3 中断开关
// <0=> 关闭
// <1=> 打开
#define TIMER3_ET3_INIT 2
// 定时器3掉电运行
// <0=> 禁止
// <1=> 允许
#define TIMER3_T3PD_INIT 64
// 定时器3时钟源
// 定时器时钟源选择
// <0=> 系统时钟 Fosc
// <1=> T3 端口输入外部时钟
// <2=> 外部低频晶振 32.768KHz
// <3=> 保留(系统时钟 Fosc )
#define TIMER3_T3CLKS_INIT 0
// 定时器3时钟预分频
// 定时器 3 预分频比选择位
// <0=> 1分频
// <1=> 8分频
// <2=> 64分频
// <3=> 256分频
#define TIMER3_T3PS_INIT 0
// 定时器3运行控制
// <0=> 停止 定时器3 工作
// <1=> 启动 定时器3 工作
#define TIMER3_TR3_INIT 0
// 定时器3 中断优先级
// 定时器3 中断优先级
// <0=> 优先级 0(最低)
// <1=> 优先级 1
// <2=> 优先级 2
// <3=> 优先级 3(最高)
#define TIMER3_IP2_INIT 0
// 定时器3定时
// 高八位<0-255>
#define TIMER3_TH3_INIT 255
// 低八位<0-255>
#define TIMER3_TL3_INIT 255
//
// 定时器3 引脚映射
#define TIMER3_T3MAP_ENABLE 0
// 引脚
// <0x00=> P00
// <0x01=> P01
// <0x02=> P02
// <0x03=> P03
// <0x04=> P04
// <0x05=> P05
// <0x06=> P06
// <0x07=> P07
// <0x10=> P10
// <0x11=> P11
// <0x20=> P20
// <0x21=> P21
// <0x22=> P22
// <0x23=> P23
// <0x24=> P24
// <0x25=> P25
// <0x26=> P26
// <0x27=> P27
#define TIMER3_T3MAP_INIT 0x10
//
/*************************************** 定时器3 失能 ***********************************************/
#else
#define TIMER3_ET3_INIT 0
#define TIMER3_IP2_INIT 0
#define TIMER3_T3PD_INIT 0
#define TIMER3_T3CLKS_INIT 0
#define TIMER3_T3PS_INIT 0
#define TIMER3_TR3_INIT 0
#define TIMER3_TH3_INIT 0
#define TIMER3_TL3_INIT 0
#define TIMER3_T3CLKSIN_INIT 0
#define TIMER3_T3MAP_INIT 0
#endif
//
/*************************************** 定时器4 配置 ************************************************/
// 定时器4配置
// 配置 定时器4
#define TIMER4_INIT_ENABLE 0
/*************************************** 定时器4 使能 ***********************************************/
#if TIMER4_INIT_ENABLE
// 定时器4 中断开关
// <0=> 关闭
// <1=> 打开
#define TIMER4_ET4_INIT 4
// 定时器4方式
// <0=> 方式0 16 位重装载定时器
// <1=> 方式1 UART1 波特率发生器
// <2=> 方式2 T4 端口上升沿触发(只用系统时钟,T4CLKS 无效
// <3=> 方式3 T4 端口下降沿触发(只用系统时钟,T4CLKS 无效)
#define TIMER4_T4M_INIT 12
// 定时器4比较功能
// <0=> 禁止
// <1=> 允许
#define TIMER4_TC4_INIT 64
// 定时器4时钟预分频
// 定时器 4 预分频比选择位
// <0=> 1分频
// <1=> 8分频
// <2=> 64分频
// <3=> 256分频
#define TIMER4_T4PS_INIT 48
// 定时器4时钟源
// 定时器时钟源选择
// <0=> 系统时钟 Fosc
// <1=> T4 端口输入外部时钟
#define TIMER4_T4CLKS_INIT 0
// 定时器4运行控制
// <0=> 停止 定时器4 工作
// <1=> 启动 定时器4 工作
#define TIMER4_TR4_INIT 2
// 定时器4 中断优先级
// 定时器4 中断优先级
// <0=> 优先级 0(最低)
// <1=> 优先级 1
// <2=> 优先级 2
// <3=> 优先级 3(最高)
#define TIMER4_IP2_INIT 48
// 定时器4定时
// 高八位<0-255>
#define TIMER4_TH4_INIT 11
// 低八位<0-255>
#define TIMER4_TL4_INIT 220
//
// T4 外部端口映射
#define TIMER4_T4CLKSIN_INIT 1
// 定时器4引脚映射
// <0x00=> P00
// <0x01=> P01
// <0x02=> P02
// <0x03=> P03
// <0x04=> P04
// <0x05=> P05
// <0x06=> P06
// <0x07=> P07
// <0x10=> P10
// <0x11=> P11
// <0x20=> P20
// <0x21=> P21
// <0x22=> P22
// <0x23=> P23
// <0x24=> P24
// <0x25=> P25
// <0x26=> P26
// <0x27=> P27
#define TIMER4_T4MAP_INIT 0x11
//
/*************************************** 定时器4 失能 ***********************************************/
#else
#define TIMER4_ET4_INIT 0
#define TIMER4_IP2_INIT 0
#define TIMER4_T4PD_INIT 0
#define TIMER4_T4CLKS_INIT 0
#define TIMER4_T4PS_INIT 0
#define TIMER4_TR4_INIT 0
#define TIMER4_TH4_INIT 0
#define TIMER4_TL4_INIT 0
#define TIMER4_T4CLKSIN_INIT 0
#define TIMER4_T4MAP_INIT 0
#define TIMER4_T4M_INIT 0
#define TIMER4_TC4_INIT 0
#endif
//
/*************************************** 定时器5 配置 ************************************************/
// 定时器5配置
// 配置 定时器5
#define TIMER5_INIT_ENABLE 0
/*************************************** 定时器5 使能 ***********************************************/
#if TIMER5_INIT_ENABLE
// 定时器5方式
// <0=> 方式0 16 位重装载定时器
// <1=> 方式1 UART2 波特率发生器
// <2=> 方式2 16 位上升沿捕获
// <3=> 方式3 16 位下降沿捕获
#define TIMER5_T5M_INIT 0
// T5 引脚上的外部事件输入用作重载/捕获触发器
// <0=> 禁止
// <1=> 允许
#define TIMER5_EXEN5_INIT 0
// 定时器5 中断开关
// <0=> 关闭
// <1=> 打开
#define TIMER5_ET5_INIT 0
// 定时器5 中断优先级
// 定时器5 中断优先级
// <0=> 优先级 0(最低)
// <1=> 优先级 1
// <2=> 优先级 2
// <3=> 优先级 3(最高)
#define TIMER5_IP3_INIT 0
// 定时器5时钟预分频
// 定时器 5 预分频比选择位
// <0=> 1分频
// <1=> 8分频
// <2=> 64分频
// <3=> 256分频
#define TIMER5_T5PS_INIT 0
// 定时器5运行控制
// <0=> 停止 定时器5 工作
// <1=> 启动 定时器5 工作
#define TIMER5_TR5_INIT 0
// 定时器5捕获类型
// 定时器 5 预分频比选择位
// <0=> T5 脚的变化沿
// <1=> 内部低频 RC,即看门狗的计数时钟
// <2=> UART1 的 RXD1 脚
// <3=> UART2 的 RXD2 脚
#define TIMER5_CAPM_INIT 0
// 定时器5定时
// 高八位<0-255>
#define TIMER5_TH5_INIT 255
// 低八位<0-255>
#define TIMER5_TL5_INIT 255
//
// 定时器5引脚映射
#define TIMER5_T5MAP_ENABLE 0
// 引脚
// <0x00=> P00
// <0x01=> P01
// <0x02=> P02
// <0x03=> P03
// <0x04=> P04
// <0x05=> P05
// <0x06=> P06
// <0x07=> P07
// <0x10=> P10
// <0x11=> P11
// <0x20=> P20
// <0x21=> P21
// <0x22=> P22
// <0x23=> P23
// <0x24=> P24
// <0x25=> P25
// <0x26=> P26
// <0x27=> P27
#define TIMER5_T5MAP_INIT 0x00
//
/*************************************** 定时器5 失能 ***********************************************/
#else
#define TIMER5_T5M_INIT 0
#define TIMER5_EXEN5_INIT 0
#define TIMER5_ET5_INIT 0
#define TIMER5_IP3_INIT 0
#define TIMER5_T5PS_INIT 0
#define TIMER5_TR5_INIT 0
#define TIMER5_CAPM_INIT 0
#define TIMER5_TH5_INIT 0
#define TIMER5_TL5_INIT 0
#define TIMER5_T5MAP_INIT 0
#endif
//
/*************************************** PWM 模块配置 ************************************************/
// PWM 模块配置
// 配置 PWM
#define PWM_INIT_ENABLE 0
/*************************************** PWM 模块使能 ************************************************/
#if PWM_INIT_ENABLE
/*************************************** PWM0 模块配置 ************************************************/
// PWM0 模块配置
// 配置 PWM0
#define PWM0_INIT_ENABLE 1
/*************************************** PWM0 模块使能 ***********************************************/
#if PWM0_INIT_ENABLE
// PWM0 模块故障检测
#define PWM0EN_EFLT0_INIT 16
/*************************************** PWM0 模块故障检测使能 ***********************************************/
#if PWM0EN_EFLT0_INIT
// 故障检测引脚配置
// <0=> FLT0 为低电平时,PWM 输出关闭
// <1=> FLT0 为高电平时,PWM 输出关闭
#define PWM0C_FLT0C_INIT 16
// 故障输出预定状态选择
// <0=> PWM0&PWM01故障期间均为低电平
// <1=> PWM0故障期间低电平, PWM01故障期间高电平
// <2=> PWM0故障期间高电平, PWM01故障期间低电平
// <3=> PWM0&PWM01故障期间均为高电平
#define PWM0EN_FLT0_MODE_INIT 96
//
/*************************************** PWM0 模块故障检测失能 ***********************************************/
#else
#define PWM0C_FLT0C_INIT 0
#define PWM0EN_FLT0_MODE_INIT 0
#endif
// PWM0 模块工作模式
// 注意:修改 PWM0 模块工作模式时建议先关闭 PWM0 模块。
// <0=> PWM0&PWM01 工作于互补输出模式
// <1=> PWM0&PWM01 工作于独立输出模式
#define PWM0EN_PWM0M_INIT 8
// PWM0 模块输出模式
// <0=> PWM0和PWM01均为高有效
// <1=> PWM0为高有效,PWM01为低有效
// <2=> PWM0为低有效,PWM01为高有效
// <3=> PWM0 和 PWM01 均为低有效
#define PWM0C_PWM0S_INIT 0
// PWM0 模块时钟源
// <0=> Fosc /1
// <1=> Fosc /8
// <2=> Fosc /32
// <3=> Fosc /128
#define PWM0C_CK0_INIT 1
// PWM0 模块周期配置
// 高八位<0-255>
#define PWM0PH_INIT 3
// 低八位<0-255>
#define PWM0PL_INIT 255
//
/*************************************** PWM0 输出配置 ***********************************************/
// PWM0 输出配置
// 配置 PWM0
#define PWM0OUT_INIT_ENABLE 1
/*************************************** PWM0 输出配置使能 ***********************************************/
#if PWM0OUT_INIT_ENABLE
// PWM0 引脚映射
// <0x00=> P00
// <0x01=> P01
// <0x02=> P02
// <0x03=> P03
// <0x04=> P04
// <0x05=> P05
// <0x06=> P06
// <0x07=> P07
// <0x10=> P10
// <0x11=> P11
// <0x20=> P20
// <0x21=> P21
// <0x22=> P22
// <0x23=> P23
// <0x24=> P24
// <0x25=> P25
// <0x26=> P26
// <0x27=> P27
#define PWM0_PWM0MAP_INIT 0x22
// PWM0 占空比配置
// 高八位<0-255>
#define PWM0DH_INIT 15
// 低八位<0-255>
#define PWM0DL_INIT 155
//
// PWM0 输出
// <0=> 禁止 PWM0 输出
// <1=> 允许 PWM0 输出
#define PWM0EN_PWM0_OEN_INIT 0
//
/*************************************** PWM0 输出配置失能 ***********************************************/
#else
#define PWM0_PWM0MAP_INIT 0x37
#define PWM0DH_INIT 0
#define PWM0DL_INIT 0
#define PWM0EN_PWM0_OEN_INIT 0
#endif
// PWM01 输出配置
// 配置 PWM01
#define PWM01OUT_INIT_ENABLE 1
#if PWM01OUT_INIT_ENABLE
/*************************************** PWM01 输出配置使能 ***********************************************/
// PWM01 引脚映射
// <0x00=> P00
// <0x01=> P01
// <0x02=> P02
// <0x03=> P03
// <0x04=> P04
// <0x05=> P05
// <0x06=> P06
// <0x07=> P07
// <0x10=> P10
// <0x11=> P11
// <0x20=> P20
// <0x21=> P21
// <0x22=> P22
// <0x23=> P23
// <0x24=> P24
// <0x25=> P25
// <0x26=> P26
// <0x27=> P27
#define PWM0_PWM01MAP_INIT 0x23
// PWM01 占空比配置
// 高八位<0-255>
#define PWM01DH_INIT 1
// 低八位<0-255>
#define PWM01DL_INIT 55
//
// PWM01 输出
// <0=> 禁止 PWM01 输出
// <1=> 允许 PWM01 输出
#define PWM0EN_PWM01_OEN_INIT 4
//
/*************************************** PWM01 输出配置失能 ***********************************************/
#else
#define PWM0_PWM01MAP_INIT 0x37
#define PWM01DH_INIT 0
#define PWM01DL_INIT 0
#define PWM0EN_PWM01_OEN_INIT 0
#endif
/*************************************** PWM0 模块死区配置 ***********************************************/
// PWM0 模块死区配置
#define PWM0_DTHL_ENABLE 0
/*************************************** PWM0 模块死区配置使能 ***********************************************/
#if PWM0_DTHL_ENABLE
// 高八位<0-255>
#define PWM0DTH_INIT 0
// 低八位<0-255>
#define PWM0DTL_INIT 0
//
/*************************************** PWM0 模块死区配置失能 ***********************************************/
#else
#define PWM0DTH_INIT 0
#define PWM0DTL_INIT 0
#endif
// PWM0 模块使能
// <0=> 关闭 PWM0 模块
// <1=> 打开 PWM0 模块(重新计数)
#define PWM0EN_PWM0_EN_INIT 1
// PWM0 中断开关
// <0=> 禁止 PWM0 中断
// <1=> 允许 PWM0 中断
#define PWM0C_PWM0IE_INIT 0
/*************************************** PWM0 失能 ***********************************************/
#else
#define PWM0EN_EFLT0_INIT 0
#define PWM0C_FLT0C_INIT 0
#define PWM0EN_FLT0_MODE_INIT 0
#define PWM0EN_PWM0M_INIT 0
#define PWM0C_PWM0S_INIT 0
#define PWM0C_CK0_INIT 0
#define PWM0PH_INIT 255
#define PWM0PL_INIT 255
#define PWM0OUT_INIT_ENABLE 0
#define PWM0_PWM0MAP_INIT 0x37
#define PWM0DH_INIT 0
#define PWM0DL_INIT 0
#define PWM0EN_PWM0_OEN_INIT 0
#define PWM01OUT_INIT_ENABLE 0
#define PWM0_PWM01MAP_INIT 0x37
#define PWM01DH_INIT 0
#define PWM01DL_INIT 0
#define PWM0EN_PWM01_OEN_INIT 0
#define PWM0_DTHL_ENABLE 0
#define PWM0DTH_INIT 0
#define PWM0DTL_INIT 0
#define PWM0EN_PWM0_EN_INIT 0
#define PWM0C_PWM0IE_INIT 0
#endif
//
/*************************************** PWM1 模块配置 ************************************************/
// PWM1 模块配置
// 配置 PWM1
#define PWM1_INIT_ENABLE 0
/*************************************** PWM1 模块使能 ***********************************************/
#if PWM1_INIT_ENABLE
// PWM1 模块故障检测
#define PWM1EN_EFLT0_INIT 16
/*************************************** PWM1 模块故障检测使能 ***********************************************/
#if PWM1EN_EFLT0_INIT
// 故障检测引脚配置
// <0=> FLT0 为低电平时,PWM 输出关闭
// <1=> FLT0 为高电平时,PWM 输出关闭
#define PWM1C_FLT0C_INIT 16
// 故障输出预定状态选择
// <0=> PWM1&PWM11故障期间均为低电平
// <1=> PWM1故障期间低电平, PWM11故障期间高电平
// <2=> PWM1故障期间高电平, PWM11故障期间低电平
// <3=> PWM1&PWM11故障期间均为高电平
#define PWM1EN_FLT0_MODE_INIT 0
//
/*************************************** PWM1 模块故障检 测失能 ***********************************************/
#else
#define PWM1C_FLT0C_INIT 0
#define PWM1EN_FLT0_MODE_INIT 0
#endif
// PWM1 模块工作模式
// 注意:修改 PWM1 模块工作模式时建议先关闭 PWM1 模块。
// <0=> PWM1&PWM11 工作于互补输出模式
// <1=> PWM1&PWM11 工作于独立输出模式
#define PWM1EN_PWM1M_INIT 8
// PWM1 模块输出模式
// <0=> PWM1和PWM11均为高有效
// <1=> PWM1为高有效,PWM11为低有效
// <2=> PWM1为低有效,PWM11为高有效
// <3=> PWM1 和 PWM11 均为低有效
#define PWM1C_PWM1S_INIT 0
// PWM1 模块时钟源
// <0=> Fosc /1
// <1=> Fosc /8
// <2=> Fosc /32
// <3=> Fosc /128
#define PWM1C_CK0_INIT 1
// PWM1 模块周期配置
// 高八位<0-255>
#define PWM1PH_INIT 3
// 低八位<0-255>
#define PWM1PL_INIT 255
//
/*************************************** PWM1 输出配置 ***********************************************/
// PWM1 输出配置
// 配置 PWM1
#define PWM1OUT_INIT_ENABLE 1
/*************************************** PWM1 输出配置使能 ***********************************************/
#if PWM1OUT_INIT_ENABLE
// PWM1 引脚映射
// <0x00=> P00
// <0x01=> P01
// <0x02=> P02
// <0x03=> P03
// <0x04=> P04
// <0x05=> P05
// <0x06=> P06
// <0x07=> P07
// <0x10=> P10
// <0x11=> P11
// <0x20=> P20
// <0x21=> P21
// <0x22=> P22
// <0x23=> P23
// <0x24=> P24
// <0x25=> P25
// <0x26=> P26
// <0x27=> P27
#define PWM1_PWM1MAP_INIT 0x22
// PWM1 占空比配置
// 高八位<0-255>
#define PWM1DH_INIT 128
// 低八位<0-255>
#define PWM1DL_INIT 255
//
// PWM1 输出
// <0=> 禁止 PWM1 输出
// <1=> 允许 PWM1 输出
#define PWM1EN_PWM1_OEN_INIT 2
//
/*************************************** PWM1 输出配置失能 ***********************************************/
#else
#define PWM1_PWM1MAP_INIT 0x37
#define PWM1DH_INIT 0
#define PWM1DL_INIT 0
#define PWM1EN_PWM1_OEN_INIT 0
#endif
// PWM11 输出配置
// 配置 PWM11
#define PWM11OUT_INIT_ENABLE 1
#if PWM11OUT_INIT_ENABLE
/*************************************** PWM11 输出配置使能 ***********************************************/
// PWM11 引脚映射
// <0x00=> P00
// <0x01=> P01
// <0x02=> P02
// <0x03=> P03
// <0x04=> P04
// <0x05=> P05
// <0x06=> P06
// <0x07=> P07
// <0x10=> P10
// <0x11=> P11
// <0x20=> P20
// <0x21=> P21
// <0x22=> P22
// <0x23=> P23
// <0x24=> P24
// <0x25=> P25
// <0x26=> P26
// <0x27=> P27
#define PWM1_PWM11MAP_INIT 0x23
// PWM11 占空比配置
// 高八位<0-255>
#define PWM11DH_INIT 1
// 低八位<0-255>
#define PWM11DL_INIT 85
//
// PWM11 输出
// <0=> 禁止 PWM11 输出
// <1=> 允许 PWM11 输出
#define PWM1EN_PWM11_OEN_INIT 4
//
/*************************************** PWM11 输出配置失能 ***********************************************/
#else
#define PWM1_PWM11MAP_INIT 0x37
#define PWM11DH_INIT 0
#define PWM11DL_INIT 0
#define PWM1EN_PWM11_OEN_INIT 0
#endif
/*************************************** PWM1 模块死区配置 ***********************************************/
// PWM1 模块死区配置
#define PWM1_DTHL_ENABLE 0
/*************************************** PWM1 模块死区配置使能 ***********************************************/
#if PWM1_DTHL_ENABLE
// 高八位<0-255>
#define PWM1DTH_INIT 0
// 低八位<0-255>
#define PWM1DTL_INIT 0
//
/*************************************** PWM1 模块死区配置失能 ***********************************************/
#else
#define PWM1DTH_INIT 0
#define PWM1DTL_INIT 0
#endif
// PWM1 模块使能
// <0=> 关闭 PWM1 模块
// <1=> 打开 PWM1 模块(重新计数)
#define PWM1EN_PWM1_EN_INIT 1
// PWM1 中断开关
// <0=> 禁止 PWM1 中断
// <1=> 允许 PWM1 中断
#define PWM1C_PWM1IE_INIT 0
/*************************************** PWM1 失能 ***********************************************/
#else
#define PWM1EN_EFLT0_INIT 0
#define PWM1C_FLT0C_INIT 0
#define PWM1EN_FLT0_MODE_INIT 0
#define PWM1EN_PWM1M_INIT 0
#define PWM1C_PWM1S_INIT 0
#define PWM1C_CK0_INIT 0
#define PWM1PH_INIT 255
#define PWM1PL_INIT 255
#define PWM1OUT_INIT_ENABLE 0
#define PWM1_PWM1MAP_INIT 0x37
#define PWM1DH_INIT 0
#define PWM1DL_INIT 0
#define PWM1EN_PWM1_OEN_INIT 0
#define PWM11OUT_INIT_ENABLE 0
#define PWM1_PWM11MAP_INIT 0x37
#define PWM11DH_INIT 0
#define PWM11DL_INIT 0
#define PWM1EN_PWM11_OEN_INIT 0
#define PWM1_DTHL_ENABLE 0
#define PWM1DTH_INIT 0
#define PWM1DTL_INIT 0
#define PWM1EN_PWM1_EN_INIT 0
#define PWM1C_PWM1IE_INIT 0
#endif
//
/*************************************** PWM2 模块配置 ************************************************/
// PWM2 模块配置
// 配置 PWM2
#define PWM2_INIT_ENABLE 0
/*************************************** PWM2 模块使能 ***********************************************/
#if PWM2_INIT_ENABLE
// PWM2 模块故障检测
#define PWM2EN_EFLT0_INIT 0
/*************************************** PWM2 模块故障检测使能 ***********************************************/
#if PWM2EN_EFLT0_INIT
// 故障检测引脚配置
// <0=> FLT0 为低电平时,PWM 输出关闭
// <1=> FLT0 为高电平时,PWM 输出关闭
#define PWM2C_FLT0C_INIT 16
// 故障输出预定状态选择
// <0=> PWM2&PWM21故障期间均为低电平
// <1=> PWM2故障期间低电平, PWM21故障期间高电平
// <2=> PWM2故障期间高电平, PWM21故障期间低电平
// <3=> PWM2&PWM21故障期间均为高电平
#define PWM2EN_FLT0_MODE_INIT 0
//
/*************************************** PWM2 模块故障检测失能 ***********************************************/
#else
#define PWM2C_FLT0C_INIT 0
#define PWM2EN_FLT0_MODE_INIT 0
#endif
// PWM2 模块工作模式
// 注意:修改 PWM2 模块工作模式时建议先关闭 PWM2 模块。
// <0=> PWM2&PWM21 工作于互补输出模式
// <1=> PWM2&PWM21 工作于独立输出模式
#define PWM2EN_PWM2M_INIT 8
// PWM2 模块输出模式
// <0=> PWM2和PWM21均为高有效
// <1=> PWM2为高有效,PWM21为低有效
// <2=> PWM2为低有效,PWM21为高有效
// <3=> PWM2 和 PWM21 均为低有效
#define PWM2C_PWM2S_INIT 0
// PWM2 模块时钟源
// <0=> Fosc /1
// <1=> Fosc /8
// <2=> Fosc /32
// <3=> Fosc /128
#define PWM2C_CK0_INIT 1
// PWM2 模块周期配置
// 高八位<0-255>
#define PWM2PH_INIT 3
// 低八位<0-255>
#define PWM2PL_INIT 255
//
/*************************************** PWM2 输出配置 ***********************************************/
// PWM2 输出配置
// 配置 PWM2
#define PWM2OUT_INIT_ENABLE 1
/*************************************** PWM2 输出配置使能 ***********************************************/
#if PWM2OUT_INIT_ENABLE
// PWM2 引脚映射
// <0x00=> P00
// <0x01=> P01
// <0x02=> P02
// <0x03=> P03
// <0x04=> P04
// <0x05=> P05
// <0x06=> P06
// <0x07=> P07
// <0x10=> P10
// <0x11=> P11
// <0x20=> P20
// <0x21=> P21
// <0x22=> P22
// <0x23=> P23
// <0x24=> P24
// <0x25=> P25
// <0x26=> P26
// <0x27=> P27
#define PWM2_PWM2MAP_INIT 0x00
// PWM2 占空比配置
// 高八位<0-255>
#define PWM2DH_INIT 1
// 低八位<0-255>
#define PWM2DL_INIT 85
//
// PWM2 输出
// <0=> 禁止 PWM2 输出
// <1=> 允许 PWM2 输出
#define PWM2EN_PWM2_OEN_INIT 2
//
/*************************************** PWM2 输出配置失能 ***********************************************/
#else
#define PWM2_PWM2MAP_INIT 0x37
#define PWM2DH_INIT 0
#define PWM2DL_INIT 0
#define PWM2EN_PWM2_OEN_INIT 0
#endif
// PWM21 输出配置
// 配置 PWM21
#define PWM21OUT_INIT_ENABLE 1
#if PWM21OUT_INIT_ENABLE
/*************************************** PWM21 输出配置使能 ***********************************************/
// PWM21 引脚映射
// <0x00=> P00
// <0x01=> P01
// <0x02=> P02
// <0x03=> P03
// <0x04=> P04
// <0x05=> P05
// <0x06=> P06
// <0x07=> P07
// <0x10=> P10
// <0x11=> P11
// <0x20=> P20
// <0x21=> P21
// <0x22=> P22
// <0x23=> P23
// <0x24=> P24
// <0x25=> P25
// <0x26=> P26
// <0x27=> P27
#define PWM2_PWM21MAP_INIT 0x01
// PWM21 占空比配置
// 高八位<0-255>
#define PWM21DH_INIT 1
// 低八位<0-255>
#define PWM21DL_INIT 85
//
// PWM21 输出
// <0=> 禁止 PWM21 输出
// <1=> 允许 PWM21 输出
#define PWM2EN_PWM21_OEN_INIT 4
//
/*************************************** PWM21 输出配置失能 ***********************************************/
#else
#define PWM2_PWM21MAP_INIT 0x37
#define PWM21DH_INIT 0
#define PWM21DL_INIT 0
#define PWM2EN_PWM21_OEN_INIT 0
#endif
/*************************************** PWM2 模块死区配置 ***********************************************/
// PWM2 模块死区配置
#define PWM2_DTHL_ENABLE 0
/*************************************** PWM2 模块死区配置使能 ***********************************************/
#if PWM2_DTHL_ENABLE
// 高八位<0-255>
#define PWM2DTH_INIT 0
// 低八位<0-255>
#define PWM2DTL_INIT 0
//
/*************************************** PWM2 模块死区配置失能 ***********************************************/
#else
#define PWM2DTH_INIT 0
#define PWM2DTL_INIT 0
#endif
// PWM2 模块使能
// <0=> 关闭 PWM2 模块
// <1=> 打开 PWM2 模块(重新计数)
#define PWM2EN_PWM2_EN_INIT 1
// PWM2 中断开关
// <0=> 禁止 PWM2 中断
// <1=> 允许 PWM2 中断
#define PWM2C_PWM2IE_INIT 0
/*************************************** PWM2 失能 ***********************************************/
#else
#define PWM2EN_EFLT0_INIT 0
#define PWM2C_FLT0C_INIT 0
#define PWM2EN_FLT0_MODE_INIT 0
#define PWM2EN_PWM2M_INIT 0
#define PWM2C_PWM2S_INIT 0
#define PWM2C_CK0_INIT 0
#define PWM2PH_INIT 255
#define PWM2PL_INIT 255
#define PWM2OUT_INIT_ENABLE 0
#define PWM2_PWM2MAP_INIT 0x37
#define PWM2DH_INIT 0
#define PWM2DL_INIT 0
#define PWM2EN_PWM2_OEN_INIT 0
#define PWM21OUT_INIT_ENABLE 0
#define PWM2_PWM21MAP_INIT 0x37
#define PWM21DH_INIT 0
#define PWM21DL_INIT 0
#define PWM2EN_PWM21_OEN_INIT 0
#define PWM2_DTHL_ENABLE 0
#define PWM2DTH_INIT 0
#define PWM2DTL_INIT 0
#define PWM2EN_PWM2_EN_INIT 0
#define PWM2C_PWM2IE_INIT 0
//
#endif
/*************************************** PWM3 模块配置 ************************************************/
// PWM3 模块配置
// 配置 PWM3
#define PWM3_INIT_ENABLE 0
#if PWM3_INIT_ENABLE
// PWM3 模块输出模式
// <0=> PWM3 有效期间为高电平
// <3=> PWM3 有效期间为低电平
#define PWM3C_PWM3S_INIT 0
// PWM3 模块时钟源
// <0=> Fosc /1
// <1=> Fosc /2
// <2=> Fosc /4
// <3=> Fosc /8
// <4=> Fosc /16
// <5=> Fosc /32
// <6=> Fosc /64
// <7=> Fosc /128
#define PWM3C_PTCK3_INIT 2
// PWM3 中断开关
// <0=> 禁止 PWM3 中断
// <1=> 允许 PWM3 中断
#define PWM3C_PWM3IE_INIT 0
// PWM3 输出
// <0=> 禁止输出
// <1=> 允许输出
#define PWM3C_PWM3OEN_INIT 16
// PWM3 引脚映射
// <0x00=> P00
// <0x01=> P01
// <0x02=> P02
// <0x03=> P03
// <0x04=> P04
// <0x05=> P05
// <0x06=> P06
// <0x07=> P07
// <0x10=> P10
// <0x11=> P11
// <0x20=> P20
// <0x21=> P21
// <0x22=> P22
// <0x23=> P23
// <0x24=> P24
// <0x25=> P25
// <0x26=> P26
// <0x27=> P27
#define PWM3_PWM3MAP_INIT 0
// PWM3 模块使能
// <0=> 关闭 PWM3 模块
// <1=> 打开 PWM3 模块(重新计数)
#define PWM3C_PWM3EN_INIT 128
// PWM3 模块周期<0-255>
#define PWM3P_INIT 255
// PWM3 模块占空比<0-255>
#define PWM3D_INIT 85
/*************************************** PWM3 失能 ***********************************************/
#else
#define PWM3C_PWM3S_INIT 0
#define PWM3C_PTCK3_INIT 0
#define PWM3C_PWM3OEN_INIT 0
#define PWM3C_PWM3IE_INIT 0
#define PWM3C_PWM3EN_INIT 0
#define PWM3P_INIT 0
#define PWM3D_INIT 0
//
#endif
// PWM 中断优先级
// PWM 中断优先级
// <0=> 优先级 0(最低)
// <1=> 优先级 1
// <2=> 优先级 2
// <3=> 优先级 3(最高)
#define PWM_IP2_INIT 0
/*************************************** PWM 模块失能 ************************************************/
#else
#define PWM0_INIT_ENABLE 0
#define PWM0EN_EFLT0_INIT 0
#define PWM0C_FLT0C_INIT 0
#define PWM0EN_FLT0_MODE_INIT 0
#define PWM0EN_PWM0M_INIT 0
#define PWM0C_PWM0S_INIT 0
#define PWM0C_CK0_INIT 0
#define PWM0PH_INIT 255
#define PWM0PL_INIT 255
#define PWM0OUT_INIT_ENABLE 0
#define PWM0_PWM0MAP_INIT 0x37
#define PWM0DH_INIT 0
#define PWM0DL_INIT 0
#define PWM0EN_PWM0_OEN_INIT 0
#define PWM01OUT_INIT_ENABLE 0
#define PWM0_PWM01MAP_INIT 0x37
#define PWM01DH_INIT 0
#define PWM01DL_INIT 0
#define PWM0EN_PWM01_OEN_INIT 0
#define PWM0_DTHL_ENABLE 0
#define PWM0DTH_INIT 0
#define PWM0DTL_INIT 0
#define PWM0EN_PWM0_EN_INIT 0
#define PWM0C_PWM0IE_INIT 0
#define PWM1_INIT_ENABLE 0
#define PWM1EN_EFLT0_INIT 0
#define PWM1C_FLT0C_INIT 0
#define PWM1EN_FLT0_MODE_INIT 0
#define PWM1EN_PWM1M_INIT 0
#define PWM1C_PWM1S_INIT 0
#define PWM1C_CK0_INIT 0
#define PWM1PH_INIT 255
#define PWM1PL_INIT 255
#define PWM1OUT_INIT_ENABLE 0
#define PWM1_PWM1MAP_INIT 0x37
#define PWM1DH_INIT 0
#define PWM1DL_INIT 0
#define PWM1EN_PWM1_OEN_INIT 0
#define PWM11OUT_INIT_ENABLE 0
#define PWM1_PWM11MAP_INIT 0x37
#define PWM11DH_INIT 0
#define PWM11DL_INIT 0
#define PWM1EN_PWM11_OEN_INIT 0
#define PWM1_DTHL_ENABLE 0
#define PWM1DTH_INIT 0
#define PWM1DTL_INIT 0
#define PWM1EN_PWM1_EN_INIT 0
#define PWM1C_PWM1IE_INIT 0
#define PWM2_INIT_ENABLE 0
#define PWM2EN_EFLT0_INIT 0
#define PWM2C_FLT0C_INIT 0
#define PWM2EN_FLT0_MODE_INIT 0
#define PWM2EN_PWM2M_INIT 0
#define PWM2C_PWM2S_INIT 0
#define PWM2C_CK0_INIT 0
#define PWM2PH_INIT 255
#define PWM2PL_INIT 255
#define PWM2OUT_INIT_ENABLE 0
#define PWM2_PWM2MAP_INIT 0x37
#define PWM2DH_INIT 0
#define PWM2DL_INIT 0
#define PWM2EN_PWM2_OEN_INIT 0
#define PWM21OUT_INIT_ENABLE 0
#define PWM2_PWM21MAP_INIT 0x37
#define PWM21DH_INIT 0
#define PWM21DL_INIT 0
#define PWM2EN_PWM21_OEN_INIT 0
#define PWM2_DTHL_ENABLE 0
#define PWM2DTH_INIT 0
#define PWM2DTL_INIT 0
#define PWM2EN_PWM2_EN_INIT 0
#define PWM2C_PWM2IE_INIT 0
#define PWM3_INIT_ENABLE 0
#define PWM3C_PWM3S_INIT 0
#define PWM3C_PTCK3_INIT 0
#define PWM3C_PWM3OEN_INIT 0
#define PWM3C_PWM3IE_INIT 0
#define PWM3C_PWM3EN_INIT 0
#define PWM3P_INIT 0
#define PWM3D_INIT 0
#define PWM_IP2_INIT 0
#endif
//
/*************************************** ADC 配置 ************************************************/
//ADC配置
// 配置 ADC
#define ADC_INIT_ENABLE 0
#if ADC_INIT_ENABLE
// ADC 模块电源使能
#define ADCC0_ADCEN_INIT 128
// ADC 中断配置
#define ADC_INT_ENABLE 0
#if ADC_INT_ENABLE
// ADC 中断开关
// <0=> 关闭
// <1=> 打开
#define ADC_EADC_INIT 32
// ADC 中断优先级
// ADC 中断优先级
// <0=> 优先级 0(最低)
// <1=> 优先级 1
// <2=> 优先级 2
// <3=> 优先级 3(最高)
#define ADC_IP3_INIT 4
//
#else
#define ADC_EADC_INIT 0
#define ADC_IP3_INIT 0
#endif
// ADC 启动转换
#define ADCC0_ADCST_INIT 64
// 内部 VREF 配置
#define ADCC0_VREFS_INIT 4
// 内部基准电压源选择
// 内部参考电压选择为2V 时, VDD 电压须高于 2.7V;内部参考电压选择 3/4V 时, VDD 须高于内部参考电压 0.5V 以上。
// 系统进入掉电模式前,建议将 ADC 参考电压选择非 VDD,可以进一步降低系统功耗。
// <0=> VDD信号
// <1=> 内部4V
// <2=> 内部3V
// <3=> 内部2V
#define ADCC0_INREF_S_INIT 2
// Vref 输出
#define ADCC0_VREFO_INIT 0
//
// ADC测量通道选择
// <0x4F=> 内部VDD/4信号
// <0xCF=> 内部GND信号
// <0=> 外部输入通道0
// <1=> 外部输入通道1
// <2=> 外部输入通道2
// <3=> 外部输入通道3
// <4=> 外部输入通道4
// <5=> 外部输入通道5
// <6=> 外部输入通道6
// <7=> 外部输入通道7
// <8=> 外部输入通道8
// <9=> 外部输入通道9
// <10=> 外部输入通道10
#define ADCC1_INIT 0
// ADC转换数据长度
// <0=> 12 位数据(高八位,低四位)
// <1=> 12 位数据(高四位,低八位)
// <2=> 10 位数据(高八位,低二位)
// <3=> 10 位数据(高二位,低八位)
#define ADCC2_ADCL_ALIGN_INIT 64
// ADC转换时钟
// 为了保证精度,ADC转换设置要在
// <0=> ADC时钟频率4MHZ
// <1=> ADC时钟频率1MHZ/2MHZ
// <3=> ADC时钟频率小于1MHZ
#define ADCC2_ADCTS_INIT 0
// ADC 时钟
// <0=> Fosc /2
// <1=> Fosc /4
// <2=> Fosc /6
// <3=> Fosc /8
// <4=> Fosc /12
// <5=> Fosc /16
// <6=> Fosc /24
// <7=> Fosc /32
#define ADCC2_ADCS_INIT 0
// 允许ADC唤醒
#define ADCWC_AMWEN_INIT 0
//
#else
#define ADC_INT_ENABLE 0
#define ADC_EADC_INIT 0
#define ADC_IP3_INIT 0
#define ADCC0_ADCEN_INIT 0
#define ADCC0_ADCST_INIT 0
#define ADCC0_VREFS_INIT 0
#define ADCC0_INREF_S_INIT 0
#define ADCC0_VREFO_INIT 0
#define ADCC1_INIT 0
#define ADCC2_ADCL_ALIGN_INIT 0
#define ADCC2_ADCTS_INIT 0
#define ADCC2_ADCS_INIT 0
#define ADCWC_AMWEN_INIT 0
#endif
/*************************************** UART1 配置 ************************************************/
//UART1 配置
// 配置 UART1
#define UART1_INIT_ENABLE 0
/*************************************** UART1 模块使能 ************************************************/
#if UART1_INIT_ENABLE
// 串行接收使能控制位
#define UART1_REN_INIT 0x00
// UART1 中断配置
#define UART1_INT_ENABLE 0
/*************************************** UART1中断 使能 ************************************************/
#if UART1_INT_ENABLE
// UART1 中断开关
// <0=> 关闭
// <1=> 打开
#define UART1_ES1_INIT 0
// UART1 中断优先级
// UART1 中断优先级
// <0=> 优先级 0(最低)
// <1=> 优先级 1
// <2=> 优先级 2
// <3=> 优先级 3(最高)
#define UART1_IP1_INIT 0
//
#else
#define UART1_ES1_INIT 0
#define UART1_IP1_INIT 0
#endif
// TXD 引脚映射
// <0x37=> Not Used
// <0x00=> P00
// <0x01=> P01
// <0x02=> P02
// <0x03=> P03
// <0x04=> P04
// <0x05=> P05
// <0x06=> P06
// <0x07=> P07
// <0x10=> P10
// <0x11=> P11
// <0x20=> P20
// <0x21=> P21
// <0x22=> P22
// <0x23=> P23
// <0x24=> P24
// <0x25=> P25
// <0x26=> P26
// <0x27=> P27
#define UART1_TXDMAP_INIT 1
// RXD 引脚映射
// <0x37=> Not Used
// <0x00=> P00
// <0x01=> P01
// <0x02=> P02
// <0x03=> P03
// <0x04=> P04
// <0x05=> P05
// <0x06=> P06
// <0x07=> P07
// <0x10=> P10
// <0x11=> P11
// <0x20=> P20
// <0x21=> P21
// <0x22=> P22
// <0x23=> P23
// <0x24=> P24
// <0x25=> P25
// <0x26=> P26
// <0x27=> P27
#define UART1_RXDMAP_INIT 0
/*************************************** UART 方式0 配置 ************************************************/
// 方式0
#define UART1_MODEL0_ENABLE 0x00
/*************************************** 方式0 使能 ************************************************/
#if UART1_MODEL0_ENABLE
// 串口模式0 的通信速度
// <0=> 串口模式0 时钟为 Fosc /12
// <1=> 串口模式0 时钟为 Fosc /2
#define UART1_MODEL0_UX6_INIT 0x00
/*************************************** 方式0 失能 ************************************************/
#else
#define UART1_MODEL0_UX6_INIT 0x00
#endif
//
/*************************************** UART 方式1 配置 ************************************************/
// 方式1
#define UART1_MODEL1_ENABLE 0x00
/*************************************** 方式1 使能 ************************************************/
#if UART1_MODEL1_ENABLE
// 检测停止位使能
// <0=> 不检测停止位,停止位无论是 0 还是 1 都会置位 RI
// <1=> 允许停止位确认检验,只有有效的停止位“1”才能置位 RI
#define UART1_MODEL1_SM2_INIT 0x00
/*************************************** 方式1 失能 ************************************************/
#else
#define UART1_MODEL1_SM2_INIT 0x00
#endif
//
/*************************************** UART 方式2 配置 ************************************************/
// 方式2
#define UART1_MODEL2_ENABLE 0x00
/*************************************** 方式2 使能 ************************************************/
#if UART1_MODEL2_ENABLE
// 波特率加倍
// <0=> 波特率为系统时钟 Fosc 的 1/64
// <1=> 波特率为系统时钟 Fosc 的 1/32
#define UART1_MODEL2_SMOD_INIT 0x00
// 多机通信使能
#define UART1_MODEL2_SM2_INIT 0x00
/*************************************** 方式2 多机通讯使能 ************************************************/
#if UART1_MODEL2_SM2_INIT
// 从机地址<0-255>
#define UART1_MODEL2_SADDR_INIT 0
// 从机掩码<0-255>
#define UART1_MODEL2_SADEN_INIT 0
/*************************************** 方式2 多机通讯失能 ************************************************/
#else
#define UART1_MODEL2_SADDR_INIT 0
#define UART1_MODEL2_SADEN_INIT 0
#endif
//
/*************************************** 方式2 失能 ************************************************/
#else
#define UART1_MODEL2_SMOD_INIT 0x00
#define UART1_MODEL2_SM2_INIT 0x00
#define UART1_MODEL2_SADDR_INIT 0
#define UART1_MODEL2_SADEN_INIT 0
#endif
//
/*************************************** UART 方式3 配置 ************************************************/
// 方式3
#define UART1_MODEL3_ENABLE 0x00
/*************************************** 方式3 使能 ************************************************/
#if UART1_MODEL3_ENABLE
// 多机通信使能
#define UART1_MODEL3_SM2_INIT 0x00
/*************************************** 方式3 多机通讯使能 ************************************************/
#if UART1_MODEL3_SM2_INIT
// 从机地址<0-255>
#define UART1_MODEL3_SADDR_INIT 0
// 从机掩码<0-255>
#define UART1_MODEL3_SADEN_INIT 0
/*************************************** 方式3 多机通讯失能 ************************************************/
#else
#define UART1_MODEL3_SADDR_INIT 0
#define UART1_MODEL3_SADEN_INIT 0
#endif
//
/*************************************** 方式3 失能 ************************************************/
#else
#define UART1_MODEL3_SM2_INIT 0x00
#define UART1_MODEL3_SADDR_INIT 0
#define UART1_MODEL3_SADEN_INIT 0
#endif
//
/*************************************** UART1 模块失能 ************************************************/
#else
#define UART1_MODEL0_ENABLE 0x00
#define UART1_MODEL1_ENABLE 0x00
#define UART1_MODEL2_ENABLE 0x00
#define UART1_MODEL3_ENABLE 0x00
#define UART1_INT_ENABLE 0
#define UART1_ES1_INIT 0
#define UART1_IP1_INIT 0
#define UART1_TXDMAP_INIT 0
#define UART1_RXDMAP_INIT 0
#define UART1_MODEL0_UX6_INIT 0x00
#define UART1_MODEL1_SM2_INIT 0x00
#define UART1_MODEL2_SMOD_INIT 0x00
#define UART1_MODEL2_SM2_INIT 0x00
#define UART1_MODEL2_SADDR_INIT 0
#define UART1_MODEL2_SADEN_INIT 0
#define UART1_MODEL3_SM2_INIT 0x00
#define UART1_MODEL3_SADDR_INIT 0
#define UART1_MODEL3_SADEN_INIT 0
#endif
//
/*************************************** UART2 配置 ************************************************/
//UART2 配置
// 配置 UART2
#define UART2_INIT_ENABLE 0
/*************************************** UART2 模块使能 ************************************************/
#if UART2_INIT_ENABLE
// 串行接收使能控制位
#define UART2_REN_INIT 0x00
// UART2 中断配置
#define UART2_INT_ENABLE 0
/*************************************** UART2中断 使能 ************************************************/
#if UART2_INT_ENABLE
// UART2 中断开关
// <0=> 关闭
// <1=> 打开
#define UART2_ES2_INIT 0
// UART2 中断优先级
// UART2 中断优先级
// <0=> 优先级 0(最低)
// <1=> 优先级 1
// <2=> 优先级 2
// <3=> 优先级 3(最高)
#define UART2_IP1_INIT 0
//
#else
#define UART2_ES2_INIT 0
#define UART2_IP1_INIT 0
#endif
// TXD 引脚映射
// <0x37=> Not Used
// <0x00=> P00
// <0x01=> P01
// <0x02=> P02
// <0x03=> P03
// <0x04=> P04
// <0x05=> P05
// <0x06=> P06
// <0x07=> P07
// <0x10=> P10
// <0x11=> P11
// <0x20=> P20
// <0x21=> P21
// <0x22=> P22
// <0x23=> P23
// <0x24=> P24
// <0x25=> P25
// <0x26=> P26
// <0x27=> P27
#define UART2_TXD2MAP_INIT 1
// RXD 引脚映射
// <0x37=> Not Used
// <0x00=> P00
// <0x01=> P01
// <0x02=> P02
// <0x03=> P03
// <0x04=> P04
// <0x05=> P05
// <0x06=> P06
// <0x07=> P07
// <0x10=> P10
// <0x11=> P11
// <0x20=> P20
// <0x21=> P21
// <0x22=> P22
// <0x23=> P23
// <0x24=> P24
// <0x25=> P25
// <0x26=> P26
// <0x27=> P27
#define UART2_RXD2MAP_INIT 0
// 工作方式选择
// <0x00=> 8 位 UART,定时器 5 的溢出率/16
// <0x01=> 9 位 UART,定时器 5 的溢出率/16
// 第九位检测使能
// <0x00=> 不检测
// <0x01=> 检测
#define UART2_S2CON2_INIT 0
/*************************************** UART2 模块失能 ************************************************/
#else
#define UART2_INT_ENABLE 0
#define UART2_ES2_INIT 0
#define UART2_IP1_INIT 0
#define UART2_TXD2MAP_INIT 0x37
#define UART2_RXD2MAP_INIT 0x37
#define UART2_S2CON2_INIT 0
#endif
//
/*************************************** SPI 配置 ************************************************/
//SPI 配置
// 配置 SPI
#define SPI_INIT_ENABLE 0
/*************************************** SPI 模块使能 ************************************************/
#if SPI_INIT_ENABLE
// SS 引脚使能位
// SPI 引脚使能位
// 传送方向选择
// <0x00=> MSB先发送
// <0x01=> LSB先发送
// 主/从机模式选择
// <0x00=> 从机模式
// <0x01=> 主机模式
// SPI 时钟极性选择
// <0x00=> SCK 空闲时为低电平
// <0x01=> SCK 空闲时为高电平
// SPI 时钟相位选择
// <0x00=> 数据在 SPI 时钟的第一个边沿采样
// <0x01=> 数据在 SPI 时钟的第二个边沿采样
// SPI 时钟速率选择
// <0x00=> Fosc /4
// <0x01=> Fosc /16
// <0x02=> Fosc /64
// <0x03=> Fosc /128
#define SPI_SPCTL_INIT 0x00
// MOSI 引脚映射
// <0x37=> Not Used
// <0x00=> P00
// <0x01=> P01
// <0x02=> P02
// <0x03=> P03
// <0x04=> P04
// <0x05=> P05
// <0x06=> P06
// <0x07=> P07
// <0x10=> P10
// <0x11=> P11
// <0x20=> P20
// <0x21=> P21
// <0x22=> P22
// <0x23=> P23
// <0x24=> P24
// <0x25=> P25
// <0x26=> P26
// <0x27=> P27
#define SPI_MOSIMAP_INIT 0
// MISO 引脚映射
// <0x37=> Not Used
// <0x00=> P00
// <0x01=> P01
// <0x02=> P02
// <0x03=> P03
// <0x04=> P04
// <0x05=> P05
// <0x06=> P06
// <0x07=> P07
// <0x10=> P10
// <0x11=> P11
// <0x20=> P20
// <0x21=> P21
// <0x22=> P22
// <0x23=> P23
// <0x24=> P24
// <0x25=> P25
// <0x26=> P26
// <0x27=> P27
#define SPI_MISOMAP_INIT 0
// SCK 引脚映射
// <0x37=> Not Used
// <0x00=> P00
// <0x01=> P01
// <0x02=> P02
// <0x03=> P03
// <0x04=> P04
// <0x05=> P05
// <0x06=> P06
// <0x07=> P07
// <0x10=> P10
// <0x11=> P11
// <0x20=> P20
// <0x21=> P21
// <0x22=> P22
// <0x23=> P23
// <0x24=> P24
// <0x25=> P25
// <0x26=> P26
// <0x27=> P27
#define SPI_SCKMAP_INIT 0x37
// SS 引脚映射
// <0x37=> Not Used
// <0x00=> P00
// <0x01=> P01
// <0x02=> P02
// <0x03=> P03
// <0x04=> P04
// <0x05=> P05
// <0x06=> P06
// <0x07=> P07
// <0x10=> P10
// <0x11=> P11
// <0x20=> P20
// <0x21=> P21
// <0x22=> P22
// <0x23=> P23
// <0x24=> P24
// <0x25=> P25
// <0x26=> P26
// <0x27=> P27
#define SPI_SSMAP_INIT 0x37
// SPI 中断配置
#define SPI_INT_ENABLE 0
/*************************************** SPI中断 使能 ************************************************/
#if SPI_INT_ENABLE
// SPI 中断开关
// <0=> 关闭
// <1=> 打开
#define SPI_ESPI_INIT 0
// SPI 中断优先级
// SPI 中断优先级
// <0=> 优先级 0(最低)
// <1=> 优先级 1
// <2=> 优先级 2
// <3=> 优先级 3(最高)
#define SPI_IP2_INIT 0
//
#else
#define SPI_ESPI_INIT 0
#define SPI_IP2_INIT 0
#endif
//
#else
#define SPI_SPCTL_INIT 0x00
#define SPI_INT_ENABLE 0
#define SPI_ESPI_INIT 0
#define SPI_IP2_INIT 0
#endif
//------------- <<< end of configuration section >>> ---------------------------
#define EXIT_INT01_PINS_INIT (EXIT1_INT1_PINS_INIT + EXIT0_INT0_PINS_INIT)
#define EXIT_PITS0_INIT (EXIT0_IT0_INIT + EXIT1_IT1_INIT + EXIT2_IT2_INIT + EXIT3_IT3_INIT)
#define EXIT_PITS1_INIT (EXIT4_IT4_INIT + EXIT5_IT5_INIT + EXIT6_IT6_INIT + EXIT7_IT7_INIT)
#define EXIT_PITS2_INIT (EXIT8_IT8_INIT + EXIT9_IT9_INIT + EXIT10_IT10_INIT + EXIT11_IT11_INIT)
#define EXIT_PITS3_INIT (EXIT12_IT12_INIT + EXIT13_IT13_INIT + EXIT14_IT14_INIT + EXIT15_IT15_INIT)
#define EXIT_PINTE0_INIT (EXIT2_EINT2_INIT + EXIT3_EINT3_INIT + EXIT4_EINT4_INIT + EXIT5_EINT5_INIT \
+ EXIT6_EINT6_INIT + EXIT7_EINT7_INIT)
#define EXIT_PINTE1_INIT (EXIT8_EINT8_INIT + EXIT9_EINT9_INIT + EXIT10_EINT10_INIT + EXIT11_EINT11_INIT \
+ EXIT12_EINT12_INIT + EXIT13_EINT13_INIT + EXIT14_EINT14_INIT + EXIT15_EINT15_INIT)
#define INT_IE_INIT (WDT_EWT_INIT + EXIT0_EX0_INIT + EXIT1_EX1_INIT + TIMER0_ET0_INIT + TIMER1_ET1_INIT + \
UART1_ES1_INIT + UART2_ES2_INIT)
#define INT_IE1_INIT (EXIT2_7_EX2_7_INIT + EXIT8_15_EX8_15_INIT + TIMER3_ET3_INIT + TIMER4_ET4_INIT \
+ TIMER5_ET5_INIT + ADC_EADC_INIT + UART1_ES1_INIT+ SPI_ESPI_INIT)
#define INT_IP0_INIT (EXIT1_IP0_INIT + EXIT0_IP0_INIT + TIMER0_IP0_INIT + TIMER1_IP0_INIT)
#define INT_IP1_INIT (WDT_IP1_INIT + UART1_IP1_INIT +UART2_IP1_INIT + LVD_IP1_INIT)
#define INT_IP2_INIT (TIMER3_IP2_INIT + TIMER4_IP2_INIT + PWM_IP2_INIT + SPI_IP2_INIT)
#define INT_IP3_INIT (EXIT8_15_IP3_INIT + EXIT2_7_IP3_INIT + TIMER5_IP3_INIT + ADC_IP3_INIT)
#define TIMER01_TCON_INIT (TIMER0_TR0_INIT + TIMER1_TR1_INIT)
#define TIMER01_TCON1_INIT (TIMER0_T0OUT_INIT + TIMER0_T0X12_INIT + TIMER1_T1OUT_INIT + TIMER1_T1X12_INIT)
#define TIMER01_TMOD_INIT (TIMER0_GATE0_INIT + TIMER0_CT0_INIT + TIMER0_M0_INIT \
+ TIMER1_GATE1_INIT + TIMER1_CT1_INIT + TIMER1_M1_INIT )
#define TIMER3_TCON_INIT (TIMER3_TR3_INIT + TIMER3_T3PD_INIT + TIMER3_T3PS_INIT + TIMER3_T3CLKS_INIT)
#define TIMER4_TCON_INIT (TIMER4_TC4_INIT + TIMER4_T4PS_INIT + TIMER4_T4M_INIT + TIMER4_TR4_INIT + TIMER4_T4CLKS_INIT)
#define TIMER5_TCON_INIT (TIMER5_T5PS_INIT + TIMER5_T5M_INIT + TIMER5_TR5_INIT + TIMER5_EXEN5_INIT)
#define TIMER5_TCON1_INIT (TIMER5_CAPM_INIT)
#define PWM0_PWM0EN_INIT (PWM0EN_FLT0_MODE_INIT + PWM0EN_EFLT0_INIT + PWM0EN_PWM0M_INIT + PWM0EN_PWM01_OEN_INIT \
+ PWM0EN_PWM0_OEN_INIT+ PWM0EN_PWM0_EN_INIT )
#define PWM0_PWM0C_INIT (PWM0C_PWM0IE_INIT + PWM0C_FLT0C_INIT + PWM0C_PWM0S_INIT + PWM0C_CK0_INIT )
#define PWM1_PWM1EN_INIT (PWM1EN_FLT0_MODE_INIT + PWM1EN_EFLT0_INIT + PWM1EN_PWM1M_INIT + PWM1EN_PWM11_OEN_INIT \
+ PWM1EN_PWM1_OEN_INIT+ PWM1EN_PWM1_EN_INIT )
#define PWM1_PWM1C_INIT (PWM1C_PWM1IE_INIT + PWM1C_FLT0C_INIT + PWM1C_PWM1S_INIT + PWM1C_CK0_INIT )
#define PWM2_PWM2EN_INIT (PWM2EN_FLT0_MODE_INIT + PWM2EN_EFLT0_INIT + PWM2EN_PWM2M_INIT + PWM2EN_PWM21_OEN_INIT \
+ PWM2EN_PWM2_OEN_INIT+ PWM2EN_PWM2_EN_INIT )
#define PWM2_PWM2C_INIT (PWM2C_PWM2IE_INIT + PWM2C_FLT0C_INIT + PWM2C_PWM2S_INIT + PWM2C_CK0_INIT )
#define PWM3_PWM3C_INIT (PWM3C_PWM3IE_INIT + PWM3C_PWM3EN_INIT + PWM3C_PWM3OEN_INIT + PWM3C_PWM3S_INIT + PWM3C_PTCK3_INIT)
#define ADC_ADCC0_INIT (ADCC0_ADCEN_INIT + ADCC0_ADCST_INIT + ADCC0_VREFO_INIT + ADCC0_VREFS_INIT + ADCC0_INREF_S_INIT)
#define ADC_ADCC1_INIT (ADCC1_INIT)
#define ADC_ADCC2_INIT (ADCC2_ADCL_ALIGN_INIT + ADCC2_ADCTS_INIT + ADCC2_ADCS_INIT)
#define ADC_ADCWC_INIT (ADCWC_AMWEN_INIT)
#define UART1_SCON_INIT (UART1_REN_INIT)
#if UART1_MODEL0_ENABLE
#define UART1_MODEL0_SCON2_INIT (UART1_MODEL0_UX6_INIT)
#elif UART1_MODEL1_ENABLE
#define UART1_MODEL1_SCON2_INIT (UART1_MODEL1_SM2_INIT + 0X02)
#elif UART1_MODEL2_ENABLE
#define UART1_MODEL2_SCON2_INIT (UART1_MODEL2_SMOD_INIT + UART1_MODEL2_SM2_INIT +0X04 )
#elif UART1_MODEL3_ENABLE
#define UART1_MODEL3_SCON2_INIT (UART1_MODEL3_SM2_INIT + 0X06 )
#endif
/*
*********************************************************************************************************
* 函数声明
*********************************************************************************************************
*/
void System_Init(void);
#endif // HC89S_CONFIG_H_