Q1. 定時器兩個中斷TAIE 和CCIE,有什么區(qū)別?兩個中斷的中斷向量一樣嗎?
A1:TAIE 和CCIE指的是不同事件。TAIE指TAR 計數(shù)器溢出,從65535 到0 的變化,由TAIFG 引起的。CCIE指捕獲到相應(yīng)信號(捕獲模式下);定時時間到(比較模式下)。由CCIFG引起的。兩個中斷的中斷向量不一樣,TAIFG 一般進TIMERA1_VECTOR;CCIFG 的話要看用的是哪個定時器如果是CCR0 的話就進TIMERA0_VECTOR,如果是CCR1,CCR2……則進TIMERA1_VECTOR。(中斷向量的寫法因器件不同而有所不同)
Q2 用F149 的定時器B 的捕捉功能, 遇到問題,在等待捕捉時,讀取TBR 的值總是隨機數(shù)。
A2:TBR 是一直再跑的,看TBCCRx。因為捕獲事件發(fā)生時,硬件會自動把TBR 的值保存到TBCCRx 中。
Q3:想輸出PWM,在中斷響應(yīng)后能改變PWM的頻率嗎?
A3:調(diào)整相應(yīng)的定時器配置,PWM的頻率和占空比都是可以改變的,不過周期頻率一般都是由CCR0據(jù)頂?shù)摹?p>
Q4:timerA 不能進入中斷檢查的一般思路?
A4:不能進入中斷一般檢查思路:
1:是否開所屬模塊中斷和總中斷
2:所屬模塊所用時鐘是否有效
3:觸發(fā)條件成立沒?標志位是否置位。
Q5. MSP430F149關(guān)于時鐘的問題
問題:時鐘采用8MHz,那么執(zhí)行for(i=0;i<980;i++);會花費多少ms?是不是1ms?另外,若是采用ADC12自帶的時鐘,在RC振蕩器在5MHz,且不分頻,執(zhí)行一次采集(采樣和轉(zhuǎn)換)會花費多長時間?
A5:執(zhí)行for(i=0;i<980;i++);這個得去看匯編看消耗了幾個機器周期這樣是看不出來的。當(dāng)然一般的做法是把程序運行在仿真狀態(tài)下,在執(zhí)行執(zhí)行for(i=0;i<980;i++)之前記下此時的CYCLECOUNTER(VIEW-->register)該語句執(zhí)行完畢之后記下這時的CYCLECOUNTER,2者相減,在乘以MCLK的周期。若是采用ADC12自帶的時鐘,在RC振蕩器在5MHz,且不分頻:ADC12采樣是12個ADC12CLK 外加一個ADC12CLK 用來把結(jié)果存到ADC12MEM。所以時間t=13*1/5M 秒。
Q6:430F149,中TACTL 中SCCI 是什么功能?
A6:Latched capture signal (read)處于捕獲模式時,接入的信號狀態(tài)0/1。
Q7:程序執(zhí)行完成后,進入LPM3 模式,大約過3 秒鐘之后,又再進入正常模式,即從LPM3退出,再一次從頭開始執(zhí)行程序,執(zhí)行完成后,再一次進入LPM3 模式。如此往復(fù)循環(huán)下去。請問這個能不能通過定時器A來實現(xiàn)?
A7:能。
1、在主程序中完成初始化后進入LPM3 模式。
2、在LPM3 模式下,ACLK必須工作,并且TA選擇ACLK為時鐘源。
3、當(dāng)TA 中斷時,CPU 在進入TA中斷服務(wù)前,會自動喚醒。
4、在TA 中斷服務(wù)中調(diào)用要被周期性執(zhí)行的程序。
5、從TA 中斷服務(wù)返回后,CPU 又會自動恢復(fù)到中斷發(fā)生前的LPM3 模式(即,主程序會永遠停留在進入LPM3
模式的那條語句中程序)。
Q8:中斷向量和中斷標志寄存器的區(qū)別?
A8:IICIFG 是中斷標志,指示是否產(chǎn)生中斷。IICIV是中斷向量,是中斷代碼的入口地址。MCU 首先查詢是否有中斷標志產(chǎn)生,如果有,再查詢中斷向量,轉(zhuǎn)去執(zhí)行中斷服務(wù)程序。
Q249. 關(guān)于TIMERA 計數(shù)問題
用TIMERA 對外來脈沖計數(shù),脈沖輸入TACLK,讀到的值總是不準,不知道各位有什么高招?TIMERA 益出有什
么好辦法可以連續(xù)計數(shù)?
A10:
1、應(yīng)該是漏計了,輸入頻率不是很高,最高也就是20KHZ。
2、TIMERA 我用的是連續(xù)計數(shù)到0XFFFF 后中斷的方式,在溢出中斷里累計中斷次數(shù)。然后應(yīng)用程序里面用溢
出次數(shù)*65535+TAR 值,就是連續(xù)計數(shù)值。
Q11:知道定時器可輸出自定義占空比的PWM波,找了些參考程序看,大概是這樣的
TACTL=TASSEL0+TACLR+MC0;
CCTL0=CCIE;
CCR0=360;
CCR1=327;
CCTL1=OUTMOD_2;
P2SEL |= BIT5;
這樣是不是直接從P2.5端口輸出PWM波,芯片不能工作在低功耗下啊?怎么樣讓芯片工作在低功耗,等有波形翻轉(zhuǎn)時產(chǎn)生中斷啊?
A11:OUTMOD_7 我推薦那樣比較好計算指定占空比時CCR1 與CCR0 的值,這種情況下芯片可以工作在低功耗模式下只要你保證在該模式中你的TA 時鐘源仍然開啟就行,至于波形翻轉(zhuǎn)這些都是硬件完成,無需CPU干預(yù)。
Q12:想用TA 的CCR0 定時中斷,增記數(shù)模式,但我看書上的CCIFG0的設(shè)置只有在CCR0與TAR 的值相等時才置位,下一個周期馬上又復(fù)位了。要是此時正在運行一條指令,那豈不是錯過了進入中斷了嗎?
A12:CCIFG0 應(yīng)該是響應(yīng)了中斷服務(wù)程序后才復(fù)位的或者用指令清除,不會錯過的.。
Q13:MSP430 中斷所需的最小輸入脈寬是多少?
A13:最小中斷脈寬必須大于1.5 主時鐘周期(MCLK),以確保中斷有效。有關(guān)問題請參閱器件特定的數(shù)據(jù)表。
Q14:430 在低功耗模式下, 是哪幾個模式(LPM0,LPM1,LPM2,LPM3,LPM4) 下,還支持看門狗。LPM3,LPM4支持看門狗嗎。
A14:在只有在LPM4 模式下,看門狗才關(guān)掉,其他模式下只要選擇了看門狗模式,時鐘會一直跑。
Q15:在某種模式下把看門狗使能,那么功耗將增加多少?
A15:這個定時器模塊不會引起額外的功耗(lpm3 模式下,不論是否開啟看門狗,系統(tǒng)耗電會低于1uA)。
Q16系統(tǒng)復(fù)位后,如何判斷是看門狗引起的復(fù)位呢,還是上電引起的復(fù)位呢?能不能通過看門狗中斷標記來判
斷?是不是看門狗做定時器時才能使能看門狗中斷控制位?
A16:看門狗引起復(fù)位會在標志寄存器中的WDTIFG 為1,而上電復(fù)位為0。
Q17:一般使用如下指令進行看門狗停止:WDTCTL = WDTPW + WDTHOLD; //關(guān)閉看門狗。那么看門狗打開是否可以采用指令:WDTCTL &= ~(WDTPW + WDTHOLD); //打開看門狗?
A17:需要理解WDTPW、WDTHOLD 的具體意思。這些都在頭文件中的宏定義。WDTPW為寄存器訪問密鑰,如果寫入錯誤的密鑰,會產(chǎn)生復(fù)位;WDTHOLD為看門狗時鐘關(guān)閉;寄存器WDTTMSEL選擇看門狗是工作在定時器模式還是在看門狗模式,所以要打開看門狗應(yīng)該WDTCTL = WDTPW + WDTTMSEL;具體定時時間可以看頭文件,頭文件中都有注釋。
Q18在程序中間采用如下指令:WDTCTL = WDTPW + WDTCNTCL;//清開門狗,防止在程序正常運行中復(fù)位。是否正確?
A18:錯誤,程序一樣會復(fù)位。WDTCNTL為清除計數(shù)器,WDTHOLD 為關(guān)閉計數(shù)器,兩個寄存器的概念不一樣,使用時需要注意。
Q19:用F149的定時器B 的捕捉功能, 遇到問題,在等待捕捉時,讀取TBR 的值總是隨機數(shù),我用軟件在線調(diào)試觀察的。
A19:別讀TBR。讀TBCCRx 就OK了,捕獲到信號時TBR的值自動復(fù)制到TBCCRX的值。
Q20我想輸出PWM,在中斷響應(yīng)后能改變PWM的頻率嗎?
A20:調(diào)整相應(yīng)的定時器配置,PWM 的頻率和占空比都是可以改變的。CCR0 的值改變周期,CCR1(和輸出對應(yīng)的寄存器)改變占空比。
Q21使用MSP430 產(chǎn)生PWM 波形,一般抖動問題如何解決?
A21:提高時鐘精度。
Q22中斷向量和中斷標志寄存器的區(qū)別?
A22:IFG 是中斷標志,指示是否產(chǎn)生中斷。IV 是中斷向量,是中斷代碼的入口地址。MCU 首先查詢是否有中斷標志產(chǎn)生,如果有,再查詢中斷向量,轉(zhuǎn)去執(zhí)行中斷服務(wù)程序。
Q23使用了Timer_B的單元1 和單元2測量頻率,計數(shù)過程中發(fā)生的溢出中斷,如何判斷這個溢出中斷是哪個單元產(chǎn)生的?
A23:TIMER_B 使用兩個中斷向量TBCCR0 中斷向量CCIFG 和TBIV 中斷向量。TBIV包含所有其他的CCIFG 和TBIFG。
Q24用430 單片機進行連續(xù)的數(shù)據(jù)采集,每次持續(xù)時間得幾十秒,但是還要用單片機實現(xiàn)實時時鐘功能,期間每秒都得進Timer 中斷計時。這樣勢必會影響數(shù)據(jù)的連續(xù)采集。這種矛盾該怎么解決呢?
A24:數(shù)據(jù)采集啟動后,有一定的時間才能完成AD 轉(zhuǎn)換.這段時間內(nèi),CPU要么空轉(zhuǎn),要么進行時鐘處理.因此我認為CPU干這兩件工作完全勝任,只要:
1. 提高CPU 時鐘到8MHz。
2. 用中斷方式進行AD 及時鐘處理,中斷程序要高效小巧。
3.數(shù)據(jù)采集從微觀上講,并不是連續(xù)不停進行的(這是模擬電路的帶寬及數(shù)據(jù)穩(wěn)定所決定的),因此合理選擇單位時間內(nèi)AD 轉(zhuǎn)換的次數(shù)。
4.要連續(xù)采集幾十秒數(shù)據(jù),單位時間內(nèi)AD 轉(zhuǎn)換的次數(shù)應(yīng)與系統(tǒng)的數(shù)據(jù)存儲空間大小一并考慮。
Q25一個TA 或TB 最多只能產(chǎn)生兩個中斷嗎。要不是的話,中斷向量表該怎么處理??
A25:應(yīng)該說是兩個中斷向量地址,不能說產(chǎn)生兩個中斷。TA、TB 總4 個中斷向量地址,TA、TB 各有兩個,如TIMER_A 的比較模式采用CCR0、CCR1、CCR2 就可以產(chǎn)生三個中斷,但中斷入口只有兩個,CCR0 占用一個,CCR1、CCR2、TAIFG 占用一個,通過中斷標志來判斷是那個中斷源引起的中斷。
上一篇:MSP430 中斷優(yōu)先級
下一篇:最后一頁
推薦閱讀
史海拾趣
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- 意法半導(dǎo)體推出用于匹配遠距離無線微控制器STM32WL33的集成的匹配濾波芯片
- ESP32開發(fā)板連接TFT顯示屏ST7789跳坑記
- 如何讓ESP32支持analogWrite函數(shù)
- LGVL配合FreeType為可變字體設(shè)置字重-ESP32篇
- 使用樹莓派進行 ESP32 Jtag 調(diào)試
- ESP32怎么在SPIFFS里面存儲html,css,js文件,以及網(wǎng)頁和arduino的通訊
- ESP32 freeRTOS使用測試
- API調(diào)用小記(Touchdesigner和ESP32)
- 關(guān)于ESP32/8266使用async-mqtt-client庫的一些基本介紹
- 座椅、天窗、電動尾門應(yīng)用 國產(chǎn)車規(guī)級高壓霍爾效應(yīng)傳感器推薦
- 突發(fā)!又一車企車機“崩了”
- 寧德時代為陳立泉院士頒發(fā)“卓越貢獻獎”
- 一文速覽吉利雷神 AI 電混 2.0 發(fā)布會重點
- 2025年1-4月ADAS供應(yīng)商裝機量排行榜:頭部集中與國產(chǎn)突圍并存
- 國內(nèi)飛行汽車無線通信測試成功,通信安全新突破
- SPAD席卷車載激光雷達市場
- 大聯(lián)大品佳集團推出基于Microchip和ams OSRAM產(chǎn)品的10Base-T1S萬級像素大燈方案
- 哈曼推出采用三星Neo QLED技術(shù)的全新顯示屏
- Syntiant推出超低功耗汽車AI創(chuàng)新技術(shù) 提升車輛安全性和用戶體驗
- 羅姆有獎直播|從0到1,帶你了解電機及其驅(qū)動 開始報名啦~
- 省錢、省心的購買租賃方案,讓您不再為預(yù)算煩惱!
- Discover mmWave 走進 TI 毫米波雷達世界 快速獲得設(shè)計技能
- 嵌入式Rust修煉營:動手寫串口燒錄工具和MCU例程,Rust達人Hunter直播帶你入門Rust
- EEWorld 芯積分兌換年度回饋來襲~多種賺積分捷徑曝光+禮品兌換劇透
- 有獎直播:艾邁斯歐司朗智慧農(nóng)業(yè)與植物照明
- ADI有獎下載活動之7 可編程邏輯控制器(PLCs)解決方案
- 開發(fā)板芯幣競拍,每日一款!今日競拍開發(fā)板:大黃蜂開發(fā)板
- ADI有獎下載活動之13升級版ADI電機控制解決方案—伺服控制