|
合泰芯片用定时器写一个精确的100us延时程序
[复制链接]
用HT66F018芯片,先进行定时器初始化
void TIM_INIT(void)
{
_tmpc = 0x00;
//TM0 模块初始化
_tm0c0 = 0b01010000; //计数器频率1MHz
_tm0c1 = 0b11000000; //计数模式
_tm0al = 100; //100us定时计数值
_tm0ah = 0; //100us定时计数值
_t0on = 1;
_t0ae = 1;
_mf0e = 1; //Timer0 interrupt
_emi=1;
}
接下来是不是应该写一个延时函数,这个是ms的,也不知道精不精确
void Delay_ms(unsigned int dly)
{
unsigned int i;
for(i=0;i
{
GCC_DELAY(984);
}
}
还有可以用nop写的
void Delay(unsigned int nop_step)
{
while(nop_step != 0)
{
nop_step--;
}
}
但是这样的结果精确吗?不知道周期也不知道怎么算
|
|