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

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

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

3天內不再提示

基于TIMER3發生捕獲中斷丟失問題分析與總結

STM32單片機 ? 來源:未知 ? 作者:伍文輝 ? 2018-01-15 15:11 ? 次閱讀

前言

在一洗衣機MC項目中,客戶選擇使用STM32F030作為主控芯片。使用TIMER3(CH3)來捕獲電機的HALL Sensor的中斷,同時使用TIMER3(CH2)的OC功能,在OC match中斷中調整轉速。客戶在調試中發現,當捕獲中斷和OC中斷“同時發生(對齊)”時,會發生捕獲中斷丟失。

問題分析

客戶最初發現使用該配置控制電機時,在某一時刻會出現電機轉速異常。經過抓取波形發現,HALL Sensor和捕獲輸出波形(在中斷中翻轉IO)不匹配,在某個時刻,會出現“中斷丟失”現象,表現為捕獲輸出高電平或低電平周期被拉長,如圖1所示。黃色為HALL信號,綠色為捕獲中斷輸出,紫色為OC中斷輸出,可以明顯看到在第四個上升沿之后,高電平長度被拉長半個周期。客戶懷疑是硬件Bug導致中斷“同時發生”時,捕獲“中斷丟失”,從而導致該問題。

基于TIMER3發生捕獲中斷丟失問題分析與總結

圖 一

查看Erratasheet, 沒有相關的描述。另外,硬件BUG導致中斷丟失的可能性較小,因為中斷同時發生的概率很低而該現象很容易復現。

構建測試環境

通過CubeMx構建對應的測試工程,分別在捕獲和OC中斷中翻轉IO來檢測中斷狀況。另外,通過其它開發板產生相應的PWM來模擬HALL信號。經過測試發現,使用Cube庫生成的代碼,并沒有“丟失中斷”的現象,波形見下圖。

代碼分析

客戶的代碼,包括中斷服務函數都是通過直接操作寄存器的方式編寫。分析客戶的代碼發現,客戶在中斷服務函數中清除相關中斷標志位時是通過常用的寄存器操作方式“讀-修改-寫”來完成,如下:

TIM3->SR&= ~TIM_SR_CC3IF; /* Clear the flags */

而在HAL Driver中是通過對應的位直接賦值的方式清除,如下:

#define__HAL_TIM_CLEAR_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->SR= ~(__INTERRUPT__))

結合客戶觀察到的現象,懷疑可能的原因是捕獲中斷標志在從讀狀態寄存器到寫入寄存器之間被置位,這樣的話,該標志就可能未被檢測處理到就被清除掉了,從而導致異常的發生。

基于TIMER3發生捕獲中斷丟失問題分析與總結

將HAL Driver函數中的中斷服務函數修改成與客戶一樣的“讀-修改-寫”方式來清除對應標志位,該問題被復現。

小結

如果通過直接操作寄存器的方式來集成底層驅動,那么在通過“讀-修改-寫”方式操作此類會由硬件修改的寄存器時,一定要加倍小心。根據寄存器具體的描述,可以采用直接寫入或者聯合體(按位修改)的方式修改。

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

    關注

    5

    文章

    898

    瀏覽量

    41470
  • OC
    OC
    +關注

    關注

    0

    文章

    17

    瀏覽量

    12424
  • STM32F030
    +關注

    關注

    1

    文章

    33

    瀏覽量

    6656

原文標題:TIMER3 “中斷丟失 ”現象分析

文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    TIMER3設置成外部捕獲模式,T3_EXT引腳每秒輸入10個脈沖,為什么得到的CNT寄存器和CAP寄存器的值這么大?

    TIMER3設置成外部捕獲模式,T3_EXT引腳 每秒輸入10個脈沖,但是得到的CNT寄存器和CAP寄存器的值怎么會這么大呢 TIMER3 CNT=8367060,CAP=51211
    發表于 01-17 07:40

    STM32入門篇之通用定時器徹底研究(新手教程,含11個例程,全面剖析TIMER,另外有個2.0庫的

    的,希望能給你帶來點幫助。例程列表:TIMER-1 : 定時器上溢。TIMER-2 : 強置輸出模式。TIMER-3 : 輸出比較模式。TIMER-4 : PWM1模式。
    發表于 11-27 09:07

    請問CC2540 timer3 timer4 的PWM怎么用?有沒有例程參考?

    本帖最后由 一只耳朵怪 于 2018-6-6 17:11 編輯 你好timer.h內的API貌似不能用,請問 timer3 timer4 的PWM怎么用?有沒有例程參考?
    發表于 06-06 00:10

    輸入捕獲模塊中斷發生會重置Time3值嗎?

    ,如果Time3當前值為65000,輸入捕獲發生在這里,在65536發生溢出計數器嗎?我的意思是說我還在檢查溢出計數器來識別低頻信號。它誤導了我嗎?我應該在第一個輸入
    發表于 09-18 14:58

    stm32F207 APB1輸出最大時鐘給TIMER3問題

    ”。AHB:即HPRE[3:0],PLL作為系統時鐘輸出為120M)(2)現象:配置TIMER3,120分頻,溢出中斷次數為1000,中斷產生周期是1ms(APB1,未分頻)。(
    發表于 12-11 09:01

    使用TMRxH和TMRxL中相同內容的Timer1和Timer3的工作方式截然不同

    這個問題,THX! 以上來自于百度翻譯 以下為原文 Hi, I was trying to use two timer(timer1 and timer3) to blink LED0
    發表于 03-01 07:25

    STM32F0 Timer3作為定時器輸出

    設置Timer3 中斷void TIM3_INT_Config(void){ NVIC_InitTypeDef NVIC_InitStructure; /* TIM3 clock en
    發表于 08-16 08:23

    NXP LPC1768 timer3定時器問題

    我配置timer3定時器,打印信息,結果只發現打印出了0,1打印不出來,感覺就是寫了一下寄存器就不行了,有大佬指點下么
    發表于 08-28 18:19

    STM32F0 Timer3是怎樣作為定時器輸出的

    STM32F0 Timer3是怎樣作為定時器輸出的?STM32F0 Timer3是怎樣作為中斷輸出的?
    發表于 11-16 06:03

    如何用timer3模擬霍爾信號TIH1、TIH2、TIH3出來?

    如何用timer3模擬霍爾信號TIH1、TIH2、TIH3出來?
    發表于 12-21 06:40

    MSP432定時器異常進捕獲中斷并沒有發生捕獲事件怎么解決

    MSP432定時器異常進捕獲中斷的問題問題描述:使用msp432定時器捕獲外接信號的上升沿,設斷點調試時發現總是會進中斷服務函數,但是并沒有發生
    發表于 02-15 07:02

    Timer3上設置定時器中斷無法生成PWM信號咋辦呢

    我正在使用 Bluepill 開發板。我想在 Timer2 上生成 PWM 信號,并在 Timer3 上以 20ms 的間隔設置一個定時器中斷。我意識到,如果我在 Timer3 上設置
    發表于 12-22 07:28

    BSP\\TIMER_Capture范例中,Timer0和Timer3的輸出頻率和手冊的不一致是為什么?

    各位大大安安,在官方BSP\\TIMER_Capture范例中,提到Timer0和Timer3的輸出頻率各位500Hz和1Hz,但是實際上則是1000Hz和2Hz,這其中是不是有什么誤會???,謝謝
    發表于 06-27 15:05

    TIMER3設置成外部捕獲模式,得到的CNT寄存器和CAP寄存器的值怎么會這么大呢?

    TIMER3設置成外部捕獲模式,T3_EXT引腳 每秒輸入10個脈沖,但是得到的CNT寄存器和CAP寄存器的值怎么會這么大呢 TIMER3 CNT=8367060,CAP=51211
    發表于 08-29 07:09

    MSP432定時器異常進捕獲中斷的問題

    MSP432定時器異常進捕獲中斷的問題問題描述:使用msp432定時器捕獲外接信號的上升沿,設斷點調試時發現總是會進中斷服務函數,但是并沒有發生
    發表于 12-16 16:53 ?8次下載
    MSP432定時器異常進<b class='flag-5'>捕獲</b><b class='flag-5'>中斷</b>的問題
    主站蜘蛛池模板: 成人欧美一区二区三区白人| 久久中文字幕无码A片不卡| 一二三四电影完整版免费观看| 美女隐私黄www视频| 国产色婷婷亚洲99精品| 99久久精品全部| 亚洲色偷偷偷网站色偷一区人人藻 | 99久久精品免费国产一区二区三区 | 日产久久视频| 久久免费看少妇高潮A片2012| 国产成人欧美日韩在线电影| 99热久久视频只有精品6国产| 凹凸精品视频分类视频| 18禁止观看免费私人影院| 亚洲国产高清福利视频| 双性被疯狂灌满精NP| 欧美 另类 美腿 亚洲 无码| 久久秋霞理论电影| 欧美一第一页草草影院| 美女拉开腿让男生桶到爽| 日本高清无卡码一区二区久久| 久久精品视频15人人爱在线直播| 国产视频精品在线偷拍| 国产老肥熟xxxx| 国产免费久久精品国产传媒| 久久机热视频 这里只有精品首页| 韩国无遮羞禁动漫在线观看96 | gayxxxxgay呻吟受日本| 99国产强伦姧在线看RAPE| 最近日本MV字幕免费观看在线 | 亚洲国产精品一区二区三区在线观看| 日韩精品真人荷官无码| 亚洲成人一区| 538prom精品视频我们不只是| 16女下面流水不遮图免费观看| 岛国精品在线观看| 国产成a人片在线观看视频99| 久 久 亚洲 少 妇 无 码| 久见久热 这里只有精品| 青青草原社区| 玩弄放荡人妻一区二区三区|