【文件属性】:
文件名称:主函数顺序调用结构的特点-张孝祥java就业培训教程(带完整目录高清扫描版)
文件大小:1007KB
文件格式:PDF
更新时间:2021-06-08 00:17:39
单片机 操作系统
1.1 主函数顺序调用的一般结构
这种结构基本上都是在main函数开始完成一些初始化,然后在主循环里周期性地调用一
些函数:
void main()
{
/*模块初始化*/
while(1)
{
Fun1();
Fun2();
……
}
}
在初学单片机时,大部分精力都放在单片机和各个模块的驱动上,所以在开始相当长的
一段时间里采用的都是这种程序结构。
而 Fun1、Fun2……这些函数完成的功能也都是比较简单的,每个函数完成一个简单的
小功能,然后顺序执行就可以组合完成某个功能。
需要强调的是,这些函数虽然功能简单,但是占用 CPU 资源不一定少,比如最简单的
一个独立按键扫描程序:
sbit key=P1^0;
unsigned char keyscan() //返回0代表按下,1代表没按下
{
if(key==0) //说明按键按下
{
delay5(1); //延时5ms去抖
if(key==0) //确认按键按下
{
while(key==0);//等待按键释放
return 0;
}
}
return 1;
}
注意到这个程序里有一个 5ms 延时函数,在延时的这段时间里单片机运行一些无意义
的指令消耗时间。在此期间其他任务得不到运行,整个进程阻塞在延时函数这个地方。并且,
如果按键一直按下没有释放的话,程序将停留在 while(key==0); 处。
1.2 主函数顺序调用结构的特点
首先,正如它的名称是“顺序调用”,任务之间的运行顺序是固定不变的,当然不可能
有优先级区别,它只适合完成那些周期性循环的工作。不管它是不是缺点,总之这是第一点。
2