zl程序教程

您现在的位置是:首页 >  其它

当前栏目

STM8S TIM4 初始化设置

设置 初始化
2023-09-27 14:23:52 时间
#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) ; //开启定时器