本帖最后由 shen_hao 于 2017-8-13 21:50 编辑
小弟今天想写一个准确的延迟函数,因为之前一直使用CLK_SysTickDelay(),所以今天写这个函数轨迹也是从此开始,因为之前是因为CLK_SysTickDelay()这个函数传的值过大,导致延迟不准确,所以设置为1000,来避免这个问题。奇怪的事情是这两个while都没有想象中的1s,而且第二个while,一直等30s才延迟结束,最后还是用time_delay()准确。我的问题分两部分,第一:这两个while的延迟时间为什么差别这么大???第二:我这个函数怎么写才好???
void delay_s(uint32_t second)
{
uint32_t i;
uint32_t j = second*1000;
// for(i=0;i<second;i++)
// {
//// while(j>0) //这
//// {
//// CLK_SysTickDelay(1000);
//// j--;
//// }
//// while(j--)
//// CLK_SysTickDelay(1000);
//
//
// }
TIMER_Delay(TIMER0, second*1000000);
}
|