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的部分?