找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2306|回复: 4
打印 上一主题 下一主题
收起左侧

关于单片机裸跑程序改操作系统的问题

[复制链接]
跳转到指定楼层
楼主
ID:592477 发表于 2020-3-3 14:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
11黑币
自从了解到操作系统和一般的单片机裸跑程序的区别后就感觉嵌入式有了系统会变得高大上,同时最近做了一个项目,程序的结构大概是void main()
{
   初始化定时器,ADC,OLED屏等;
  while(1)
  {
            处理按键事件;
       温度ADC转换;
        显示画面;
  }
}

如果将他们改为操作系统的一个个任务,比如:

void main()
{
   初始化定时器,ADC,OLED屏等;
  while(1)
  {

   }
}


void Task0()
{
处理按键事件
}
void Task1()
{
温度ADC转换
}

void Task2()
{
  显示画面
}



是否会比原来更“高效”呢?
或者说两种方式又有什么区别呢?

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:687694 发表于 2020-3-4 18:23 | 只看该作者
小系统都会牵扯到函数重入问题,且使用中断要十分小心。效率得看你裸机任务数量,如果就两三个任务且并不十分要求实时性的话还是裸机跑效率高。
回复

使用道具 举报

板凳
ID:352653 发表于 2020-3-4 22:16 | 只看该作者
第一种是个整体,第二种你可以单独另外调用,在处理这个任务上没有区别,但如果处理多个这样的任务的话第二种更好
回复

使用道具 举报

地板
ID:250696 发表于 2020-3-6 14:15 | 只看该作者
如果任务程序没更改的话,最高效的还是原来的裸机程序。
操作系统切换任务也是要切换时间的,储存任务块也需要一定的资源。
用上 操作系统只是为了写任务方便,不用安排乱七八糟的逻辑。
回复

使用道具 举报

5#
ID:703392 发表于 2020-3-6 14:52 | 只看该作者
第一种是个整体,第二种你可以单独另外调用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表