感言:看了這一集MSP430的講解之后,我才知道m(xù)sp430真的和arm7沒什么區(qū)別了,可能在某些功能上要比arm7要優(yōu)秀
1:430的系統(tǒng)復位和初始化初始化
430的系統(tǒng)復位有兩個來源
1:POR上電復位,他有3個來源可以是給器件上電,發(fā)現(xiàn)電壓不穩(wěn)定,給復位電路一個復位信號都可以導致產(chǎn)生一個復位信號
2:PUC上電清除,他也有4個來源,可以是產(chǎn)生了一個POR的中斷,可以是看門狗定時器的溢出,也可以是看門狗的密匙出現(xiàn)錯誤,還可以是flash讀寫錯誤
在430單片機上電來一個復位信號,初始化內(nèi)部寄存器,保證cpu的正常工作,同時pc指向oxffe,sp的話指向堆棧頂部,430有一個很獨特的地方,就是看門狗是默認開啟的
430的中斷分為3類:系統(tǒng)復位,非可屏蔽中斷,可屏蔽中斷
1:系統(tǒng)復位指的是POR和PUC中斷
2:非可屏蔽中斷,就是狀態(tài)寄存器控制不了,有情況產(chǎn)生,立即產(chǎn)生一個中斷,意外情況包括:片外振蕩器失效,對flash空間的錯誤訪問等等
3:可屏蔽中斷,必須要在狀態(tài)寄存器上開總中斷才能控制
430的中斷響應(yīng):(需要六個機器周期)
步驟如下:1:執(zhí)行完當前pc指向的語句
2:取出下一條的語句的地址,還有狀態(tài)寄存器的值,壓入堆棧
3:通過仲裁邏輯判斷中斷的優(yōu)先級別
4:執(zhí)行中斷服務(wù)程序(注意的是,對于單元的中斷,中斷的標志位會自動清楚,比如串口中斷,但是對于多元的中斷,比如POR和PUC中斷,就必須由用戶手動清除
5:取回堆棧中的地址,還有狀態(tài)寄存器的值,繼續(xù)執(zhí)行原始程序
430的通用I/O也很有意思
它具有6組通用的I/O,但是和其他的單片機不同,它的I/O的方向是默認的是輸入方向,其中中功能達到了空前的數(shù)量,P1和P2都可以作為外部中斷,所以中斷的個數(shù)也有16個,430的中斷只能夠是邊沿跳變觸發(fā),不能是電平觸發(fā),用戶可以自己設(shè)置是上升沿還是下降沿觸發(fā)中斷
由于I/O的管腳是默認輸入的,因此,要對其進行設(shè)置,這又涉及了寄存器的操作,過程詳細的看datasheet