關(guān)于定時(shí)器中斷,如何實(shí)現(xiàn)重復(fù)中斷

我在論壇里找到了這個(gè)帖子

http://www.findthetime.net/bbs/thread-72721-1.html

為什么我用這個(gè)程序,它只中斷一次?

您好,參考該貼下面回復(fù),注意中斷函數(shù)要加中斷聲明

void TIM3_IRQHandler(void) __attribute__((interrupt("WCH-Interrupt-fast")));


原來是這樣,好的謝謝


@TECH62 請問各中斷服務(wù)程序,函數(shù)名要怎么寫? 在哪個(gè)資料里?



您好,可參考啟動(dòng)文件相關(guān)函數(shù)寫法,如下圖

image.png


好的,謝謝,中斷服務(wù)程序入口程序已經(jīng)找到了。另外有幾個(gè)問題

  1. 中斷服務(wù)程序必須要聲明,是因?yàn)檫@是一個(gè)回調(diào)函數(shù)嗎? STM32的中斷服務(wù)程序也是要這樣聲明的嗎?

  2. __attribute__((interrupt("WCH-Interrupt-fast")))? 的作用是啥? "WCH-Interrupt-fast"這是你們定義的一個(gè)讓編譯器進(jìn)行某種操作的相當(dāng)于命令的意思嗎?如果是的話,具體是什么意思呢?

    謝謝!


您好,使用CH32V系列MCU需要加該中斷聲明,其他不需要。關(guān)于中斷聲明的解釋,可以參考一下下帖解釋,如下圖。后續(xù)若有問題,可通過郵箱(lzs@wch.cn)和我溝通。

https://bbs.21ic.com/icview-3038794-1-1.html?

image.png


好的,明白了,謝謝

我看了啟動(dòng)文件,中斷服務(wù)程序的所有回調(diào)函數(shù)入口地址都是跳轉(zhuǎn)到1b執(zhí)行( j 1b ), 如果不聲明自己的中斷處理函數(shù),產(chǎn)生的中斷就不會(huì)回調(diào)我們寫的中斷服務(wù)程序,導(dǎo)致程序( j 1b ),從而導(dǎo)致程序跑飛


@TECH62 對了,為什么中斷服務(wù)程序里,還要先檢查是否發(fā)生中斷?難道還能有其它情況進(jìn)入中斷服務(wù)程序(程序跑飛?)?


void TIM3_IRQHandler(void)

{

? ? static u8 i=0;

? ? if (TIM_GetITStatus(TIM3, TIM_IT_Update)!=RESET)? ? //檢查TIM3中斷是否發(fā)生



我去百度了一下,明白了,謝謝


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频

字体
字号
代码语言