jkluzi 发表于 2023-12-13 15:40 不可以,不然你写一个让大家乐一乐? |
我做过测量0-100V,并没有发现你说的如此严重的非线性问题,只需要手工校准一个系数,是不是你的硬件有问题或者软件配置ADC采样时间不符 |
用switch应该也行吧 |
提供一个最简单的改正方法,新设置一个变量c,让c=e*10;,10是你的分压倍数。这样就避免了判断失误。 |
条件语句错误 |
yytda 发表于 2021-3-28 21:58 由于楼主判断条件是变量e的值,符合判断条件改变的也是e的值。依次判断时就有可能前面的结果成为后面的依据而发生错误。改为if(temp<=0.14) e=temp*35;....... 或 if.......else if........else if......写法避免发生错误。 |
if 。。。else if。。。 |
通常要想用ACD尽量准确测量远大于单片机VCC的电压不宜只用一套分压电路,要根据实际被测电压自动换挡。而不是在算法补偿下功夫。 |
上面各朋友都说得没有错 用if 和 else iif这是两种不同的结果 再例如: 前提:e==1 if(e==1) {e=10;} if(e==10)//上面计算的e结果会进入此条件语句进行判断 {e=100;} 上述运行结果是e=100 if(e==1) {e=10;} else if(e==10) {e=100;} 上述运行结果是e=10 |
你一直用if当然会出现混乱,你要用if{}else if{},意思是如果...否则....这样的条件判断逻辑才对 |
谢谢啊,这个可能性很大,晚一点我试试 |
你这个程序是有问题的 不能怎么使用if 要用if ... else if... |
除第一个if外,后面的if换成else if,不然可能重复换算 |
花心的刘备 发表于 2021-3-28 21:30 可当实际电压5V的时候,它并没有满足后面那些if语句的条件,为什么却能进入后面那些if语句里面呢? |
是进制问题么? |
顺序执行了一遍 |