#define TIM4_DIV1 (unsigned char)0#define TIM4_DIV2 (unsigned char)1#define TIM4_DIV4 (unsigned char)2#define TIM4_DIV8 (unsigned char)3#define TIM4_DIV16 (unsigned char)4#define TIM4_DIV32 (unsigned char)5#define TIM4_DIV64 (unsigned char)6#define TIM4_DIV128 (unsigned char)7#define TIM4_CNT_ENB TIM4_CR1 |= 0X01 ; //开启定时器#define TIM4_CNT_DIS TIM4_CR1 &= ~0X01 ; //关闭定时器 #define TIM4_IEN_ENB TIM4_IER |= 0X01 ; //开启定时器中断#define TIM4_IEN_DIS TIM4_IER &= ~0X01 ; //关闭定时器中断 //*************************************// 函数名称:Init_TIM4// 函数功能:定时器6初始化 // 入口参数:定时器计数次数 分频系数// 出口参数:无/***************************************/void Init_TIM4(uint8 Tcon,uint8 Pscr){ TIM4_IER = 0x00 ; // 禁止中断 TIM4_EGR = SETB0 ; // 允许产生更新事件 TIM4_PSCR = Pscr ; //计数器时钟=主时钟 //设定重装载时的寄存器值,255是最大值 TIM4_ARR = Tcon;//80 ; // 0.25U*80 = 20U TIM4_CNTR = 0 ; // 设定计数器的初值 // b0 = 1,允许计数器工作 b1 = 0,允许更新// 设置控制器,启动定时器 TIM4_CR1 = 0 ;//(SETB0|SETB0) ; // 允许更新中断 b1 = 0,允许更新 TIM4_IER = 0x01; }//*************************************// 函数名称:TIM4_ENB// 函数功能:定时器6初始化 0.25U计数一次// 入口参数:定时器计数次数// 出口参数:无/***************************************/void TIM4_Enb(uint8 EN){ if(EN == ENB) { TIM4_CNT_ENB ; TIM4_IEN_ENB ; } else { TIM4_CNT_DIS ; TIM4_IEN_DIS ; }}//---应用实例---- //TIM4初始化设置 Init_TIM4(125,TIM4_DIV16); //16M/16=1M 定时125U TIM4_Enb(ENB) ; //开启定时器