找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2550|回复: 15
收起左侧

keil的单片机AD转换程序调试

[复制链接]
ID:1089588 发表于 2023-8-10 10:30 | 显示全部楼层 |阅读模式
想问一下大家,在keil在线调试的过程中,怎么手动把ADC_CONTR寄存器里的ADC_FLAG位置1呢,或者说,怎么模拟一个ad值给它,运行时一直卡在标蓝处不动了
51hei截图_20230810102751.png
回复

使用道具 举报

ID:94031 发表于 2023-8-10 14:56 | 显示全部楼层
实际器件会自动返回1,人为返回1调试没有意义。
回复

使用道具 举报

ID:123289 发表于 2023-8-10 16:10 | 显示全部楼层
将本句暂时改成 while(1或0)
调试完成后改回。
回复

使用道具 举报

ID:1085441 发表于 2023-8-10 16:28 | 显示全部楼层
你应该查查是不是单片机初始化不对?造成一直在等待转换结束,否则ADC不会出现这个问题
回复

使用道具 举报

ID:213173 发表于 2023-8-10 17:20 | 显示全部楼层
直接注释掉 while(!(ADC_CONTR & ADC_FLAG));,调试完后改回来。
回复

使用道具 举报

ID:161164 发表于 2023-8-10 17:42 | 显示全部楼层
本帖最后由 lkc8210 于 2023-8-10 17:53 编辑

1.在while行打断点
2.在Memory1窗口输入D:0xBC(ADC_CONTR的地址)
3.按运行,会停在while行
4.在0xBC位置的值加0x10
如现在看到89(即0x89) 0x89+0x10 = 0x99
2023-08-10_173252.png


5.在0xBC位置输入99
6.再按运行就会跳出while
2023-08-10_173905.png


回复

使用道具 举报

ID:1089588 发表于 2023-8-10 18:42 | 显示全部楼层
是不是代码有问题呢,清除标志位是不是不该这么写呢
回复

使用道具 举报

ID:647261 发表于 2023-8-10 19:21 | 显示全部楼层
while语句后面没有加“;”,这样就会把下一句当成是while的循环体,刚好下一句是清零,就永远在while这里循环了
回复

使用道具 举报

ID:647261 发表于 2023-8-10 19:30 | 显示全部楼层
举个例子:
a=2;
while(a--);
a=1;
a=2;
执行结果:a=2
假如少了个分号
a=2;
while(a--)
a=1;
a=2;
程序就执行不下去了,一直while循环
这样可以理解吧
回复

使用道具 举报

ID:1089588 发表于 2023-8-11 09:31 | 显示全部楼层
sttt300 发表于 2023-8-10 19:21
while语句后面没有加“;”,这样就会把下一句当成是while的循环体,刚好下一句是清零,就永远在while这里 ...

对的,是我疏忽了,之前试了别的跳出方式忘了加;
回复

使用道具 举报

ID:1089588 发表于 2023-8-11 09:37 | 显示全部楼层
lkc8210 发表于 2023-8-10 17:42
1.在while行打断点
2.在Memory1窗口输入D:0xBC(ADC_CONTR的地址)
3.按运行,会停在while行

原来如此,强啊,话说如果在线仿真可以采到ad值吗,还是说一定要实物呢
回复

使用道具 举报

ID:1089588 发表于 2023-8-11 09:38 | 显示全部楼层
xuyaqi 发表于 2023-8-10 14:56
实际器件会自动返回1,人为返回1调试没有意义。

只能实际器件吗,在线的可以吗
回复

使用道具 举报

ID:1040201 发表于 2023-8-11 10:20 | 显示全部楼层
while(!(ADC_CONTR & ADC_FLAG));   这个分号一定需要
回复

使用道具 举报

ID:94031 发表于 2023-8-11 10:29 | 显示全部楼层
a825563619 发表于 2023-8-11 09:38
只能实际器件吗,在线的可以吗

调试AD转换只能实际器件才有意义。
回复

使用道具 举报

ID:647261 发表于 2023-8-11 11:16 | 显示全部楼层
a825563619 发表于 2023-8-11 09:38
只能实际器件吗,在线的可以吗

只是学习的话,仿真没问题的,学得差不多再搞实际器件
proteus 8.9是支持STC15器件的,其他仿真软件我就不清楚了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表