python msp430 MSP430的比較器

2021-10-12 11:28:47 字數 1385 閱讀 7183

這兩天研究了一下430的比較器,開始的時候,沒有看懂是怎麼一回事,在**看這方面的部落格,好像懂了,但是一到程式設計,就變得無從下手,但是,皇天不負有心人,筆者還是把他弄懂了

其實這裡就是看懂一幅圖,兩個暫存器,明白工作原理就可以了

這是比較器a的邏輯圖,比價器a由4個部分組成

標號2,:外部電壓輸入端,ca0對應p2.3,ca1對應p2.4

標號3:內部比較器,今天上課剛好上了比較器,也就是正輸入端大於負輸入端的時候,比較器輸出乙個1,同時產生乙個中斷標誌位

標號4:也就是比較結果輸入端

因此,一般的模版就可以出來了

2:開啟外部的輸入端

3:設定外部i/o的屬性,也就是p2.3或者p2.4的輸入屬性

4:判斷輸出的結果

步驟一對應上個步驟的1:這時候就要熟悉暫存器了,比較器a有兩個暫存器cactl1,cactl2

翻譯就是,將cactl1 = 內部參考電壓在比較器的正向端輸入還是反向端輸入+選擇是0.25v參考電壓還是0.5v參考電壓+開啟比較器a

步驟二對應上個步驟的2

開啟外部的輸入端:用的是cactl2,cactl2=p2cao

翻譯就是,外部選擇的是p2cao也就是講p2.3作為輸入端,

步驟三:設定i/o屬性

p2dir = 0x00;//把io設為比較器的輸入端

p2sel |=bit3;

步驟四:比較輸入輸出結果:

這時候也要熟悉暫存器了,cactl2中的最低位,也就是caout,如果正向端大於負向端的話,cout變為1,這時候典型的判斷語句就是

if((cactl2|0xfe) == 0xff)//最低位如果置位為1的話,cactl1中的最低位,也就是比較器的中斷標誌位也會置位

進一步操作;

中斷標誌置位為1

示例**:將p2.3輸入的電壓與0.25進行比較,如果大於的話,點亮led燈,並將中斷標誌清除

#include

void main( void )

// stop watchdog timer to prevent time out reset

wdtctl = wdtpw + wdthold;

cactl1 =carsel +caref1 +caon;

cactl2 = p2ca0;

p2dir = 0x00;//把io設為比較器的輸入端

p2sel |=bit3;

p3out |=bit5;

p3dir |=bit5;

while(1)

if((cactl2 |0xfe)==0xff)

p3out &=~bit5;     //比較電壓是否超過0。25v

cactl1 &=0xfe;     //清除中斷標誌

else

p3out |=bit5;

MSP430教程8 MSP430微控制器復位電路

msp430 微控制器系統復位電路 從上msp430 系統復位電路功能模組圖中可以看到了兩個復位訊號,乙個是上電復位訊號 por power on reset 和上電清除訊號 puc power up clear por 訊號是器件的復位訊號,此訊號只有在以下的事件發生時才會產生 器件上電時。rst...

msp430鍵盤程式

msp430 按鍵程式 含電路圖及源 include void init port void void delay void int keyprocess void return nres 處理來自埠 1 的中斷 interrupt port1 vector void port isr void i...

MSP430電平轉換

說道到這個電平轉換,寫程式的時候居然還要示波器來觀察現象,表示我們交的是211的學費,上的卻不是211大學,創新實驗室的儀器裝置真的是少的可憐啊,我級不吐槽了說說這個電平轉換的一些知識還有看法吧。看到原理圖首先得說說接線帽的問題,這個很重要,接線帽 的使用會連線到不同的引腳上,大家看原理圖的時候就會...