找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7863|回复: 8
收起左侧

写单片机程序时怎么实现多个功能同时运行?

[复制链接]
ID:670962 发表于 2019-12-23 22:41 来自手机 | 显示全部楼层 |阅读模式
在只有一个主函数的情况下,怎么写程序可以让多个函数同时运行。
回复

使用道具 举报

ID:235200 发表于 2019-12-24 02:22 | 显示全部楼层
单片机运行程序不是多线程的,只有一个程序函数运行完了才能执行另一个函数,不知道你问的是不是执行多个任务,当某个函数占用时间较短时,运行的结果的现象好象是同时执行了
回复

使用道具 举报

ID:25310 发表于 2019-12-24 08:09 | 显示全部楼层
循环执行多个任务,Main 函数要限制比较长的延时。中断函数可打断Main函数 ,主要任务会丛中断进入打断主程序执行,完毕后回到Main函数继续,加个看门狗防止某任务一去不复返。
回复

使用道具 举报

ID:285996 发表于 2019-12-24 09:11 | 显示全部楼层
多个函数不可能同时运行,因为是单核的,只有一个CPU,用操作系统也是一个时间运行一个函数,由于在不同函数间快速切换,看起来是一个时间在运行两个函数,看起来哟
回复

使用道具 举报

ID:426861 发表于 2019-12-24 09:16 | 显示全部楼层
每次只能执行一个函数
回复

使用道具 举报

ID:155507 发表于 2019-12-24 09:54 | 显示全部楼层
当前的主流单片机,可以分时“执行多个任务”。
但注意的是,它是分时操作,也就是说,在某一时刻它只能做一件事。

比如“一面流水灯,一边扬声器唱歌”,它可以:需要调整灯光时,暂停一下发声,调完灯光后再接着发声,这样循环下去。如果它做得够快的话,你可以感觉不到停顿。

回复

使用道具 举报

ID:332444 发表于 2019-12-24 11:11 | 显示全部楼层
从电路结构来说蛋骗鸡是可以同时执行多个任务,就是主程,定时,中断.巧用则可完成多任务.
回复

使用道具 举报

ID:475247 发表于 2019-12-24 11:55 | 显示全部楼层
你这个问题提的很好,但是如果你学会了定时与中断,你的问题应该很好解决,执行代码比较占用主函数时间的,要尽量放到定时中断里面去做,有些代码能用定时器来做的,也要选择用定时器。
回复

使用道具 举报

ID:672363 发表于 2019-12-24 14:07 | 显示全部楼层
单片机是单线程的
举个例子:避免在代码里使用while循环,如果判断不对,就去执行另一个函数,过一段时间再来判断第二次。
实在不行就加中断或者定义函数的时候用inline内联函数加快速度
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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