CreatBotAirHeatingV2/app/Hc89s_Config.h
2023-03-06 09:51:44 +08:00

2953 lines
94 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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