MSP430技术william hill官网
直播中

合富张

7年用户 92经验值
擅长:可编程逻辑 电源/新能源 嵌入式技术 MEMS/传感技术
私信 关注
[问答]

MSP430F5438A


//=================msp430f5438a ADC_13,单通道重复测量

//#include

#include

#define Num_of_Results 8

unsigned int results[Num_of_Results];

unsigned int index=0;

void ADC_13_Config(void);

void main(void)

{

    WDTCTL=WDTPW+WDTHOLD;  

  ADC_13_Config( );


while(1)

  {

   while(!ADC12IFG13);

results[0]=ADC12MEM0;

  }

}

void ADC_13_Config(void)

{

  

P7SEL=0x20; //P7.5  A13端口输入   //P7.5 开启ADC功能

//REFCTL0|=REFMSTR+REFVSEL_2+REFON; //开启参考电压

ADC12CTL0&=~ADC12ENC;

ADC12CTL0=ADC12SHT0_15+ADC12SHT1_15+ADC12REF2_5V+ADC12REFON+ADC12ON;

ADC12CTL1=ADC12SHP+ADC12CONSEQ_2;             //单通道重复采样

ADC12CTL2|=ADC12TCOFF;

ADC12MCTL0=ADC12SREF_0+ADC12INCH_13;   //参考电压选择源电压

_NOP();

_NOP();

_NOP();

ADC12CTL0|=ADC12ENC;

ADC12CTL0=ADC12SC;  //开始采样

ADC12IE=BITD ;

_BIS_SR(GIE);

  

}


#pragma vector=ADC12_VECTOR

__interrupt void ADC12ISR(void)

{


results[index]=ADC12MEM0;          //保存结果

index=(index+1)%Num_of_Results;

if((Num_of_Results-1)==index)

   _NOP();

}
这是我写的msp430f5438a的adc采集程序,寄存器都配置好了,但是在编译时在watch中看memo中的数据始终看不到,只显示00;

回帖(3)

合富张

2017-5-17 13:04:04
问题已解决,ADC12CTL0=ADC12SC;  //开始采样该语句写法上有错误!
举报

刘海峰

2017-5-19 16:11:11
你好,不能直接读取ADC12MEM0寄存器中的值吗?
就像a = (int)(ADC12MEM*2.5/4096)
我编程序时想显示电压值,但是不行,你知道为什么吗?
举报

合富张

2017-5-25 23:16:10
受到警告
提示: 作者被禁止或删除 内容自动屏蔽
举报

更多回帖

发帖
×
20
完善资料,
赚取积分