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

標題: 51單片機簡單多任務調度實現代碼 [打印本頁]

作者: g753388438    時間: 2017-7-18 10:52
標題: 51單片機簡單多任務調度實現代碼
  1. //注意
  2. //任務優先級必須小于任務個數,不然會死機
  3. //任務優先級并非真實的,高有限級的任務不會打斷低優先級的任務
  4. //只是當2個任務執行的時間到了,高優先級的任務會優先執行
  5. //任務的優先級同時也是任務的句柄,任務創建和使能的時候會用到
  6. //任務無法刪除,可以通過失能,失任務不執行
  7. #define Rtos_Num 5//任務個數  

  8. //簡單任務調度
  9. typedef struct{
  10.         void (*fTask)(void);//任務指針
  11.         uint8_t  runFlag;//運行標志位  1使能  0失能
  12.         uint16_t  uLenTick;//任務調度周期
  13.         uint32_t  uNextTick;//下次執行時間
  14. }sTask;

  15. //        extern uint32_t Rtos_SysTim; //系統時間   一般是1ms定時器
  16. //創建任務
  17. void Rtos_Creat(void *Task_Name,uint8_t Priority,uint8_t enable,uint32_t starttim,uint16_t tim);
  18. //任務使能
  19. void Rtos_En(uint8_t Priority,uint8_t enable);
  20. //開始執行任務
  21. void Rtos_Run(void);
復制代碼


簡易任務調度.rar

39.22 KB, 下載次數: 116, 下載積分: 黑幣 -5

任務調度


作者: g753388438    時間: 2017-7-18 10:55
貼出了所有的代碼,但是只顯示了一部分
作者: g753388438    時間: 2017-7-18 10:55
  1. /創建任務
  2. //任務名稱 任務優先級  使能    開始時間    周期  
  3. void Rtos_Creat(void *Task_Name,uint8_t Priority,uint8_t enable,uint32_t starttim,uint16_t tim)
  4. {
  5.         if(Priority>=Rtos_Num)
  6.         {
  7.                 while(1)
  8.                 {
  9.                         //可做其他處理
  10.                         printf("任務出錯");               
  11.                 }
  12.         }
  13.         mTaskTab[Priority].fTask=(void(*)(void))Task_Name;//函數名
  14.         mTaskTab[Priority].runFlag =enable;//使能
  15.         mTaskTab[Priority].uNextTick=starttim;//任務開始執行的時間
  16.         mTaskTab[Priority].uLenTick=tim;//任務開始執行的時間
  17. }
  18. //任務使能  失能
  19. //任務優先級   使能
  20. void Rtos_En(uint8_t Priority,uint8_t enable)
  21. {
  22.         if(Priority>=Rtos_Num)
  23.         {
  24.                 while(1)
  25.                 {
  26.                         //可做其他處理
  27.                         printf("任務出錯");               
  28.                 }
  29.         }
  30.         mTaskTab[Priority].runFlag =enable;//使能
  31. }
  32. //開始調度
  33. void Rtos_Run(void)
  34. {
  35.         while(1)
  36.         {
  37.                 for (uint8_t  i = 0; i < (sizeof (mTaskTab)/sizeof(sTask)); i++)
  38.                 {
  39.                         if ((mTaskTab[i].uNextTick <= Rtos_SysTim)&&(mTaskTab[i].runFlag==1))
  40.                         {
  41.                                         mTaskTab[i].uNextTick += mTaskTab[i].uLenTick;
  42.                                         mTaskTab[i].fTask();        
  43.                         }
  44.                 }
  45.         }
  46. }
復制代碼

作者: 多德    時間: 2017-7-23 21:26
黑幣不夠啊
作者: bhjyqjs    時間: 2018-2-13 10:27
很不錯,謝謝樓主分享
作者: wdliming    時間: 2018-7-22 09:09
謝謝分享
作者: wdliming    時間: 2018-7-24 20:46
謝謝分享!!
作者: jwints    時間: 2019-1-15 17:43
謝謝分享,剛剛入門51
作者: csavc    時間: 2019-1-15 21:28
謝謝分享
作者: 小小李sunny    時間: 2019-3-7 15:55
代碼看不全啊,有沒有完整的代碼,謝謝
作者: fzulyh604    時間: 2022-2-25 10:19
別下載了  里面沒東西  就帖子里面貼出來的那一點點代碼
作者: tungkin    時間: 2022-3-28 02:41
謝謝分享,看了一下,感覺還有一點地方可以優化一下
作者: wjwjwjwj    時間: 2022-4-22 17:03
我是來學習的




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 成人免费视频网站在线观看 | 在线四虎| 中文精品视频 | 91视频网 | 欧美区日韩区 | 91国内精精品久久久久久婷婷 | 国产成人久久精品一区二区三区 | 久久综合狠狠综合久久综合88 | 国产精品视频网站 | 中文字幕乱码视频32 | 日本电影韩国电影免费观看 | av在线一区二区三区 | 一区二区视屏 | 久久99精品久久久久久国产越南 | 激情五月婷婷综合 | 中文字幕黄色大片 | av在线免费观看网址 | 99自拍视频 | 午夜影院在线观看版 | 亚洲欧美日韩久久 | 一级高清免费毛片 | 久久久久一区 | 九九热在线视频 | 国产综合在线视频 | 亚洲男人网 | 国产精品美女久久久久久不卡 | 久久天堂网 | 超碰人人人人 | 在线看91 | 狠狠干综合视频 | 99精品欧美一区二区蜜桃免费 | 日韩精品一区二区三区免费视频 | 理论片午午伦夜理片影院 | 国产日韩欧美激情 | 一区二区三区四区不卡视频 | 91在线一区二区 | 日韩欧美中文在线 | 成人欧美一区二区三区在线播放 | av中文在线 | www.com久久久 | 日本一区二区高清视频 |