打印

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

[复制链接]
1545|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
qqq44488|  楼主 | 2013-7-12 16:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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是干什么的???为什么要这样计算???
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
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通道实时数据。

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

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

直接在ST MCU里搬过来的,在那里放了几天没人解答!!!!!!!!!!!!!!

相关帖子

沙发
qqq44488|  楼主 | 2013-7-15 20:07 | 只看该作者
0回复

使用特权

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

本版积分规则

15

主题

359

帖子

3

粉丝