找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4744|回复: 2
打印 上一主题 下一主题
收起左侧

用msp430g2553写的ad测量电压的程序

[复制链接]
跳转到指定楼层
楼主
ID:220848 发表于 2018-1-18 20:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用msp430g2553写的ad测量电压的程序,实际调试的时候ADC10MEM里面确实是有值的,但是转化成电压值的时候一直都不能转换,求大佬帮忙看一下,或者提供一个可以用的程序。我接的是差不多1.2v的电池,所以检测到的电压大于1的时候P1.0会亮,但是实际上一直为我赋的初始值。
void ADC10_Init(void)
{
        ADC10CTL1 |= CONSEQ_2; //单通道重复采样模式
        ADC10CTL0 |= SREF_1+REFON+REF2_5V;//选择内部参考源2.5V,打开基准源
        ADC10CTL0 |= ADC10SHT_3+MSC; //过采样率设置为64个采样周期,打开AD转换
        ADC10CTL1|= ADC10SSEL_1+ADC10DIV_1+SHS_0; //ACLK2分频为采样时钟,用ADC10SC触发采集
        ADC10CTL1 |=INCH_4; //选择通道A1
        ADC10CTL0 |= ADC10ON+ADC10SR+REFBURST; //开启ADC10
        ADC10AE0 |= 0x10; //开启外部通道A1
}
unsigned long ADSample()//取样
{
        int i=0;
        unsigned long ADC10_Result;
  ADC10_Init();
  for( i=0;i<8;i++)
  {
          ADC10CTL0 |=ENC+ADC10SC; //开始转换
          while((ADC10CTL0 &ADC10IFG)==0); //等待ADC10IFG标志变高(转换完成)
                    ADC10_Result+=ADC10MEM; //读取采样结果
  }
  AD_Result=AD_Result>>3;
  return ADC10_Result;
}

unsigned long DC_Result()
{
        unsigned long dc_result,dc_sample;
        dc_sample=ADSample()/8;
        dc_result=dc_sample*2.5/1023;//计算电压值公式
        return dc_result;
}

int main(void)
{
    WDTCTL = WDTPW | WDTHOLD;        // Stop watchdog timer
    unsigned long dc_result;
    P1DIR|=BIT0;
    dc_result=DC_Result();
    if(dc_result!=0)
            P1OUT|=BIT0;
    else
            P1OUT&=~BIT0;
        return 0;
}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:630770 发表于 2019-12-1 22:36 | 只看该作者
这其实和温度采样一个道理
回复

使用道具 举报

板凳
ID:282850 发表于 2019-12-2 01:44 | 只看该作者
我的公式,Vref不一样,取值不一样
ADC_Vol1= ((unsigned long)ADC10MEM)*2*252/1023;   
    //Nadc=1023*[(Vin-VR-) /(VR+ - VR-)],ADC0Bh:Vin=Vcc/2,VR见SREF_1
    //VR见SREF_1,Nadc=1023*[(Vin-VR_)/(VR+ - VR_)],ADC0Bh:Vin=Vcc/2;VR见 SREF_1 ;终值Vcc=N*2*1.5/1023
上边公式,整形运算注意先扩大10、100倍再除,这是基本常识。比如:1/2=0,不是0.5
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表