10736|11

38

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

MSP430G2553 ADC10 [复制链接]

我想既测温服又测电压值,可是只有一个ADCMEM,我应该怎么操作求大虾相助!

最新回复

开一个   采集完后关掉,再开第二个   详情 回复 发表于 2014-8-23 15:43
 
点赞 关注(2)

回复
举报

14

帖子

0

TA的资源

一粒金砂(中级)

沙发
 

回复ADC10

用多通道单次采样或多通道多次采样模式,ADC10由高到低依次转换各个通道,每转换完成一个通道,触发一次中断,在中断中读取ADC10MEM就可以了

点评

开一个 采集完后关掉,再开第二个  详情 回复 发表于 2014-8-23 15:43
你好,想请问一下,我用序列通道单次采样时,为什么只能存储最后通道的值呢?而得不到前面通道的值?  详情 回复 发表于 2012-12-3 20:06
有没有例程啊,就用P1.0和P1.1测外部电压的(0-2V),刚才写了一个,没有反映。。。。:Cry:  详情 回复 发表于 2012-7-29 17:18
 
 

回复

38

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

回复 沙发 Megamind 的帖子

有没有例程啊,就用P1.0和P1.1测外部电压的(0-2V),刚才写了一个,没有反映。。。。

点评

请问一下,你那个问题解决了吗?我现在也是的,想用多通道,但只有一个MEM,怎么实现啊?  详情 回复 发表于 2012-8-1 09:21
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(中级)

4
 

回复 板凳 寒雪剑91 的帖子

请问一下,你那个问题解决了吗?我现在也是的,想用多通道,但只有一个MEM,怎么实现啊?

点评

就是用单通道单词取样模式,用多个模拟通道采样,用哪个通到就开哪个通道,不用的先关起来  详情 回复 发表于 2012-8-1 21:26
 
 
 

回复

38

帖子

0

TA的资源

一粒金砂(中级)

5
 

回复 4楼 海洋饼干 的帖子

就是用单通道单词取样模式,用多个模拟通道采样,用哪个通到就开哪个通道,不用的先关起来

点评

正解~~~ 目前只有ADC10的电压测试,我还没有弄过2个一起测的。 回去研究一下。 我的总结:里面有ADC10模块详解 https://bbs.eeworld.com.cn/viewthread.php?tid=342652&page=1&extra=page% 3D1#pid1354260  详情 回复 发表于 2012-8-2 01:41
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(高级)

6
 

回复 5楼 寒雪剑91 的帖子

正解~~~
目前只有ADC10的电压测试,我还没有弄过2个一起测的。
回去研究一下。


我的总结:里面有ADC10模块详解
https://bbs.eeworld.com.cn/viewt ... &page=1&extra=page%

3D1#pid1354260

点评

#include \"msp430g2553.h\" unsigned int a0,a1; void main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop WDT ADC10CTL1 = INCH_1 + CONSEQ_1; // A1/A0, repeat multi c  详情 回复 发表于 2012-8-2 07:09
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(中级)

7
 

ADC10多通道采集

#include  "msp430g2553.h"

unsigned int a0,a1;

void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  ADC10CTL1 = INCH_1 + CONSEQ_1;            // A1/A0, repeat multi channel
  ADC10CTL0 = ADC10SHT_2 + MSC + ADC10ON + ADC10IE;
  ADC10AE0 = 0x03;                          // P1.0,1 ADC option select
  ADC10DTC1 = 0x02;                         // 16 conversions

  for (;;)
  {
    ADC10CTL0 &= ~ENC;
    while (ADC10CTL1 & BUSY);               // Wait if ADC10 core is active
    ADC10SA = 0x200;                        // Data buffer start
    ADC10CTL0 |= ENC + ADC10SC;             // Sampling and conversion ready
    __bis_SR_register(CPUOFF + GIE);        // LPM0, ADC10_ISR will force exit
    _NOP();                                 // space for debugger
    _NOP();                                 // Set Breakpoint here to read ADC
  }
}

// ADC10 interrupt service routine
#pragma vector=ADC10_VECTOR
__interrupt void ADC10_ISR (void)
{
  __bic_SR_register_on_exit(CPUOFF);        // Clear CPUOFF bit from 0(SR)
  a0=*(unsigned int *)0x200;//A1通道的转换结果,注意此处的0x200要与ADC10SA的值一致
  a1=*(unsigned int *)0x202;//A0通道的转换结果,注意ADC10是先转换高通道再转换多通道
}

点评

ADC10DTC1 = 0x02; 表示采样转换两次,那么请问执行一次for (;;)得到几个数据?难道能同时得到A1,A0通道的采样值?那么ADC10DTC1 = 0x02;怎么样才算采样了2次?  详情 回复 发表于 2012-8-2 20:04
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(中级)

8
 

回复 7楼 lichun341 的帖子

ADC10DTC1 = 0x02; 表示采样转换两次,那么请问执行一次for (;;)得到几个数据?难道能同时得到A1,A0通道的采样值?那么ADC10DTC1 = 0x02;怎么样才算采样了2次?
 
 
 

回复

29

帖子

0

TA的资源

一粒金砂(中级)

9
 

回复 沙发 Megamind 的帖子

你好,想请问一下,我用序列通道单次采样时,为什么只能存储最后通道的值呢?而得不到前面通道的值?
 
 
 

回复

1

帖子

1

TA的资源

一粒金砂(初级)

10
 
ADC10的DTC把采样值送到内部的一个存储单元,那么这个存储单元的长度要自己设么,还是默认为一个值啊
 
 
 

回复

16

帖子

0

TA的资源

一粒金砂(初级)

11
 
开一个,关一个的方式
 
 
 

回复

16

帖子

0

TA的资源

一粒金砂(初级)

12
 
Megamind 发表于 2012-7-29 16:21
用多通道单次采样或多通道多次采样模式,ADC10由高到低依次转换各个通道,每转换完成一个通道,触发一次中 ...

开一个   采集完后关掉,再开第二个
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表