c语言问题:一个需要实时处理新数据的程序,有很多个子函数,每单位时间就有一组新数据,然后

2024-12-21 11:09:49
推荐回答(2个)
回答1:

定义一个调用所有子函数的函数
void fun_all(){
所有子函数调用
}

设一个旗帜:
int flag=0;

while(1)
{
产生新数据的
过程1; if (产生) flag=1; (旗帜升起)
过程2; if (产生) flag=1;
过程3; if (产生) flag=1;
过程n; if (产生) flag=1;
if (flag==1) {
fun_all(); // 所有子函数调用运行一次
flag = 0; // 旗帜 回原状态
}
if (满足结束条件)程序结束;
};

回答2:

设计一个中断服务程序,每当单位时间监测数据是否准备好,如果好了设置一个全局性的标志,并把数据复制出来等待处理,主程序不断监测这个标志,一旦有了,将中断程序复制出来的数据处理,并调用其他函数,没有标志时可以干些类似于串口通信之类可以执行间隔比较长的工作。这就是所谓多任务。