1.裸机系统
裸机系统包括轮询系统以及前后台系统。
(1)轮询系统
关于轮询系统我们可以用以下的代码诠释:
#include <xxx.h>
int main()
{
/*初始化的相关API*/
xxx
xxx
/*主循环*/
while(1)
{
/*处理第一件事*/
xxx
/*处理第二件事*/
xxx
...
}
}
从代码段中我们可以了解到轮询系统是顺序执行任务的,它的实时性很差,若是需要用到外部事件,例如我们按下一个键执行相应的函数就可能出现延时甚至不执行相应的函数。
(2)前后台系统
前后台系统则不同于轮询系统,它包含了中断。我们设置标志,并在中断中对该标志进行相应的操作,最后在主函数中对该标志进行判断进而执行相应的功能。代码示例如下:
#include <xxx.h>
int flag1 = 0;
int flag2 = 0;
int mian()
{
/*初始化*/
xxx
while(1)
{
if(flag1)
{
/*执行任务1*/
xxx
}
if(flag2)
{
/*执行任务2*/
xxx
}
}
}
/*中断函数1*/
void xxx1(void)
{
flag1=1;
}
/*中断函数2*/
void xxx