社区导航

 
查看: 1101|回复: 7

[讨论] msp430的模数转换通道应该怎么设置才能接受两种信号的输入?

[复制链接]

13

TA的帖子

1

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2015-4-6 04:19:57 | 显示全部楼层 |阅读模式
如题!msp430的模数转换通道应该怎么设置才能接受两种信号的输入?弄了很久了都一直只能是接受P6.0口的输入信号,处理不了P6.1的,我是按照序列通道单次转换模式来的为什么实现不了呢?跪求各位大神解惑!这是部分AD的程序,开始转换的那些命令都在后面的循环中就不在粘上来了
P6SEL|=BIT0+BIT1;
  ADC12CTL0=ADC12ON+SHT0_2+MSC;
  ADC12CTL1=SHP+CONSEQ_1;
  ADC12MCTL0=INCH_0;
  ADC12MCTL1=INCH_1+EOS;
  ADC12IE|=BIT1;
  ADC12CTL0|=ENC;
}

回复

使用道具 举报

820

TA的帖子

6

TA的资源

纯净的硅(初级)

Rank: 4

发表于 2015-4-6 09:18:31 | 显示全部楼层

430不是很清楚,STM32到是知道;

回复 支持 反对

使用道具 举报

1505

TA的帖子

0

TA的资源

五彩晶圆(初级)

Rank: 7Rank: 7Rank: 7

发表于 2015-4-6 12:12:47 | 显示全部楼层
P6.1你有没有配置成ADC的输入通道?

回复 支持 反对

使用道具 举报

13

TA的帖子

1

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2015-4-6 13:35:33 | 显示全部楼层
bobde163 发表于 2015-4-6 12:12
P6.1你有没有配置成ADC的输入通道?

ADC12MCTL1=INCH_1+EOS;
这一句没有把P6.1配置成ADC的输入通道吗?

点评

有对IO口的寄存器进行相应的配置吗?  详情 回复 发表于 2015-4-6 15:12

回复 支持 反对

使用道具 举报

1505

TA的帖子

0

TA的资源

五彩晶圆(初级)

Rank: 7Rank: 7Rank: 7

发表于 2015-4-6 15:12:56 | 显示全部楼层
至若景明 发表于 2015-4-6 13:35
ADC12MCTL1=INCH_1+EOS;
这一句没有把P6.1配置成ADC的输入通道吗?

有对IO口的寄存器进行相应的配置吗?

回复 支持 反对

使用道具 举报

13

TA的帖子

1

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2015-4-6 17:36:42 | 显示全部楼层
bobde163 发表于 2015-4-6 15:12
有对IO口的寄存器进行相应的配置吗?

void Port_init()
{
  P1SEL=0X00;
  P1DIR=0X00;               
  P2SEL=0X00;
  P2DIR=0XFF;        
  P4DIR|=BIT4+BIT5+BIT6;   
}
void main()
{
  WDTCTL=WDTPW+WDTHOLD;
  Port_init();
  while(1)
  {
    switch(P1IN)
    {
    case 0x36:
    case 0x2e:
    case 0x1e: dianzuceliang();break;
    case 0x3d: dianyaceliang();break;
  
    default:break;
    }
  }
}


您看是这样的程序吗?刚刚学430不是很懂,麻烦你啦!

点评

不知道你用的是具体哪个430的型号,但是IO要作为外设的输出管脚用,是要对PxSEL0、PxSEL1、PxDIR等寄存器进行配置的,你看一下数据手册,里面会有关于引脚功能的配置说明,看你的程序,你把P1口配置成了IO的输入功能  详情 回复 发表于 2015-4-6 18:04

回复 支持 反对

使用道具 举报

1505

TA的帖子

0

TA的资源

五彩晶圆(初级)

Rank: 7Rank: 7Rank: 7

发表于 2015-4-6 18:04:05 | 显示全部楼层
本帖最后由 bobde163 于 2015-4-6 18:08 编辑
至若景明 发表于 2015-4-6 17:36
void Port_init()
{
  P1SEL=0X00;
  P1DIR=0X00;               
  P2SEL=0X00;
  P2DIR=0XFF;        
  P4DIR|=BIT4+BIT5+BIT6;   
}
void main()
{
  WDTCTL=WDTPW+WDTHOLD;
  Port_init();
  while(1)
  {
    switch(P1IN)
    {
    case 0x36:
    case 0x2e:
    case 0x1e: dianzuceliang();break;
    case 0x3d: dianyaceliang();break;
  
    default:break;
    }
  }
}


您看是这样的程序吗?刚刚学430不是很懂,麻烦你啦!

不知道你用的是具体哪个430的型号,但是IO要作为外设的输出管脚用,是要对PxSEL0、PxSEL1、PxDIR等寄存器进行配置的,你看一下数据手册,里面会有关于引脚功能的配置说明,看你的程序,你把P1口配置成了IO的输入功能,而不是外设的输入功能,另外要对ADC的相应通道进行使能,然后就是正确配置ADC,你可以参考一下430的例程进行学习

回复 支持 反对

使用道具 举报

13

TA的帖子

1

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2015-4-8 22:58:17 | 显示全部楼层
bobde163 发表于 2015-4-6 18:04
不知道你用的是具体哪个430的型号,但是IO要作为外设的输出管脚用,是要对PxSEL0、PxSEL1、PxDIR等寄存器进行配置的,你看一下数据手册,里面会有关于引脚功能的配置说明,看你的程序,你把P1口配置成了IO的输入功能,而不是外设的输入功能,另外要对ADC的相应通道进行使能,然后就是正确配置ADC,你可以参考一下430的例程进行学习

好的,我再研究研究,谢谢啦

回复 支持 反对

使用道具 举报

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

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456

GMT+8, 2017-5-24 21:39 , Processed in 0.394220 second(s), 16 queries , Redis On.

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