TI中文支持网
TI专业的中文技术问题搜集分享网站

msp430f5529 adc 采集采集不到数据

我就想写一个最简单的adc采集程序 单通道的SC触发的

#include <msp430.h>#include <msp430f5529.h>
/*
* main.c
*/
int main(void)
{
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
P1DIR |= BIT0;
P6SEL |= BIT0;
ADC12CTL0 = ADC12SHT0_2 + ADC12ON;
ADC12CTL1 = ADC12SHP;
ADC12IE = 0x01;//ADC12MEM0
ADC12MCTL0 = 0x0000;
ADC12CTL0 |= ADC12ENC;//enable ADC
_enable_interrupt();
while(1)
{
ADC12CTL0 |= ADC12SC;
}
}

#pragma vector = ADC12_VECTOR
__interrupt void ADC12()
{
if(ADC12MEM0>0x7ff)
P1OUT = BIT1;
else
P1OUT = 0x00;
}

调试后 ADC12MEM0 一直在 0xFFe和0xFF3之间跳动,无论把P6^0和P3^0相连还是P6^0和GND相连。

Ling Zhu2:

最简单的ADC采集程序TI已经有相关例程了,
www.ti.com/…/slac300

灰小子:

建议先运行一下官网的例程。如果运行例程还有问题,就是硬件的问题,如过运行例程没问题就是写的代码的问题了。

user4041075:

uint16_t GetDAC7311Uout_A0Value(void)

{

P6SEL |= BIT0;         //ADC-P6.0-A0

ADC12CTL0 = ADC12ON + ADC12SHT0_2;   // 接通 ADC12电源,设置采样

ADC12CTL1 = ADC12SHP+ADC12CSTARTADD_1;//用采样定时器,选用ADC12MEM1

ADC12MCTL1 = ADC12INCH_0;           // ref+=AVcc, 选通道 A0,

ADC12CTL0 |= ADC12ENC;

ADC12CTL0 |= ADC12SC;       //启动转换

while (!(ADC12IFG & BIT1)); //等待转换

return   ADC12MEM1;           //DAC7512输出值

}

赞(0)
未经允许不得转载:TI中文支持网 » msp430f5529 adc 采集采集不到数据
分享到: 更多 (0)