找回密码
 立即注册

QQ登录

只需一步,快速开始

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

关于51单片机多任务的疑惑?

[复制链接]
跳转到指定楼层
楼主
ID:145357 发表于 2024-1-7 16:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
比如一个模块的使用,要时序,读写数据的时候需要延时后才能操作,这个等待时间不能用delay了吗?多个模块都需要这种延时怎么办?如果一个模块1MS执行一次,另一个10MS执行一次,10MS的模块等待期间可以执行1MS的,执行完了到了10ms模块怎么接着刚才10MS模块的下一步?同时1MS的时间也到了,这样会冲突吗?另外这样原来调试好的模块全部要改?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1108189 发表于 2024-1-7 20:01 | 只看该作者
一般运用定时器来进行时序操作,在进行定时操作时,谁的优先级高就先进行高优先级的中断,你试试用定时器来做定时操作就知道了
回复

使用道具 举报

板凳
ID:1108189 发表于 2024-1-7 20:05 | 只看该作者
你试试用中断来进行延时再进行中断程序,这样通过定时器的优先级就解决了哪个程序先运行哪个程序后运行的问题了
回复

使用道具 举报

地板
ID:1108189 发表于 2024-1-7 20:06 | 只看该作者
你试试用中断来进行延时再进行中断程序,这样通过定时器的优先级就解决了哪个程序先运行哪个程序后运行的问题了
回复

使用道具 举报

5#
ID:1108189 发表于 2024-1-7 20:07 | 只看该作者
你试试用中断来进行延时再进行中断程序,这样通过定时器的优先级就解决了哪个程序先运行哪个程序后运行的问题了
回复

使用道具 举报

6#
ID:1108189 发表于 2024-1-7 20:07 | 只看该作者
你试试用中断来进行延时再进行中断程序,这样通过定时器的优先级就解决了哪个程序先运行哪个程序后运行的问题了
回复

使用道具 举报

7#
ID:1010435 发表于 2024-1-7 20:15 | 只看该作者
定时器啊,到时间执行某个东西
回复

使用道具 举报

8#
ID:883242 发表于 2024-1-8 00:42 | 只看该作者
在定时中断里面把要执行的任务排个队。
回复

使用道具 举报

9#
ID:276663 发表于 2024-1-8 09:15 | 只看该作者
只要是有中断的程序,你都不能保证绝对的实时。实时只是相对一个调度周期。讲的是反应速度快。如果一个任务优先级高,那其他任务就得让道。所以高优先级任务一个要快速处理,一个要频度低。
回复

使用道具 举报

10#
ID:258676 发表于 2024-1-8 11:16 | 只看该作者
模块的延时非常短的  都是微秒级别的 对整个程序影响不大
回复

使用道具 举报

11#
ID:883242 发表于 2024-1-8 12:24 | 只看该作者
qidiao007 发表于 2024-1-8 11:16
模块的延时非常短的  都是微秒级别的 对整个程序影响不大

那是你见过的模块太少了。
回复

使用道具 举报

12#
ID:145357 发表于 2024-1-8 12:44 来自手机 | 只看该作者
我看了一下RXT51的操作系统,是用了操作系统的延时,MS级的就用系统延时,us级的就用delay,不知道这样理解对不对?
回复

使用道具 举报

13#
ID:149642 发表于 2024-1-8 16:16 | 只看该作者
可以做一个系统运行时间变量嘛,定时器让这个变量增加x,具体增加多少取决于定时器跑了多久,
后面查询这个时间变量,到了就运行某程序,在某程序运行完毕后,再把运行用掉的时间加入系统运行时间变量,这样时间就是绝对的。。
回复

使用道具 举报

14#
ID:145357 发表于 2024-1-8 21:45 来自手机 | 只看该作者
lksbbs 发表于 2024-1-8 16:16
可以做一个系统运行时间变量嘛,定时器让这个变量增加x,具体增加多少取决于定时器跑了多久,
后面查询这 ...

这个难度有点大,我先看下那个操作系统,试一下
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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