程老师说,许多大公司的嵌入式软件工程师不会使用万用表、示波器等这些常用工具,如果你会使用的话,老板会对你刮目相看的。下面是用示波器测试延时程序Delay()执行所用时间的代码。
#include "config.h"
#include "delay.h"
#define LED1 1<<16 //p1.16
/****************************************************************************
* 名称:initSystem()
* 功能:初始化IO
****************************************************************************/
void initSystem(void)
{
IO1DIR = LED1;
IO1SET = LED1;
}
/****************************************************************************
* 名称:main()
* 功能:测试delay(40)和delay(4)所用时间
* 说明:
1、用示波器测试时间的方法,宏定义一个IO引脚,并初始化,在main函数中给这个IO引脚一个高电平,并延时;给这个IO引脚一个低电平,并延时。用示波器的笔一头指向ARM板的低电平,一头指向IO引脚的高电平。
2、估计程序时间,执行一条指令大概22纳秒,delay()中for语句是五条指令,一个for执行是100纳秒,for中的(i=40,j=5000)i*j*100=40*50000*100=200,000,000纳秒,(1秒=1000毫秒,1毫秒=1000微秒,1微秒=1000纳秒,1纳秒=1000皮秒)200,000,000纳秒等于200毫秒。防抖的延时程序一般介于20-25毫秒之间
****************************************************************************/
int main(void)
{
initSystem();
while(1)
{
IO1CLR=LED1;
delay(4);
IO1SET=LED1;
delay(40);
}
return 0;
}
文章评论(0条评论)
登录后参与讨论