打印

搞不懂的校准函数,谁能帮忙解除疑惑!!!!

[复制链接]
1796|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
qqq44488|  楼主 | 2013-7-11 16:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void Calibration_AD(char value)
{

//        long temp_value;
        switch (value)
        {
                case 1:       
                        channelswitch( 0 );
                        CH1_zero=read_single_data(0);
                        CH1_zero=read_single_data(0);
                        break;
                case 2:
                        channelswitch( 0 );
                        CH1_full=read_single_data(0);
                        CH1_full=read_single_data(0);
                        CH1_A=(CH_FULL-CH_ZERO)*32768/(CH1_full-CH1_zero);
                        CH1_B=(CH_ZERO*CH1_full-CH_FULL*CH1_zero)/(CH1_full-CH1_zero);


程序如上所示:  其中CH_FULL=58982。。。CH_ZERO=32768。。。CH1_full为测得AD输入为4.5V时的值,返回的是一个字。。。CH1_zero为测得AD输入为2.5V时的值,同样返回的是一个字。。。。。
我的问题是,这里的58962和32768是干什么的???为什么要这样计算???
沙发
cjhk| | 2013-7-11 20:39 | 只看该作者
我也不是很了解这一块   楼主   帮你顶一个   很不错哦   顶起来   

使用特权

评论回复
板凳
qqq44488|  楼主 | 2013-7-12 11:06 | 只看该作者
本帖最后由 qqq44488 于 2013-7-12 16:28 编辑

Upo = (CH1_A*(Upo)/32768+CH1_B-32768)*2.5/32768*RESGAIN;                                                
Unp = (32768-(Unp*CH2_A/32768+CH2_B))*2.5/32768*RESGAIN;
然后又代到这里计算的
其中:公式里的Upo是采到的0通道实时数据,Up1是1通道实时数据。

使用特权

评论回复
地板
adamug| | 2013-7-12 11:52 | 只看该作者
爱莫能助,帮顶一下

使用特权

评论回复
5
outstanding| | 2013-7-12 14:57 | 只看该作者

使用特权

评论回复
6
qqq44488|  楼主 | 2013-7-12 16:14 | 只看该作者
本帖最后由 qqq44488 于 2013-7-12 16:30 编辑

我好想懂一点了  (4.5 / 2.5) * 32768 = 58982.4         
现在的问题是,假如CH1_zero输入的不是2.5V,若是0V,那就要把32768换为1吗?????

使用特权

评论回复
7
zeluo| | 2013-7-12 20:04 | 只看该作者
帮楼主顶一个   呼唤版主   香主   他们应该有办法解决这个问题   楼主

使用特权

评论回复
8
trumpxp| | 2013-7-13 10:07 | 只看该作者
不是很了解这一块    楼主   帮你顶一个   看看有没有高手能够解决这个问题  

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

359

帖子

3

粉丝