• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

单片机编程问题

hanghang 2017-03-29 浏览量:851

在使用单片机编写程序的时候,“裸奔”的情况下,有5-7个任务,如何做到程序能够正常运行。

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 楼主问的好高深啊,一开始还没明白“裸奔”是啥意思,还特意去百度了一下才知道:

    不跑操作系统的单片机,就是裸奔的单片机!

    我也是醉了!


    顺便问下,这几个任务有先后顺序么?是需要执行完第一个后再执行第二个,还是同时执行?用IF语句扫面应该可以实现吧,比如:


    if(条件1){执行任务1;}

    if(条件2){执行任务2;}

    if(条件3){执行任务3;}

    if(条件4){执行任务4;}

    if(条件5){执行任务5;}


    类似这样的语句,或者用switch语句应该也可以,个人写顺序执行程序的时候都习惯定义一个变量,当执行完前一句之后,变量自动加1,然后跳到下一个条件里面,比如:



    if(step==1){执行任务1;step++}

    if(step==2){执行任务2;step++}

    if(step==3){执行任务3;step++}

    if(step==4){执行任务4;step++}

    if(step==5){执行任务5;step++}


    类似这样的就好了!具体看你应用了,还有个人使用习惯!




    • 发布于 2017-03-29
    • 举报
    • 评论 0
    • 1
    • 0

其他答案 数量:6
  • 分配好任务,设计系统模型,保证每个任务可以有足够的运行时间。通常用时间片或者标志位进行处理。


    用小型的RTOS也是可以的。

    • 发布于2017-03-29
    • 举报
    • 评论 1
    • 1
    • 0
hanghang 回复了 shaoziyang :请问 有什么小型的RTOS 适合用在STM32上运行呢 回复

  • 如果任務之間有通訊關係還是建議用RTOS

    不然也可以設置Global變數或者Pointer變數來互相通訊

    當然不是很有彈性的作法

    依照各任務之間的邏輯關係分別調度即可

    以上供參考

    • 发布于2017-03-29
    • 举报
    • 评论 1
    • 1
    • 0
hanghang 回复了 MOP :请问 有什么易入门的RTOS 可供初学者学习使用的吗? 回复

  • 上单片机的系统RTOS 如RTHREAD ,UCOS等。

    随便一个都能搞定,要不就你自己搞个任务系统来处理

    • 发布于2017-03-30
    • 举报
    • 评论 0
    • 1
    • 0

  • 设置5-7个优先级,优先级高的任务会优先执行
    • 发布于2017-03-29
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

单片机编程问题