色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

stm32任務調度和管理

汽車玩家 ? 來源:CSDN ? 作者:CSDN ? 2021-07-23 09:22 ? 次閱讀

STM32F103ZE的AHB時鐘為72MHz,通過HSE的8M倍頻到72M,然后APB1預分頻系數為2,所以TIM2-7時鐘為2*36M。由于定時器是16位,PSC寄存器最大為65536,不支持71999,所以只能以0.1ms計數。

整個系統在獲取時間的累增時,定義64位變量,即可運行很久的時間,不用擔心溢出或者死機。定義64位變量有2個方法,一就是用long long 直接定義,通過sizeof測試為8個字節;二就是利用”stdint.h”,typedef uint64_t u64。

一般情況下,定時器計時結果算法公式為:Tout = (ARR+1)(PSC+1)/Tclk。Tclk即為時鐘頻率。

準備工作

  • 1)建立一個struct

typedef struct{

void (*fTask)(void);

u32 uNextTick;

u32 uLenTick;

}sTask;

1

2

3

4

5

  • 2)任務列表

static sTask mTaskTab[] =

{

{Task_SysTick, 0, 0} ,

{Task1, 0, 100} , // 10ms執行一次

{Task2, 0, 200} // 200ms執行一次

};

1

2

3

4

5

6

  • 3)初始化定時器

void TaskTimer_Init()

{

TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);

/* Time base configuration */

TIM_TimeBaseStructure.TIM_Period = 65535;

TIM_TimeBaseStructure.TIM_Prescaler = 7199;

TIM_TimeBaseStructure.TIM_ClockDivision = 0;

TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;

TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);

TIM_SetCounter(TIM2, 0);

/* TIM enable counter */

TIM_Cmd(TIM2, ENABLE);

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

  • 4)獲取啟動后時間

u64 GetTimingTick()

{

return TimingTick;

}

1

2

3

4

  • 5)任務執行期間獲取系統時間

在這里插入void Task_SysTick()

{

u32 temp = TIM_GetCounter(TIM2);

if(temp > 10000)

{

TIM_SetCounter(TIM2,0);

TimingTickHold = TimingTickHold + temp;

temp = 0;

}

TimingTick = temp + TimingTickHold;

}

1

2

3

4

5

6

7

8

9

10

11

運行實例

#define ARRAYSIZE(a) (sizeof(a)/sizeof((a)[0]))

static sTask mTaskTab[] =

{

{Task_SysTick, 0, 0},

{DATA_HANDLE, 0, 500},//50ms

{Key_Scan, 0, 500}

};

while(1)

{

for(int i = 0;i < ARRAYSIZE(mTaskTab);i++ )

{

if(mTaskTab[i].uNextTick <= GetTimingTick() )

{

mTaskTab[i].uNextTick += mTaskTab[i].uLenTick;

mTaskTab[i].fTask();

}

}

}

文章整合自:CSDN

編輯:ymf

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 定時器
    +關注

    關注

    23

    文章

    3259

    瀏覽量

    115884
  • 時鐘頻率
    +關注

    關注

    0

    文章

    50

    瀏覽量

    20487
  • HSE
    HSE
    +關注

    關注

    0

    文章

    17

    瀏覽量

    9524
收藏 人收藏

    評論

    相關推薦

    AGV監控與任務管理系統設計

    AGV在智能物流中核心,助力工業4.0和中國制造2025。AGV管理監控調度系統實時監控、任務管理、路徑規劃,確保高效便捷。AGV市場前景廣闊,解決人口紅利喪失、勞動力成本上升等問題,
    的頭像 發表于 03-05 12:10 ?52次閱讀
    AGV監控與<b class='flag-5'>任務</b><b class='flag-5'>管理</b>系統設計

    車隊運營調度管理系統

    車隊運營調度管理系統作為無人駕駛車隊的云端大腦,承擔了打通業務層和無人駕駛車隊的重任。經緯恒潤車隊運營調度管理系統包含業務對接、車輛調度、作
    的頭像 發表于 01-09 10:25 ?509次閱讀
    車隊運營<b class='flag-5'>調度</b><b class='flag-5'>管理</b>系統

    基于Flexus X加速MySQL鏡像搭建XXL-JOB任務調度平臺

    隨著云計算技術的飛速發展,Flexus 云服務器 X 憑借其高性能和高可用性,成為了眾多企業和開發者的首選。本文旨在通過搭建基于 Flexus X 加速 MySQL 鏡像的 XXL-JOB 任務調度
    的頭像 發表于 12-29 15:45 ?233次閱讀
    基于Flexus X加速MySQL鏡像搭建XXL-JOB<b class='flag-5'>任務</b><b class='flag-5'>調度</b>平臺

    負載管理器的主要功能

    負載管理器(Load Manager)是計算機系統中的一個關鍵組件,它負責分配和管理計算資源,以確保系統運行的效率和穩定性。負載管理器的主要功能包括任務
    的頭像 發表于 10-10 11:26 ?508次閱讀

    ESP32C3任務執行一段時間,會出現任務不運行的問題,為什么?

    ESP32C3任務執行一段時間,會出現任務不運行的問題, 不運行的任務優先級低,并且任務的延時時間為vTaskDelay(100/ portTICK_PERIOD_MS);
    發表于 06-05 07:23

    鴻蒙開發接口資源調度:【@ohos.workScheduler (延遲任務調度)】

    開發者在開發應用時,通過調用延遲任務注冊接口,注冊對實時性要求不高的延遲任務,該任務默認由系統安排,在系統空閑時根據性能、功耗、熱等情況進行調度執行。
    的頭像 發表于 06-04 10:01 ?1067次閱讀
    鴻蒙開發接口資源<b class='flag-5'>調度</b>:【@ohos.workScheduler (延遲<b class='flag-5'>任務</b><b class='flag-5'>調度</b>)】

    請問CMSIS-RTOS RTX的任務調度鎖在哪里?

    請問一下,CMSIS-RTOS RTX的任務調度鎖在哪里?謝謝!
    發表于 05-13 08:28

    淺析FreeRTOS任務調度器的三種調度算法和應用

    FreeRTOS在MCU領域應用非常廣泛,今天就給大家講解一下FreeRTOS調度器中的三種調度算法,以及在瑞薩RZ/T2L MPU中的應用。
    的頭像 發表于 05-10 14:02 ?8084次閱讀
    淺析FreeRTOS<b class='flag-5'>任務</b><b class='flag-5'>調度</b>器的三種<b class='flag-5'>調度</b>算法和應用

    STM32CubeMX中的FreeRTOS創建3任務無法運行的原因?

    STM32CubeMX中的FreeRTOS 創建3任務 Task Priority =osPrioirityNoral 等級的任務,無法運行。 如果創建2個任務就可以。2個以上都不行
    發表于 05-09 07:02

    Windows 11任務管理器將CPU性能單位調整為MT/s

    以前,電腦內存的傳輸速度通常用MHz(兆赫茲)來衡量,即每秒能進行的循環次數,如3200MHz表示每秒可進行32億次循環。然而,隨著新技術的發展,DDR內存能夠在不提升時鐘頻率(MHz)的前提下提高數據傳輸速率,這使得傳統的計算方式不再準確。
    的頭像 發表于 05-07 15:08 ?2164次閱讀

    智慧園區:構建安全調度和預警管理系統

    隨著科技的快速發展,智慧園區逐漸成為現代城市發展的熱門話題。智慧園區以其先進的技術和創新的管理模式,為企業和居民提供更高效、便捷的服務。在智慧園區中,安全調度和預警管理是一項至關重要的任務
    的頭像 發表于 05-06 16:40 ?623次閱讀
    智慧園區:構建安全<b class='flag-5'>調度</b>和預警<b class='flag-5'>管理</b>系統

    智慧園區安全調度管理都有哪些

    園區當中極為重要的一點,安全調度也格外的受大家重視。 今天,古河云科技小編就來給大家說一說智慧園區安全調度管理都有哪些: 指揮調度平臺涵蓋了設備告警、快速定位、人員
    的頭像 發表于 04-28 15:13 ?380次閱讀
    智慧園區安全<b class='flag-5'>調度</b><b class='flag-5'>管理</b>都有哪些

    STM32F103VE運行的STM32CubeMX生成的freertos工程,FreeRTOS堆棧設置導致任務不執行切換怎么解決?

    TASK1任務堆棧更改為128的話,就不執行任務切換,只有TASK1的任務在運行 代碼如下 #define START_TASK_PRIO 1 #define START_STK_SIZE128
    發表于 04-26 07:51

    STM32F103 FreeRTOS任務調度異常的原因?

    ) { vTaskDelay(500); //延時函數(任務調度) printf(\"Task1rn\");//串口打印 } } void Task2_Task(void
    發表于 04-16 06:24

    FreeRTOS任務調度器的三種調度算法講解(下)

    配置如下時,調度算法就會變成不帶時間片的搶占式調度
    的頭像 發表于 03-21 13:46 ?3521次閱讀
    FreeRTOS<b class='flag-5'>任務</b><b class='flag-5'>調度</b>器的三種<b class='flag-5'>調度</b>算法講解(下)
    主站蜘蛛池模板: 69久久国产露脸精品国产 | 美女扒开屁股让男人桶 | 国产毛片AV久久久久精品 | 国产婷婷午夜精品无码A片 国产婷婷色综合AV蜜臀AV | 中国老太太xxx | 古月娜下面好紧好爽 | 99亚洲精品自拍AV成人软件 | 国产AV精品国语对白国产 | 男人的天堂色 | 国产精品久久久久久亚洲影视 | 久久精品热99看二 | 女性私密五月天 | 伊人久久99热这里只有精品 | 国产特级毛片AAAAAAA高清 | 精品少妇爆AV无码专区 | 欧美写真视频一区 | 国内精品久久久久久西瓜色吧 | 使劲别停好大好深好爽动态图 | 戳女人屁股流水羞羞漫画 | 日韩精品免费一区二区 | 99久久精品一区二区三区 | 亲胸揉胸膜下刺激视频在线观看 | 中文字幕精品在线观看 | 99久久精品免费看国产免费 | 四虎国产精品高清在线观看 | a视频免费在线观看 | 国产成人精品视频频 | 欧美同志高清vivoeso | 被高跟鞋调教丨vk | 国产传媒18精品免费1区 | 无码国产色欲XXXX视频 | 1级午夜影院费免区 | 一个人在线观看免费视频 | 国产乱码二卡3卡四卡 | 你是淫荡的我的女王 | 99在线这精品视频 | 久久免费精品视频 | 99精品AV无码一区二区 | 久久亚洲黄色 | 红尘影院在线观看 | 变态露出野外调教 |