OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4357|回复: 4

FreeRTOS滴答定时器优先级问题

[复制链接]

1

主题

2

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2020-1-8
在线时间
4 小时
发表于 2020-2-19 00:09:00 | 显示全部楼层 |阅读模式
3金钱
FreeRTOS滴答定时器中断的优先级默认最低,不就会被外部中断影响时间片的运行时间了吗,万一我的外部中断运行时间过长,时间片和任务调度不久都乱了吗,请问该如何理解

最佳答案

查看完整内容[请看2#楼]

中断服务程序的编写原则如下: 中断服务程序越短越好,不要将处理代码放到中断服务程序中,这是编写程序的基本原则。 解决方法为:创建一个任务A,中断服务程序中释放信号来唤醒该任务A,在该任务A中处理外部中断的动作。 另外,FreeRTOS和UCOSII的滴答定时本身就不是特别准确,只是大概准确,它们只属于【软】实时操作系统。你要想非常准确的实时操作系统,就必须要使用【硬】实时操作系统,
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

19

主题

334

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1108
金钱
1108
注册时间
2018-11-6
在线时间
240 小时
发表于 2020-2-19 00:09:01 | 显示全部楼层
中断服务程序的编写原则如下:
   中断服务程序越短越好,不要将处理代码放到中断服务程序中,这是编写程序的基本原则。
   解决方法为:创建一个任务A,中断服务程序中释放信号来唤醒该任务A,在该任务A中处理外部中断的动作。

   另外,FreeRTOS和UCOSII的滴答定时本身就不是特别准确,只是大概准确,它们只属于【软】实时操作系统。你要想非常准确的实时操作系统,就必须要使用【硬】实时操作系统,
回复

使用道具 举报

19

主题

334

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1108
金钱
1108
注册时间
2018-11-6
在线时间
240 小时
发表于 2020-2-19 11:26:55 | 显示全部楼层
记住一条基本的原则:

    中断服务程序中千万不要添加处理程序代码,一般的处理方式为,每个中断服务程序对应一个任务,通过中断服务程序释放信号量、消息邮箱或消息队列的方法唤醒该任务,然后在该任务中处理。

    例如:
              1、串口接收中断
                    中断服务程序中只添加接收字节的程序代码,解析工作在任务中去解析。
回复

使用道具 举报

19

主题

334

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1108
金钱
1108
注册时间
2018-11-6
在线时间
240 小时
发表于 2020-2-19 11:31:26 | 显示全部楼层
如果大家都把很多代码写在中断服务程序中,那么我们经常使用的WINDOWS操作系统和Android系统的用户体验就没的说啦!---拖动一个图标半天都没有反应,这样的操作系统谁愿意用?
回复

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2020-1-8
在线时间
4 小时
 楼主| 发表于 2020-2-19 17:54:37 | 显示全部楼层
懂了,非常感谢
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 21:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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