找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

帖子
查看: 2448|回復(fù): 15
收起左側(cè)

keil的單片機(jī)AD轉(zhuǎn)換程序調(diào)試

[復(fù)制鏈接]
ID:1089588 發(fā)表于 2023-8-10 10:30 | 顯示全部樓層 |閱讀模式
想問一下大家,在keil在線調(diào)試的過(guò)程中,怎么手動(dòng)把ADC_CONTR寄存器里的ADC_FLAG位置1呢,或者說(shuō),怎么模擬一個(gè)ad值給它,運(yùn)行時(shí)一直卡在標(biāo)藍(lán)處不動(dòng)了
51hei截圖_20230810102751.png
回復(fù)

使用道具 舉報(bào)

ID:94031 發(fā)表于 2023-8-10 14:56 | 顯示全部樓層
實(shí)際器件會(huì)自動(dòng)返回1,人為返回1調(diào)試沒有意義。
回復(fù)

使用道具 舉報(bào)

ID:123289 發(fā)表于 2023-8-10 16:10 | 顯示全部樓層
將本句暫時(shí)改成 while(1或0)
調(diào)試完成后改回。
回復(fù)

使用道具 舉報(bào)

ID:1085441 發(fā)表于 2023-8-10 16:28 | 顯示全部樓層
你應(yīng)該查查是不是單片機(jī)初始化不對(duì)?造成一直在等待轉(zhuǎn)換結(jié)束,否則ADC不會(huì)出現(xiàn)這個(gè)問題
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2023-8-10 17:20 | 顯示全部樓層
直接注釋掉 while(!(ADC_CONTR & ADC_FLAG));,調(diào)試完后改回來(lái)。
回復(fù)

使用道具 舉報(bào)

ID:161164 發(fā)表于 2023-8-10 17:42 | 顯示全部樓層
本帖最后由 lkc8210 于 2023-8-10 17:53 編輯

1.在while行打斷點(diǎn)
2.在Memory1窗口輸入D:0xBC(ADC_CONTR的地址)
3.按運(yùn)行,會(huì)停在while行
4.在0xBC位置的值加0x10
如現(xiàn)在看到89(即0x89) 0x89+0x10 = 0x99
2023-08-10_173252.png


5.在0xBC位置輸入99
6.再按運(yùn)行就會(huì)跳出while
2023-08-10_173905.png


回復(fù)

使用道具 舉報(bào)

ID:1089588 發(fā)表于 2023-8-10 18:42 | 顯示全部樓層
是不是代碼有問題呢,清除標(biāo)志位是不是不該這么寫呢
回復(fù)

使用道具 舉報(bào)

ID:647261 發(fā)表于 2023-8-10 19:21 | 顯示全部樓層
while語(yǔ)句后面沒有加“;”,這樣就會(huì)把下一句當(dāng)成是while的循環(huán)體,剛好下一句是清零,就永遠(yuǎn)在while這里循環(huán)了
回復(fù)

使用道具 舉報(bào)

ID:647261 發(fā)表于 2023-8-10 19:30 | 顯示全部樓層
舉個(gè)例子:
a=2;
while(a--);
a=1;
a=2;
執(zhí)行結(jié)果:a=2
假如少了個(gè)分號(hào)
a=2;
while(a--)
a=1;
a=2;
程序就執(zhí)行不下去了,一直while循環(huán)
這樣可以理解吧
回復(fù)

使用道具 舉報(bào)

ID:1089588 發(fā)表于 2023-8-11 09:31 | 顯示全部樓層
sttt300 發(fā)表于 2023-8-10 19:21
while語(yǔ)句后面沒有加“;”,這樣就會(huì)把下一句當(dāng)成是while的循環(huán)體,剛好下一句是清零,就永遠(yuǎn)在while這里 ...

對(duì)的,是我疏忽了,之前試了別的跳出方式忘了加;
回復(fù)

使用道具 舉報(bào)

ID:1089588 發(fā)表于 2023-8-11 09:37 | 顯示全部樓層
lkc8210 發(fā)表于 2023-8-10 17:42
1.在while行打斷點(diǎn)
2.在Memory1窗口輸入D:0xBC(ADC_CONTR的地址)
3.按運(yùn)行,會(huì)停在while行

原來(lái)如此,強(qiáng)啊,話說(shuō)如果在線仿真可以采到ad值嗎,還是說(shuō)一定要實(shí)物呢
回復(fù)

使用道具 舉報(bào)

ID:1089588 發(fā)表于 2023-8-11 09:38 | 顯示全部樓層
xuyaqi 發(fā)表于 2023-8-10 14:56
實(shí)際器件會(huì)自動(dòng)返回1,人為返回1調(diào)試沒有意義。

只能實(shí)際器件嗎,在線的可以嗎
回復(fù)

使用道具 舉報(bào)

ID:1040201 發(fā)表于 2023-8-11 10:20 | 顯示全部樓層
while(!(ADC_CONTR & ADC_FLAG));   這個(gè)分號(hào)一定需要
回復(fù)

使用道具 舉報(bào)

ID:94031 發(fā)表于 2023-8-11 10:29 | 顯示全部樓層
a825563619 發(fā)表于 2023-8-11 09:38
只能實(shí)際器件嗎,在線的可以嗎

調(diào)試AD轉(zhuǎn)換只能實(shí)際器件才有意義。
回復(fù)

使用道具 舉報(bào)

ID:647261 發(fā)表于 2023-8-11 11:16 | 顯示全部樓層
a825563619 發(fā)表于 2023-8-11 09:38
只能實(shí)際器件嗎,在線的可以嗎

只是學(xué)習(xí)的話,仿真沒問題的,學(xué)得差不多再搞實(shí)際器件
proteus 8.9是支持STC15器件的,其他仿真軟件我就不清楚了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表