在《嵌入式C实现延时程序的不同变量的区别(一)》文中讨论了不同的数据类型对延时函数的影响。文中以整型和字符型变量作为延时函数的参数对比了两者的区别。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
本文来看一下不同的数据生命周期对延时函数的影响,也就是全局变量和局部变量在延时函数上的区别。Delay1()是以无符号整型全局变量t传递延时参数,Delay2()以无符号整型局部变量传递延时参数。
====================start==============================
#include "intrins.h"
#define nop _nop_()
// 使用全局变量的延时函数;
unsigned int t=100;
void Delay1()
{
while(t){t--;}
}
//使用局部变量的延时函数;
void Delay2(unsigned int tm)
{
while(tm){tm--;}
}
void main()
{
nop;
Delay1();// 断点A,使用全局变量的延时函数;
Delay2(100);//断点B,使用局部变量的延时函数;
nop; //断点C
}
====================end==============================
运行上述程序,有如下的运行结果。下面几个图即为运行两个函数时的情形:
可知Delay1的运行时间为断点B减去断点A的时间,也即1259us-451us=808uS,Delay2的运行时间为断点C减去断点B的时间,即2069uS-1259uS=810uS,两者几乎相同。得到的结论便是使用全局变量和局部变量作为延时函数的参数区别不大。
文章评论(0条评论)
登录后参与讨论