關於定時器何時選用溢位中斷還是比較捕獲中斷請參考以下部落格
中斷解惑
定時器a捕獲模式以f149為例請參考以下部落格
捕獲模式參考定時器a
接下來介紹本人使用的定時器b,定時器b和a基本差不多定時器b具有7個比較捕獲單元兒定時器a只有三個
定時器基本原理本章就不細講了可參考之前的定時器a
定時器a詳解
本章著重講解定時器的捕獲模式
定時器b的比較捕獲模組使用cap這位來進行選擇
當cap=1選擇捕獲模組也就是本章介紹的模式
當cap=0選擇比較模組
使用ccisx位選擇外部訊號ccia或ccib或者內部訊號
cmx位選擇上公升沿捕獲下降沿捕獲或者上公升沿下降沿都捕獲,如果發生了捕獲事件時間值會被記錄在tbccrx暫存器中,同時ccifg會被置一,輸入的電平訊號可以通過cci位被任意時刻進行讀取。
捕獲事件對於對於時鐘來說可能是同步捕獲或者非同步捕獲,通過scs位設定是同步捕獲或者非同步捕獲!
定時器b捕獲模式包含了邏輯溢位模組,(cov)用來指示在進行讀取第一次捕獲值之前是否進行了第二次捕獲,所以在退出中斷函式之前需要判斷cov位並在最後進行復位
定時器b還有乙個比較有特點的是可以進行分組,將7個定時器分成幾組
/*晶元:msp430f169
功能:使用定時器b捕捉外部訊號
埠: p42 p44 作為觸發訊號 p42以1.2s乙個週期傳送100ms高電平公1500次
p44按鍵觸發 傳送1.2s週期100ms高電平
p41 p43 p45復用為定時器b捕獲模式捕獲外部反饋訊號
p41捕獲外部按鍵的低電平
p43 p45捕獲反饋訊號高電平
p64 作為反饋訊號指示燈
捕獲到反饋訊號上公升led閃爍
*/unsigned
int i;
void
main
(void)}
}void
gpio_init
(void
)//io初始化
void
timerb_init
(void
)//定時器b初始化
#pragma vector=timerb1_vector
//中斷函式
__interrupt void
timer_b1
(void
)//1016~2020
tbctl &=~
0x01;}
void
system_clock
(void
)//時鐘初始化
while
((ifg1&ofifg)!=0
);bcsctl2=
0x88
;}使用者指導手冊
晶元管腳手冊
MSP430定址模式
msp430的cpu支援7種源定址和4種目的定址 可利用暫存器的8 16和20位,長度為1 2或者3個字長。byte操作 讀源暫存器的低8位,然後將其寫入目的暫存器對應的低8位,目的暫存器的8 19位會被清空而源暫存器不受影響 word操作 讀源暫存器的低16位,然後將其寫入目的暫存器對應的低16位...
MSP430低功耗模式
msp430的電壓已經降到了3.3v,雖然不是最低的 arm的部分晶元核心工作電壓降到了1.8v 但是這已經是比較低的了 msp430比較出彩的地方乙個是把一顆晶元分成了n個不同的模組部分,不用的部分功能模組可以關閉掉,電流近似為零 另乙個出彩的地方是,可以有三個時鐘源,並產生更多的內部可用工作頻率...
msp430鍵盤程式
msp430 按鍵程式 含電路圖及源 include void init port void void delay void int keyprocess void return nres 處理來自埠 1 的中斷 interrupt port1 vector void port isr void i...