硬汉嵌入式论坛

 找回密码
 立即注册
查看: 290|回复: 5
收起左侧

[FreeRTOS] 在FreeRTOS中使用CAN、并且驱动屏幕,该如何设置各任务的优先级

[复制链接]

1

主题

1

回帖

4

积分

新手上路

积分
4
发表于 2024-5-16 20:10:31 | 显示全部楼层 |阅读模式
RT~
做一个电动车仪表的应用。

在FreeRTOS中设置了几个任务有:

       CAN通信收发速度信息的任务


       使用LVGL设计的UI显示任务
       其他传感器,外设等任务...

-----------------------------------------

应该如何设置通信和显示的优先级?
一种操作是:通信设置为最高,显示设置为idle+1,这样会存在一直在处理通信任务而不处理显示导致卡顿

另一种操作是:通信和显示同时设置为最高,担心可能会存在通信丢帧的问题


希望各位大佬能够给出一些建议~
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107778
QQ
发表于 2024-5-17 09:26:12 | 显示全部楼层
通信设置为最高,显示设置为idle+1。

这种方式是最好的。显示这种东西,实际上差个1-2秒完全不影响体验。
回复

使用道具 举报

0

主题

14

回帖

14

积分

新手上路

积分
14
发表于 2024-5-26 16:48:35 | 显示全部楼层
eric2013 发表于 2024-5-17 09:26
通信设置为最高,显示设置为idle+1。

这种方式是最好的。显示这种东西,实际上差个1-2秒完全不影响体验 ...

题主不是说了,这种方式,会导致一直处理通信任务,而不会显示吗?
回复

使用道具 举报

5

主题

173

回帖

188

积分

初级会员

积分
188
发表于 2024-5-27 09:39:09 | 显示全部楼层
通信最高,显示idle+1,这种情况下通信任务必须有让出cpu的操作,要不然肯定一直跑通信任务的,显示任务可以不延时
回复

使用道具 举报

0

主题

14

回帖

14

积分

新手上路

积分
14
发表于 2024-5-28 22:39:14 | 显示全部楼层
同步操作,肯定是接收到新的一帧,然后再去进行显示。
回复

使用道具 举报

0

主题

14

回帖

14

积分

新手上路

积分
14
发表于 2024-5-28 22:42:10 | 显示全部楼层
顺序肯定是接收到一帧新的数据,再去进行显示。
所以数据帧接受优先级肯定比UI显示要高吧?
然后使用同步的方式,只要一帧新的数据到来,就通知UI显示任务显示,刷新屏幕之后就立马切换到数据帧接受任务帧上面来。(如果数据帧速率太快,不可避免有丢帧情况吧)
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-6-13 19:54 , Processed in 0.298254 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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