|

楼主 |
发表于 2018-6-1 16:15:45
|
显示全部楼层
这一阵我又反复研究电路图,自己有一些认识,不知道对不对,写出来请内行们指正.
1)查LTC2400,电路图里其8脚F0是接在VCC上的.这样,一次AD转换要160ms.此外还有限幅,一阶滤波,判断K1是否按下,负号的判断及显示等等,如此一来,执行
一次while()循环至少要200ms,循环5次就要1秒,因此真的把5次转换值累加再平均,仪器的反应就会比较迟钝.那么把一次转换值*5有什么用呢?由于AD转换时
输入信号里混杂着各种干扰,使得有些转换值会偏离正常值.扩大5倍,误差也随着被放大5倍,就容易用限幅语句抛弃那些偏差略大的转换值.再说,用一次T0中断使while(1)循环退出是不可能的:电路图中所用的晶振是32MHz,即使采用fosc/12做机器时钟,16位的T0溢出计数值是65536,那么一次T0中断仅需24.567ms
跟200ms相比小多了,因此如果不用多次循环,仅靠T0或是int0无法使while(1)循环停止的.
2)由一阶滤波公式可知:a=RC/(RC+T).要起滤波作用,则RC必须大于T.如果大得多,则a就接近1.把公式的括号展开:本次滤波结果=a*上次滤波结果+本次转换
值 - a*本次转换值.记赋值号左边的"本次滤波结果"为PV,第一个a取1,记右边"上次滤波结果"为PV, a*本次转换值要比本次转换值略小,就用上次转换值pv/en
来代替,这样得到:
PV=V+PV-PV/en
不知这样的解释是否合理?请您发表看法,谢谢!
补充内容 (2018-8-4 08:54):
160ms应该是160μs吧,当时μ字不知道怎么打. |
|