㈠ IAR用J-LINK往MSP430下載程序,為啥一直出現這個是我沒插好硬體還是軟體本身問題還是沒有驅動呢
1:(使用的IAR版本為EW430-EV-web-5201破解版)在「make」和「compile「均沒問題的情況下,」dowload and debug「時出現」Fatal error: Failed to initialize. Check if hardware is connected. Check if drivers are installed. Try to restart the computer. Tools using the parallel port are not supported on Windows Vista Session aborted」
2:驅昌慎動和BSL下載器均已安裝。將IAR生成的BUZZER1.txt文檔用BSL下載器燒寫後單片機運行正常,有蜂鳴聲。
此時懷疑是IAR版本問題,所以去官網下載了最新版本。此時出現了以下問題。
3:(使用的IAR版本為EW430-5607試用版)在「make」和隱譽「compile「均沒問題的情況下,」dowload and debug「時出現fatal error:failed to re-initialize session aborted!灶迅段
希望能幫到你,有問題可以去系統聖地的教程看看。
㈡ msp430編程定時器B的中斷
微控論壇原創主貼 作者:bobo 微控論壇特約
因DC的邀請寫一個有關中斷的東東,我也接觸430不久只能以自己的心得體會更大家分享,若有紕漏懇請見諒。MSP430用戶手冊上有的中斷介紹我就不贅述了,大家可以看User Guider.我講的主要是書上沒有的,或者是點的不透的。希望對大家有用。
1.中斷嵌套,優先順序
430總中斷的控制位是狀態寄存器內的GIE位(該位在SR寄存器內),該位在復位狀態下,所有的可屏蔽中斷都不會發生響應。可屏蔽中斷又分為單中斷源和多中斷源的。單中斷源的一般響應了中斷服務程序中斷標志位就自動清零,而多中斷源的則要求查詢某個寄存器後中斷標志位才會清零。由於大多數人接觸的第一款單片機通常是51,51單片機CPU在響應低優先順序的中斷程序過程中若有更高優先順序的中斷發生,單片機就會去執行高優先順序,這個過程已經產生了中斷嵌套。而430單片機則不同,如果在響應低優先順序中斷服務程序的時候,即使來了更高優先順序的中斷服務請求,430也會置之不理,直至低優先順序中斷服務程序執行完畢,才會去響應高優先順序中斷。這是因為430在響應中斷程序的時候,總中斷GIE是復位狀態的,如果要產生類似51的中斷嵌套,只能在中斷函數內再次置位GIE位。
2.定時器TA
TimerA有2個中斷向量。TIMERA0,TIMERA1
TIMERA0隻針對CCR0的計數溢出
TIMERA1再查詢TAIV後可知道是CCR1,還是CCR2,亦或TAIFG引起的,至於TAIFG是什麼情況下置位的,則要看TA工作的模式
具體看用戶手冊。還有一點TA本身有PWM輸出功能,無須借用中斷功能。在這個問題上經常出現應用彎路的是如何結合TA和AD實行定時采樣的問題,很多人都是在TA中斷里打開AD這樣來做。這是不適宜的,因為430 的ADC10,ADC12(SD16不熟悉,沒發言權)模塊均有脈沖采樣模式和擴展采樣模式。只要選擇AD是由TA觸發采樣,然後把TA設置成PWM輸出模式,當然輸出PWM波的都是特殊功能腳,但是在這里它是不需要輸出的,所以引腳設置不必理會。值得關心的就是PWM的頻率,也就是你AD的采樣率。
3.看門狗復位
看門狗有2種工作模式:定時器 ,看門狗
定時器工作模式下WDTIFG在響應中斷服務程序有標志位自動復位,而在看門狗模式下,該標志位只能軟體清零。但是怎麼判斷復位是由於WDT工作在看門狗模式下的定時溢出引起的,還是看門狗寫密鑰錯誤引起的呢?………………………………
答案是沒有方法,至少我沒見過有什麼方法,也沒見過周邊的人有什麼方法。若有人知道方法謝謝分享。
4.經常有人會問這個語句的MOV.B #LPM0,0(SP)的作用。假如你在進入中斷函數之前,430是在LPM0下待機,若要求執行完中斷函數之後進入LPM3待機,在中斷函數里寫MOV.B #LPM3,SR是無效的。因為在進入中斷時430會把PC,SR壓棧,( SR內保存著低功耗模式的設置)即使你寫了MOV.B #LPM3,SR,在退出中斷出棧時SR會被重新設置成低功耗0,要達到這樣的目的,只能更改堆棧內SR的設置:MOV.B #LPM0,0(SP)。
5中斷向量:
430的中斷向量是FFE0H—FFFFH,一共32個位元組也就是FLASH的最後一段,430的FLASH有大有小,但是最後地址肯定是FFFFH(大FLASH超過64K的除外)所以它們的起始地址是不一樣的,而一般IAR默認編譯都是把程序放在FLASH開始的位置(不包括信息段)。
有個值得弄清楚的問題是:什麼是中斷向量?中斷向量實際就是保存中斷函數入口地址的存儲單元空間。就像FFFEH+FFFFH這2個位元組是復位中斷向量,那麼它存儲的就是主函數在FLASH內的起始地址,假如主函數保存在以0x1100為起始地址的FLASH塊內,那麼你會發現FFFFH 內保存的是0x11, FFFE內保存的是0x00.其他什麼TimerA,ADC12,所有的都一樣。只是你每次寫的程序長短不一,中斷函數放的位置不一樣。IAR編譯器都會給你定好,然後在你用JTAG燒寫程序的時候,把這個地址,燒寫到相應的中斷向量。因為中斷函數所處地址可以由用戶自定義,也可以讓IAR自動編譯,所以這個地址除了源代碼開發人員知道,其他人是不知道的,BSL就是應用這32個位元組的中斷向量內的內容的特殊性設置的密碼。但是有幾個東西在430是不變的,就是觸發中斷的條件滿足後,它到哪個地方去定址中斷服務函數的入口地址,是TI 在做430時就固化好,定死的。比方說上電復位的時候,它知道去FFFE,FFFF單元找地址,而不去FFE0,FFE2找地址,這個映射關系是430固化不變的。可有的時候你就是需要改變「中斷向量」,這怎麼辦?430FLASH程序自升級里有時就會碰到這個問題,方法是在430原來默認的中斷向量表內做一個跳轉操作,同樣以上電復位為例:
ORG 0x2345
PowerReset: mov.w &0xFCFE,PC
…………………………
…………………………
ORG 0xFFFE
DW PowerReset
㈢ 給MSP430單片機燒寫程序的軟體都有哪些 我只知道有BSL_430 請大蝦賜教啊 先行謝過了
看你的問題,你應該是只有一個BSL下載方式的燒寫器,我這里有LSD-BSL430、LSD-BSL430 V2.0、MspFet、SF_BSL430這些燒寫軟體,不過我一個都沒有用過,我當初自己做了一個BSL,但是不成功,後來DIY了一個USB UIF的,其實是買散件自己焊接的。這種模擬器比只能下載的BSL好多了,就是稍微貴了點,不過值得買
㈣ 請問如何在WIN7下安裝430 BSL編程器的驅動程序 希望好心人指導一下…………
這個東西沒用過,不過看來是沒有專門的win7版本了,你右鍵點那文件選屬性,選中兼則滲容模耐盯配式,然後用昌指管理員身份運行它試試