W801,有没有_nop的操作可以实现方便的软件延时?

发布于 2022-05-22 18:50:11

在做模拟I2C的时候,需要用到软件延时,不知道W801有没有类似STM32的_nop操作实现方便的软件延时

查看更多

关注者
0
被浏览
2.5k
Mrzhao
Mrzhao 认证专家 2022-05-22
一个嵌入式爱好者。CSDN主页:https://blog.csdn.net/qq_37280428?spm=1011.2415.3001.5343

有nop

#include "wm_hal.h"
#include "assert.h"


//160MZH  53个nop就是1us
//240Mhz  80个nop就是1us
//可以实现1ms以下的延时,多了的 就不要用了。不准。
//5u以下的延时会存在误差 注意。
static void Delay_Us(uint8_t freq,uint32_t time)
{
    uint32_t i;
    uint16_t num = 90;
    if(time > 1000)
    {
        printf("delay time is too lager than 1000, please use HAL_Delay()\r\n");
    }
    switch(freq)
    {
        case 240: num = 80;break;
        case 160: num = 53;break;
        default: printf("delay input freq err...default set 240MHZ us time \r\n ");break;
    }
    
    for (i = 0; i < (num)*time; i++)
    {
        __NOP();
    }
}
1 个回答

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览