1、話不多說,上代碼:
#include "wm_hal.h"
#include "assert.h"
//160MZH 53個nop就是1us
//240Mhz 80個nop就是1us
//可以實現870us以下的延時,多了的 就不要用了。不準。
//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();
}
}
2、示波器測試
1us:
10us:
20us:
100us:
500us:
870us:
能否提供80M,40M和2M的部分?