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