关于延时程序的问题

2019-03-24 15:31发布

请问void Delay_ms(unsigned long nValue)//毫秒为单位,8MHz为主时钟
{
    unsigned long nCount;
    int i;
    unsigned long j;
    nCount = 2667;
    for(i = nValue;i > 0;i--)
    {
     for(j = nCount;j > 0;j--);
    }
    return;
}
中2667如何得来的 ,是一条指令需要3个时钟周期么,2667=8000/3,对吗?
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
wstt
2019-03-24 20:25
确定延时时间的办法是观察上面这段C代码编译成的汇编代码,
然后看每条汇编代码所用到的指令,每条汇编指令对应的周期是一定的,
这样再根据跳转次数就能够计算延时时间了。
如果是精确的延时建议用定时器

一周热门 更多>

相关问题

    相关文章