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)
}
请达人指教,不胜感谢 ADC12MCTL1 |= SREF_1+INCH_0+EOS; ADC12MCTL1不是ADC12MCTL0吗 晕。谢谢 qq910130528 发表于 2014-7-3 09:11
ADC12MCTL1 |= SREF_1+INCH_0+EOS; ADC12MCTL1不是ADC12MCTL0吗
感谢了,我弄了一天没有 找到问题。谢谢。
老糊涂了{:sweat:} {:lol:}
页:
[1]