完善资料让更多小伙伴认识你,还能领取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烧录工具说明》 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
377 浏览 0 评论
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】(第三篇)ADC采集+PWM输出
536 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十五章 人脸识别实验
540 浏览 0 评论
950 浏览 0 评论
如何用OpenCV的相机捕捉视频进行人脸检测--基于米尔NXP i.MX93开发板
1403 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11760 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 06:46 , Processed in 0.712495 second(s), Total 94, Slave 76 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号