以下是对HT66F04 定时器TM0定时器的初始化,定时100us中断一次
#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
#define T100US_VAL 100*fsys
#define T125US_VAL 125*fsys
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;//中断使能
}
#pragma vector Timer0_isr @ 0x0c
void Timer0_isr(void)
{
_t0af = 0;
}
合泰 HT66F04 定时器初始化
最新推荐文章于 2024-03-05 21:02:43 发布