yllyly0454 发表于 2014-7-2 22:55:56

msp430f149ADC不能使用2.5V参考电压,请指教

程序如下,请指教
#include<msp430x14x.h>
#include"12864bc.c"
#include"LCD12864.c"
#include"LCD12864.h"
#define   Num_of_Results   8
uint p=0;
float mm=0.0;
static unsigned int results;

void ADC12setup(void)
{
P6SEL |= 0x01;    // Enable A/D channel A0
ADC12CTL0 &=~ENC;
ADC12CTL0 = ADC12ON+SHT0_2+MSC;         // Turn on ADC12, set sampling time
ADC12CTL1 |= SHP+CONSEQ_2;               // Use sampling timer, set mode
ADC12CTL0 |= REFON;                   //内部参考电压打开
ADC12CTL0 |= REF2_5V;               //选用内部参考电压为2.5V
ADC12CTL0 |= ADC12SC;
ADC12CTL0 |= ENC;                           // Start conversion
ADC12MCTL1 |= SREF_1+INCH_0+EOS;      //R+=2.5V R-=VSS,A0输入,结束位
ADC12IE = BIT0;// 中断允许
ADC12CTL0 |= ADC12SC;
ADC12CTL0 |= ENC;
}

void main(void)
{
WDTCTL = WDTPW+WDTHOLD;                   // Stop watchdog timer
Init_CLK();
InitLcd12864();
ADC12setup();      
_BIS_SR(LPM0_bits + GIE);               // Enter LPM0,Enable interrupts
}


#pragma vector=ADC12_VECTOR
__interrupt void ADC12ISR (void)
{
static unsigned int index = 0;

results = ADC12MEM0;               // Move results
index++;
if(index>7)
{

    p=(results+results+results+results+results+results+results+results)/8;
    index=0;
}

mm=2.5*p/4096;
LCD_write_float(1, 1, p);

    LCD_write_float(2, 1, mm);
//LCD_write_float(3, 1, temp);
//LCD_write_float(4, 1, Results);
// _BIC_SR_IRQ(CPUOFF);                  // Clear CPUOFF bit from 0(SR)


}

yllyly0454 发表于 2014-7-3 08:59:30

请达人指教,不胜感谢

qq910130528 发表于 2014-7-3 09:11:17

ADC12MCTL1 |= SREF_1+INCH_0+EOS;      ADC12MCTL1不是ADC12MCTL0吗

yllyly0454 发表于 2014-7-3 09:30:33

晕。谢谢

yllyly0454 发表于 2014-7-3 09:31:40

qq910130528 发表于 2014-7-3 09:11
ADC12MCTL1 |= SREF_1+INCH_0+EOS;      ADC12MCTL1不是ADC12MCTL0吗

感谢了,我弄了一天没有 找到问题。谢谢。

老糊涂了{:sweat:} {:lol:}
页: [1]
查看完整版本: msp430f149ADC不能使用2.5V参考电压,请指教