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 個回答

撰寫答案

請登錄後再發布答案,點擊登錄

發布
問題

分享
好友

手機
浏覽

掃碼手機浏覽