本帖最后由 liulangr 于 2019-1-9 11:33 编辑
/*--------------------------------------------------------------------------
*函数名称:Delay_us
*函数功能:定时器us级延时
*入口参数:uiDelay_us延时us
*出口参数:NULL
--------------------------------------------------------------------------*/
void Delay_us(unsigned int uiDelay_us)
{
uiTimeCnt = uiDelay_us; while(0 != uiTimeCnt ) {
}
}
uiTimeCnt在定时器中断中采用uiTimeCnt--即可
我编写的内部24M/1T的IRC15W107上使用,用起来感觉还行,你可以参考一下。
不过对于低频的不太适用,因为每个指令可能超过1us,对于12M/12T,TH0 = (65536-65535)/256,TL0 = (65536-65535)%256中断一次就是1us了,所以比较不太好弄,高频还可以采用此方案
|