lee_trieu
Gà con
Chào mọi người !
Em đanng tìm cách đọc nhiều kênh ADC cùng lúc nhưng chưa chạy, em viết code đọc 2 kênh A1(P1.1) và A2(P1.2) nhưng ADC không chạy, giá trị ADC10MEM = 0.
mọi người xem giúp em với ạ:
	
	
	
		
em cảm ơn ạ !!
								Em đanng tìm cách đọc nhiều kênh ADC cùng lúc nhưng chưa chạy, em viết code đọc 2 kênh A1(P1.1) và A2(P1.2) nhưng ADC không chạy, giá trị ADC10MEM = 0.

mọi người xem giúp em với ạ:

		PHP:
	
	#include "msp430g2553.h"
#include "conf_lcd.c"
#define aMode 1
#define bMode 2
void conf_adc();
void conf_io();
int a,b,selectMode;
void main( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
  conf_adc();
  conf_io();
  conf_lcd(0);
  _BIS_SR( GIE);                 // Enable interrupt
  selectMode = aMode;
  
  while(1)
{
switch (selectMode)
{
case aMode :
P1OUT |= BIT0;
a = ADC10MEM;
selectMode = bMode;
break;
 
case bMode:
P1OUT |= BIT6;
b = ADC10MEM;
selectMode = aMode;
break;
}
lcd_gotoxy(0,0);
lcd_puts("A1 = ");
lcd_gotoxy(5,0);
lcd_number(a,0,0);
lcd_gotoxy(0,1);
lcd_puts("A2 = ");
lcd_gotoxy(5,1);
lcd_number(a,0,0);
 }
 
}
#pragma vector=ADC10_VECTOR
__interrupt void ADC10_ISR(void)
{
//__bic_SR_register_on_exit(CPUOFF);        // Clear CPUOFF bit from 0(SR)
ADC10CTL0 &= ~ENC;                      // ADC10 disable
switch (selectMode) 
{
case aMode:
  ADC10CTL1 = INCH_1;
  break;
case bMode:
  ADC10CTL1 = INCH_2;
  break;
}
ADC10CTL0 |= ENC;                        //
}
void conf_adc()
{
ADC10CTL1 = INCH_1 + CONSEQ_1;
    ADC10CTL0 = ADC10SHT_2 + MSC + ADC10ON + ADC10IE;
    ADC10DTC1 = 2;//Doc 2 kenh ADC
    ADC10AE0 |= 0x06;// A1 va A2
}
void conf_io()
{
  P1DIR &=~(BIT1+BIT2);
  P1DIR |= BIT0+BIT6;
  P2DIR |= 0xff;
  P1SEL &= ~(BIT1+BIT2);
}
	
				