天天看點

合泰 HT66F30 定時器初始化

#define     TM0_RUN     (0<<7) //TM0運作
#define     TM0_PAUST    (1<<7) //TM0暫停

#define     TM0_DIV4     (0<<4) //Fsys/4 
#define     TM0_DIV1     (1<<4)// Fsys 
#define     TM0_DIVH16    (2<<4)  //Fh/16
#define     TM0_DIVH64   (3<<4) //Fh/64
#define     TM0_FTBC   (4<<4) //Ftbc
#define     TM0_YULIU   (5<<4) //保留
#define     TM0_TCKS   (6<<4) //TCK0上升沿時鐘
#define     TM0_TCKX   (7<<4) //TCK0下降沿時鐘

#define     TM0_ON      (1<<3)//TM0ON
#define     TM0_OFF     (0<<3)//TM0ON

#define     BIJIAO_MODE      (0<<6)//b比較比對輸出模式
#define     NONO_MODE     (1<<6)//未定義模式
#define     PWM_MODE      (2<<6)//PWM輸出模式
#define     TM0_MODE     (3<<6)//定時/計數模式

#define     TM0_PPP	(0<<0) //p比對
#define     TM0_PPA	(1<<0) //A比對
#define  fsys  12/4//12M / 4分頻設定_tm0c0



//#define	T50US_VAL 50*fsys//(1024-fsys*50)
#define	T100US_VAL 100*fsys//724//(1024-fsys*100)//==724

void tm0_init(void)
{
	_tm0c0	= TM0_RUN|TM0_DIV4|TM0_OFF;//|0x02
	
	_tm0c1	= TM0_MODE|TM0_PPA;
	
		
//	_tm0dl	=T100US_VAL % 256;// 212;//			//設定定時器0	
//	_tm0dh	=T100US_VAL / 256;// 2;
	
	_tm0al	=T100US_VAL% 256; //212;T100US_VAL			//設定定時器0	
	_tm0ah	=T100US_VAL/256;//2; T100US_VAL

	_t0af	= 0;//中斷請求标志位
	_t0on	= 1;//定時器開始計時
	_mf0e	= 1;//多功能中斷請求标志
	_t0ae	= 1;//中斷使能
}