如下是我写的一个简单的延时,但这个时间是不是按如下大概计算的呢?(还有,刚上来就看到一大堆的发票广告 寒 _ _ | |
void Delay(void)
{
INT32U i;
INT32U start_Cycle = 0;
INT32U end_Cycle = 0;
INT32U diff_cycle = 0;
asm("%0 = CYCLES;":"=d"(start_Cycle));
for(i = 0; i < 1000; i++)
{
asm ("nop;");
}
asm("%0 = CYCLES;":"=d"(end_Cycle));
diff_cycle = end_Cycle - start_Cycle;
}
diff_cycle = 13020
如果内核时钟为400MHz,那是不是说延时时间为13020 * (1 / 400)us = 32.55us呢?