单片机可以同时处理多个任务吗

电子说

1.3w人已加入

描述

  单片机可以按分时、顺序、中断的方法处理多个任务。

  程序是非常抽象的,程序质量的好与差直接影响到运行的效果。我们用单片机设计电子产品时,同时运行多个任务是很正常的。单片机是按顺序执行指令的,所以,主程序也是按着顺序从头到底的运行的。以C语言写的单片机程序为例,一般以main()作为主函数,利用while(1)不断循环要执行的任务程序。在实时性要求不同的应用场合,顺序运行就可以了,实时性要求很高的任务一般用中断来处理,如果想平衡各个任务的运行时间,可以分时处理。

  中断处理实时性高任务

  中断可以理解为中途打断,比如你正在工作,突然领导来电话了,当你认为领导电话比较重要的时候,就可以先保存正在进行的工作进度,接听领导电话,然后再接着你的工作。单片机程序也是一样的。高优级的任务可以设置为中断,比如按键输入中断或者串口接收中断。以串口接收中断为例,假如单片机配置了串口接收中断,当串口接收到数据时,主程序就会被打断,保护现场数据后马上跳到串口接收中断程序,串口接收中断程序处理完成后,再返回主程序接着运行。

  分时处理多个任务

  可以用分时的方案平衡各个任务的处理时间,比如,我们可以引入一个计数器i,假如有5个任务,可以让i在0~4之不断循环,当i=0时执行任务1,当i=1时执行任务2,当i=3时执行任务4,当i=4时执行任务5就可以了。

  当然,你还可以用定时器中断做一个计时器,0~1ms时运行任务1,1~2ms时运行任务2,2~3ms时运行任务3,3~4ms时运行任务4,4~5ms时运行任务5。如果有更高的要求的话,还要以用到嵌入式操作系统了,比如FreeRTOS、uCos。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分