久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2577|回復: 19
打印 上一主題 下一主題
收起左側

關于單片機任務模式的解惑,時間片輪詢法

[復制鏈接]
跳轉到指定樓層
樓主
ID:728915 發表于 2022-12-14 22:44 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
從接觸單片機開始,從開始的Delay延時,經同事提醒Delay函數會空耗CPU弊端,所以逐漸少用Delay函數。因為考慮通用性(可能也因為懶),最近在封裝模塊函數,定時器、串口參數,還有I/O口的宏定義以便于硬件修改。類似于下面這種:
#include "OLED.h"                //OLED小屏幕,模擬IIC
//SDA:PA6
#define OLED_SDA_GPIO_PORT        GPIOA        
#define OLED_SDA_GPIO_PIN                GPIO_Pin_6
//SCL:PA7                                                                                                               
#define OLED_SCL_GPIO_PORT  GPIOA        
#define OLED_SCL_GPIO_PIN     GPIO_Pin_7
這周一開始,逐漸有封裝任務函數的想法:時間片輪詢法,至于短期用不到的系統就先不搞了。
今天晚上突然反省一下:用時間片輪詢法,好處是什么?在數量比較少的情況下,用這種任務模式是不是多此一舉?
也煩請路過的各位大佬解惑,感謝!

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:401564 發表于 2022-12-15 00:46 | 只看該作者
對于簡單而且是單一的程序而言,所謂'效率'有時候并不重要
比如我就一個LED手電,按鍵就是開關的作用而已,這個時候,去抖動,沒有什么比delay更爽的了,手電開了就開了,ADC用中斷,就再也沒有其它的事情做了,我還怕單片機累著了不成?
但是你也必須要學會提高單片機效率,有的系統對效率確實是有很高的要求的
對于你說的"時間片輪詢法"我沒學過,基于百度的理解,感覺這也不怎么好
我常用的辦法是:
1,先聲明一個全局變量 time,key結構體其實也行,個人習慣而已
2,按鍵按下之后,time清除,key置位
3,在systick或者定時器中斷中,time++
4,主函數就是  if(key&&(time >= 50ms)//50mS由自己決定延時時間
{
key = 0;
執行按鍵相關處理
}
這樣一來,隨便你按鍵怎么按,怎么抖動,它只作一個處理:       time = 0;  key = 1;
永遠是以你最后松開按鍵之后,穩定了之后的50mS,再執行按鍵相關操作
按鍵讀取就只占用兩個語句的時間而已
回復

使用道具 舉報

板凳
ID:883242 發表于 2022-12-15 07:50 | 只看該作者
看樣子你用的是STM32,用CMSIS自帶的RTX5好了。
回復

使用道具 舉報

地板
ID:728915 發表于 2022-12-15 08:44 | 只看該作者
Y_G_G 發表于 2022-12-15 00:46
對于簡單而且是單一的程序而言,所謂'效率'有時候并不重要
比如我就一個LED手電,按鍵就是開關的作用而已,這 ...

有道理。所以我昨天晚上就突然反思了一下,好像沒什么明顯的提升,但是又想不出個所以然來。
回復

使用道具 舉報

5#
ID:728915 發表于 2022-12-15 08:46 | 只看該作者
Hephaestus 發表于 2022-12-15 07:50
看樣子你用的是STM32,用CMSIS自帶的RTX5好了。

對,雖然具體芯片不是STM的,但是用的是STM32的庫。CMSIS自帶的RTX5,我去搜一下。感謝
回復

使用道具 舉報

6#
ID:1034262 發表于 2022-12-15 12:23 | 只看該作者
其實就是不用軟件延時,不要空耗時間,實現方式各種各樣,RTOS、時間片、時間觸發等等均可。
回復

使用道具 舉報

7#
ID:883242 發表于 2022-12-15 16:44 | 只看該作者
我,菜雞 發表于 2022-12-15 08:46
對,雖然具體芯片不是STM的,但是用的是STM32的庫。CMSIS自帶的RTX5,我去搜一下。感謝

我似乎發過一個完整的Cortex-M0 RTX5工程,你用“53歲”做關鍵字搜一下舊帖子。
回復

使用道具 舉報

8#
ID:332444 發表于 2022-12-15 17:28 | 只看該作者
對于中高級開發來說時間安排就必須考慮,論壇有的是因為時間安排不好提問的,因此,在帖子里面提及了對時間安排的一點思路.
回復

使用道具 舉報

9#
ID:883242 發表于 2022-12-15 19:14 | 只看該作者
用過TCP協議棧、FATFS、GUI等等復雜中間件就知道好處了,這里面到處都是delay,如果用傻等那種delay,系統早就卡死了。用RTOS時間片,OSTimeDly的概念是把CPU控制權交給OS,如果有任務就緒,就讓那個任務去執行,效率高太多了。如果不用RTOS,自己寫任務調度理論上可行,實際上太復雜了,個人很難做到沒有bug。
回復

使用道具 舉報

10#
ID:728915 發表于 2022-12-15 22:33 | 只看該作者
coody_sz 發表于 2022-12-15 12:23
其實就是不用軟件延時,不要空耗時間,實現方式各種各樣,RTOS、時間片、時間觸發等等均可。

也就是說,可以生成一個類似中斷,來打破一些死循環。從而讓單片機不會一直進入無意義死循環。
回復

使用道具 舉報

11#
ID:728915 發表于 2022-12-15 22:34 | 只看該作者
Hephaestus 發表于 2022-12-15 16:44
我似乎發過一個完整的Cortex-M0 RTX5工程,你用“53歲”做關鍵字搜一下舊帖子。

厲害,53歲仍繼續奔跑啊。
回復

使用道具 舉報

12#
ID:728915 發表于 2022-12-15 22:37 | 只看該作者
xianfajushi 發表于 2022-12-15 17:28
對于中高級開發來說時間安排就必須考慮,論壇有的是因為時間安排不好提問的,因此,在帖子里面提及了對時間安 ...

類比于公司,上了一定規模,就要考慮制度,提高效率?
回復

使用道具 舉報

13#
ID:728915 發表于 2022-12-16 08:49 | 只看該作者
Hephaestus 發表于 2022-12-15 19:14
用過TCP協議棧、FATFS、GUI等等復雜中間件就知道好處了,這里面到處都是delay,如果用傻等那種delay,系統 ...

雖然那種中間件我沒怎么用過,但是你說的道理我大概明白了。感謝
回復

使用道具 舉報

14#
ID:332444 發表于 2022-12-16 08:50 | 只看該作者
我,菜雞 發表于 2022-12-15 22:37
類比于公司,上了一定規模,就要考慮制度,提高效率?

打個比方,任務分配多人,那么,是要等待某個完成后再問下一個,還是只問所有任務是否完成,然后就去做自己的事,哪個更好?所謂的多任務無非如此而已.
回復

使用道具 舉報

15#
ID:728915 發表于 2022-12-17 11:26 | 只看該作者
xianfajushi 發表于 2022-12-16 08:50
打個比方,任務分配多人,那么,是要等待某個完成后再問下一個,還是只問所有任務是否完成,然后就去做自己的 ...

原來如此
回復

使用道具 舉報

16#
ID:77589 發表于 2022-12-19 14:43 | 只看該作者
大家都講的好!
回復

使用道具 舉報

17#
ID:1058417 發表于 2022-12-20 13:34 | 只看該作者
xianfajushi 發表于 2022-12-16 08:50
打個比方,任務分配多人,那么,是要等待某個完成后再問下一個,還是只問所有任務是否完成,然后就去做自己的 ...

明白了
回復

使用道具 舉報

18#
ID:513507 發表于 2022-12-28 16:59 | 只看該作者
Y_G_G 發表于 2022-12-15 00:46
對于簡單而且是單一的程序而言,所謂'效率'有時候并不重要
比如我就一個LED手電,按鍵就是開關的作用而已,這 ...

學習啦,學習啦
回復

使用道具 舉報

19#
ID:513507 發表于 2022-12-28 17:03 | 只看該作者
單片機多任務處理,了解下
回復

使用道具 舉報

20#
ID:1059383 發表于 2022-12-29 18:18 | 只看該作者
就算用不到操作系統也該去了解一下時間片輪詢這個東西  并不是只有操作系統才能用到 這只是一個方法而已
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品爱久久久久久久 | 欧美精品一区二区在线观看 | 国产成人免费视频网站视频社区 | 99re视频精品| 精品一区二区三区在线观看 | 亚洲精品免费看 | 91九色porny首页最多播放 | 欧美日韩看片 | 国产成人综合久久 | 国产精品99一区二区 | 狠狠色网| 美日韩免费视频 | 91综合网| 亚洲永久精品国产 | 99国产精品一区二区三区 | 欧美精品网站 | 日韩精品一区二区三区在线播放 | jdav视频在线观看免费 | 黄色大片免费网站 | 国产精品亚洲精品日韩已方 | 99综合网 | 欧美久久一区 | 欧美一区不卡 | 日本在线一二 | 欧美日韩精品一区二区三区视频 | 国产一级在线 | 欧美精品一二三区 | 日韩超碰在线 | 在线观看免费av片 | 国产片网站 | 欧美在线视频一区二区 | 色黄网站 | 三级视频网站 | 蜜桃在线视频 | 在线国产视频 | 99精品免费 | 国产美女永久免费无遮挡 | 蜜桃视频一区二区三区 | 亚洲一级毛片 | 亚洲韩国精品 | 91不卡|