关于任务调度 void scan()/*循环向串口发送数据*/ { while(1) { senddata(); taskDelay(10); } }
void query()/*循环向串口发送数据*/ { while(1) { senddata(); taskDelay(10); } } void receive() { /*这是一个接收串口的数据的程序,当程序每发送一帧数据,马上就得到一帧 返回数据,发送的时候是不能接收的,实现时是通过控制相应的引脚电平实现 的,当引脚信号为高电平,则允许发送,反之,则允许接收*/ } void senddata() { /*这是一个启动串口发送中断的程序,每执行一次这个程序,则向串口发送 一帧数据(具体是通过中断实现的)*/ /*具体程序略*/ }
void main() { taskSpawn("QueryTask",60,0,4000,(FUNCPTR)query,0,0,0,0,0,0,0,0,0,0); taskSpawn("ScanTask",65,0,4000,(FUNCPTR)scan,0,0,0,0,0,0,0,0,0,0); taskSpawn("RevTask",70,0,4000,(FUNCPTR)receive,0,0,0,0,0,0,0,0,0,0); }
请问现在的情况是没使用时间片轮转调度,那么这三个任务是如何调度的, query和scan两个程序发送的时候会不会“打架”,它们发送的数据会不会 交错着的,具体是一个什么样的情况,谢谢了