STM8S TIM4 初始化设置

时间:2024-03-26 16:34:38
#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) ; //开启定时器