簡體   English   中英

STM32 RTOS定時器中斷和線程

[英]STM32 RTOS timer interrupt and threads

我正在做一個項目,我需要在 TIM 中斷中執行 2 段代碼。 其中一個的優先級略高於另一個,並且兩者都將在 2 個不同的計時器上運行(當然不是在同一時間間隔)。 由於兩個定時器與另一個定時器成正比(一個是 1KHz,一個是 8Khz),兩者都會同時觸發。

由於我已經將 RTOS 中間件用於其他目的(優先級也比這些低得多的線程),我正在考慮為每個這些例程創建一個線程。

但是,看看 cubeMX 如何生成代碼,我什至想知道這是否可能。

我可以從任何線程啟動/停止這些計時器,但只有一個 HAL_TIM_PeriodElapsedCallback ,您通常使用如下 if 語句填充:

if (htim->Instance == TIM2)

我是否正確地假設,無論計時器從哪個線程啟動,TIM 回調總是發生在 RTOS 環境的“外部”?

如果是這樣,實現接近我需要的東西的更好策略是什么?

干杯

會觸發中斷。 但要記住:

  1. 如果您想使用任何...fromISR RTOS 函數,它的優先級(不是 RTOS 優先級,因為它們不相關)必須低於 SVC 中斷
  2. 它們不會同時發生(因為你只有一個核心)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM