完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
AD采样的公式为 getadv=2.5*adhl2/adhl1; (其中adhl2是单片机采样电位器的AD转换结果,adhl1是外接2.5V基准源AD转换的结果)
1、用KEIL软件运行仿真了一下,为什么程序执行到getadv=2.5*adhl2/adhl1;语句后,getadv的值为-1,理论上应该是getadv=0的(因为此时AD转换器还没开始工作,adhl2/adhl1都该为0x0000), 当我根据 if(x<=getadv 2、当定义uchar getadv时,软件运行仿真程序执行到getadv=2.5*adhl2/adhl1;语句后,getadv的值为255,,,,, 当我根据 if(x<=getadv 编译什么无错误 但是软件运行有点毛病,不知道那个地方出了点问题。。。求赐教!!!很怀疑是不是这些小数无法被系统识别。。。求帮忙!!!!!!先谢谢了。。程序如下:
|
|
相关推荐
10个回答
|
|
|
|
|
|
“理论上应该是getadv=0的“,变量都没初始化,你如何确定是0?
所有变量要初始化 另外if判断一般是整数判断 把getadv=2.5*adhl2*0.5/adhl1; //*0.5软件处理把采样电压减半为满电压时2.5V;仿真时 改为getadv=5.0*adhl2*0.5/adhl1; //*0.5软件处理把采样电压减半为满电压时2.5V;仿真时 再把getadv放大10倍或100倍,以去除小数点,把其变为整数,再用if判断! |
|
|
|
我又把这些变量都初始化了,,但是程序运行仿真到if(x 求指教 |
|
|
|
你的运行状态是不是正好相反,应该快但却是慢的,应该慢但却是快的??
|
|
|
|
亲,我习惯用串口调试。每个IF里发送到串口调试助手不同的数字,这样判断这是否程序执行正确
另外,AD采集,你可以先用官方提供的代码跑一遍 还有我一般不在keil仿真,直接下板子进行测试 |
|
|
|
问题已经解决了,,原来是我if函数里的逻辑判断搞错了,,接下来等待下到板子里再调试吧、、谢谢你的解答 |
|
|
|
|
|
|
|
1486447613 发表于 2015-6-1 09:02 等板子弄好了,,下进去跑跑,,试一下。。谢谢了 |
|
|
|
大神,,有没有用过U8W-mini下载器给STC冲程。。。。。我一直都充不进!不知道怎么回事 |
|
|
|
可以看看《STC烧录工具说明》 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
205 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1253 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
848 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
853 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
1073 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12010 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 17:34 , Processed in 1.845335 second(s), Total 59, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号