![]() |
發(fā)布時間: 2018-3-21 18:52
正文摘要:本帖最后由 dsj0430 于 2018-3-21 18:54 編輯 為什么調(diào)試到箭頭所指那一行就停止了,怎么能繼續(xù)運行調(diào)試。 這是一個AD轉(zhuǎn)換計算電壓的函數(shù) |
中斷還是查詢? |
wulin 發(fā)表于 2018-3-22 07:22 你的方法我明白了 |
由于AD轉(zhuǎn)換完成標(biāo)志是由硬件置位,調(diào)試時只能用軟件模擬AD轉(zhuǎn)換完成,調(diào)試成功后刪除此語句 uint Read(uchar CHA) { ADC_CONTR=ADC_POWER|ADC_SPEEDLL|CHA|ADC_START;//啟動轉(zhuǎn)換1000 1000 _nop_(); //延時確保正確讀到ADC_CONTR寄存器的值 _nop_(); _nop_(); _nop_(); // ADC_CONTR |=0x10; //軟件模擬轉(zhuǎn)換完成 while(!(ADC_CONTR & ADC_FLAG)); //等待ADC轉(zhuǎn)換完成標(biāo)志置位 ADC_CONTR &=~ADC_FLAG; //關(guān)閉ADC return(ADC_RES*4+ADC_RESL); //返回十位ADC結(jié)果 } |
while(!(ADC_CONTR && ADC_FLAG)),此處的代碼應(yīng)該這樣寫,一個&這個符號是表示取地址,兩個才表示與,此處的while里面是判斷語句,應(yīng)該用邏輯與而不是取地址 |
可能是模擬MCU有問題,ADC_CONTR ADC_FLAG這二個標(biāo)志未同時改變,只有強(qiáng)制跳出語句 |
Powered by 單片機(jī)教程網(wǎng)