怪事,ADC原始值没问题,但换算出来的结果离谱!
用了DMA采集得到ADC值,采样的原始值看起来没问题。但用公式算出的结果太离谱了,这个公式很常用啊。u16 x;
x = (u16)( (u32)adc * 45 / 4095 ),其中45是外接Vref=4.5V的参考电压,扩大10倍,adc的原始值有3000多,但x等于0
楼主用的哪个型号呢?
还是用仿真功能仿真调试,进去看错在哪,不盲人摸象在那猜
STC32位8051芯片 发表于 2023-3-15 10:31
楼主用的哪个型号呢?
STC8H4K
用这个 免费+包邮 送的 STC-USB Link1D 来仿真,解决你这个隐藏的程序问题
【新提醒】用STC-USB Link1D仿真STC8系列MCU - 编译器/仿真器/ISP下载/做自己的ISP/ID号加密/程序加密后传输 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)
很常规的用法,有时候我还用浮点数呢,都没碰到过问题。
楼主可以仿真看看,或者同时观察ADC值和X值,跟手算有啥差别。或者直接给ADC一个值,去计算看看。 可以把变量都输出看看,以及把表达式拆开确认每次运算的结果
另外顺便推荐一下MDU,这种数据计算起来很舒服:lol MDU16, 不用是您的损失啊
神农鼎 发表于 2023-3-19 15:27
MDU16, 不用是您的损失啊
用了三年ST8系列,还真没弄过MDU16。 尝试下,16位运算支持12位ADC运算,计算简单多了
页:
[1]