5408|8

17

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

MSP430F149的AD采样问题!!!! [复制链接]

    你们谁知道msp430F149用多通道采样时为什么两个通道的采集电压会互相影响呢?




void ADC12(void)

{

  P6SEL |=0X03;  //使能ADC通道

  ADC12CTL0=ADC12ON+SHT0_15+MSC+REFON + REF2_5V;//打开ADC,设置采样时间,多次转换

  ADC12CTL1=SHP+CONSEQ_3;//使用采样定时器;多通道转换

  ADC12MCTL0 |=SREF_1+INCH_0;//通道选择

  ADC12MCTL1 |=SREF_1+INCH_1+EOS; //以EOS结束此次转换

  ADC12IE=0X03;//使能ADC中断

  ADC12CTL0 |=ENC+ADC12SC;//使能转换;开始转换



  _EINT();

}



/*ADC中断服务函数,各个通道转换值的存储*/

#pragma vector=ADC_VECTOR

__interrupt void ADC12ISR(void)

{

    k++;

    if(k==100) {k=0;}

    caltmp[k]=ADC12MEM0;

    caltmpp[k]=ADC12MEM1;

}



void xian_shi(void)

{

    int i,j ;

    ulong AVR0,AVR1;

    ulong sum0=0,sum1=0;

    for(i=0;i<100;i=i+2)

      sum0 += caltmp[i];

    AVR0 = sum0/50;

    //sum0=0;

    Temp=(AVR0*25000)/4096;          //计算十进制的电压值

    ptr[0]=(int)Temp/10000;            

    ptr[1]=(int)Temp%10000/1000;

    ptr[3]=(int)Temp%1000/100;

    ptr[4]=(int)Temp%100/10;

    ptr[5]=(int)Temp%10/1;

    ptr[6]=11;

    ptr[2]=10;

    LCD_write_com(0x88);

    DisplayCgrom(0x88,"电压:   ");

    for(i=0;i<7;i++)

    {

      delay_ms(100);

      LCD_write_data(shuzi[ptr[i]]);

     }



    for(j=1;j<100;j=j+2)

      sum1 += caltmpp[j];

    AVR1 = sum1/50;

    Temp=(AVR1*25000.0)/4096.0;

    ptr[0]=(int)Temp/10000;            

    ptr[1]=(int)Temp%10000/1000;

    ptr[3]=(int)Temp%1000/100;

    ptr[4]=(int)Temp%100/10;

    ptr[5]=(int)Temp%10/1;

    ptr[6]=11;

    ptr[2]=10;

    LCD_write_com(0x98);

    DisplayCgrom(0x98,"电压:   ");

    for(j=0;j<7;j++)

    {

      delay_ms(10);

      LCD_write_data(shuzi[ptr[j]]);

     }

}

//***********************************************************************

//      主程序

//***********************************************************************

void main(void)

{

   WDT_Init();                 //看门狗设置

   Clock_Init();               //系统时钟设置

   Port_init();                //系统初始化,设置IO口属性

   delay_ms(100);              //延时100ms

   LCD_init();                 //液晶参数初始化设置

   LCD_clear();                //清屏

   ADC12();                    //ADC初始化

   delay_ms(100);

   DisplayCgrom(0X80,"傻人 有 傻福");

   DisplayCgrom(0x90,"神啊!救救我吧");

   while(1)

   {

     delay_ms(10);

     xian_shi();

   }



}



最新回复

下次好好检查自己程序,我以前也经常粗心会犯这些小错误  详情 回复 发表于 2015-7-30 23:49
 
点赞 关注

回复
举报

1193

帖子

0

TA的资源

纯净的硅(高级)

沙发
 
这么长的代码,让人看着眼晕,你还是简单描述一下你要干嘛吧,又是怎么实现的。
先将程序思路给一下,别人好帮你排查问题。
如果是遇到了故障,那么得先将故障现象描述清楚,别人才知道该怎么去排查。

点评

我已经弄好了,原来是我用来存放的数组定义少了然后我用的次数多出去溢出了。。。。。。。。。。。。。谢谢你的提醒,下次改正,  详情 回复 发表于 2015-7-30 09:38
 
 

回复

12

帖子

1

TA的资源

一粒金砂(中级)

板凳
 
你用万用表测引脚的电压值,就是P6口的外围功能,从你程序看应该测量6.1和6.2引脚电压,看一看引脚的电压是否正确!还有就是单片机的上5V和3.3V之间的电压会随外界接入而影响的!你可以换用外部电源试一试!

点评

程序里面显示的是6.0和6.1撒 ADC12MEM0和ADC12MEM1这两个是6.0和6.1端口的, 之前我把存放的那个数组定义个数少了,我需要的次数多,所以就溢出拿其他的来充当了 谢谢你哦  详情 回复 发表于 2015-7-30 09:40
 
 
 

回复

17

帖子

0

TA的资源

一粒金砂(中级)

4
 
qiushenghua 发表于 2015-7-28 02:34
这么长的代码,让人看着眼晕,你还是简单描述一下你要干嘛吧,又是怎么实现的。
先将程序思路给一下,别人 ...

   我已经弄好了,原来是我用来存放的数组定义少了然后我用的次数多出去溢出了。。。。。。。。。。。。。谢谢你的提醒,下次改正,
 
 
 

回复

17

帖子

0

TA的资源

一粒金砂(中级)

5
 
杨福毅 发表于 2015-7-29 09:17
你用万用表测引脚的电压值,就是P6口的外围功能,从你程序看应该测量6.1和6.2引脚电压,看一看引脚的电压是 ...

    程序里面显示的是6.0和6.1撒    ADC12MEM0和ADC12MEM1这两个是6.0和6.1端口的,                 之前我把存放的那个数组定义个数少了,我需要的次数多,所以就溢出拿其他的来充当了              谢谢你哦
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

6
 
我想用msp430测量外部电压   也就是当做万用表的功能   把测试的结果显示在1602的显示屏上  我应该怎么做啊?
跪求!~~~~~~~~~~~~

点评

这个你直接把例程的就可以撒...................  详情 回复 发表于 2015-7-31 09:54
 
 
 

回复

1291

帖子

0

TA的资源

纯净的硅(中级)

7
 
下次好好检查自己程序,我以前也经常粗心会犯这些小错误

点评

下次会注意了》。。。。。。。。。。。。。。。。谢谢咯  详情 回复 发表于 2015-7-31 09:55
 
 
 

回复

17

帖子

0

TA的资源

一粒金砂(中级)

8
 
你为天涯 发表于 2015-7-30 13:44
我想用msp430测量外部电压   也就是当做万用表的功能   把测试的结果显示在1602的显示屏上  我应该怎么做啊 ...

  这个你直接把例程的就可以撒...................
 
 
 

回复

17

帖子

0

TA的资源

一粒金砂(中级)

9
 
强仔00001 发表于 2015-7-30 23:49
下次好好检查自己程序,我以前也经常粗心会犯这些小错误

   下次会注意了》。。。。。。。。。。。。。。。。谢谢咯
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表