我是用avr上转型过来的,我也遇到这样的困惑,后来发现arm实在太快了,延时函数很好写,这是我随手写的,精度在us级的表现都不错。如果要验证的话在keil仿真看看就知道了。
#include "delay.h"
void delay_ns(unsigned long int t)
{
unsigned long int i;
unsigned long int j;
j=Fclk*t;
for(i = 0; i < j; i++);
}
void delay_nms(unsigned long int t)
{
unsigned long int i;
unsigned long int j;
j=Fclk/1000*t;
for(i = 0; i < j; i++);
}
void delay_nus(unsigned long int t)
{
unsigned long int i;
unsigned long int j;
j=Fclk/1000000*t;
for(i = 0; i < j; i++);
}
|
头文件:
#ifndef __delay_H
#define __delay_H
#define Fclk 60000000
//**********************函数声明***************************
void delay_ns (unsigned long int t);
void delay_nms(unsigned long int t);
void delay_nus(unsigned long int t);
//*********************************************************
#endif
关键字:FCLK 软件延时 『本文转载自网络,版权归原作者所有,如有侵权请联系删除』