打印
[STM32F1]

关于IAR环境软件微妙延时的求助

[复制链接]
1017|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
化雨眠66|  楼主 | 2015-9-6 21:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void SysCtlDelay(unsigned long ulCount)
{
__asm("    subs    r0, #1\n"
          "    bne.n   SysCtlDelay\n"
          "    bx      lr");
}
void sys_delay_us(unsigned long us)
{
RCC_ClocksTypeDef  RCC_Clocks;
    unsigned long cnt = 0;
    unsigned long cpu_clk = 0;
RCC_GetClocksFreq(&RCC_Clocks);
cpu_clk = RCC_Clocks.HCLK_Frequency;
    cnt = (unsigned long)(us)*(cpu_clk/3000000);
    if(cnt<1)
    cnt = 1;
    SysCtlDelay(cnt);
}

芯片是STM32F103VET6,环境是IAR。
sys_delay_us()函数是微妙延时,但是我看不懂怎么就是微妙延时的呢,那段汇编怎么回事呢?
请高手释疑
沙发
毁灭2012| | 2015-9-7 07:24 | 只看该作者
毫秒级的延时一般都会用到寄存器。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

77

帖子

8

粉丝