lee_trieu
Gà con
Chào mọi người !!
mọi người cho em hỏi một vấn đề như thế này:
Em muốn đọc 3 kênh ADC: Kênh A1,A2 và A3. em xem code mẫu thì thấy người ta lưu kết quả trong thanh ghi ADC10SA vào RAM tại địa chỉ 0x200 hay gì đấy> em muốn lấy kết quả của 3 kênh ADC lưu vào mảng để gửi lên UART, code em viết thế này, build không có lỗi nhưng không hiểu sao em khônng nhận được gì trên UART, debug cũng không thấy có giá trị nào được lưu trong mảng hết. mọi ngươi xem giúp em nha ! Cảm ơn mọi người !!
mọi người cho em hỏi một vấn đề như thế này:
Em muốn đọc 3 kênh ADC: Kênh A1,A2 và A3. em xem code mẫu thì thấy người ta lưu kết quả trong thanh ghi ADC10SA vào RAM tại địa chỉ 0x200 hay gì đấy> em muốn lấy kết quả của 3 kênh ADC lưu vào mảng để gửi lên UART, code em viết thế này, build không có lỗi nhưng không hiểu sao em khônng nhận được gì trên UART, debug cũng không thấy có giá trị nào được lưu trong mảng hết. mọi ngươi xem giúp em nha ! Cảm ơn mọi người !!
PHP:
#include "msp430g2553.h"
void conf_uart();
unsigned int res[3]; //for holding the conversion results
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
ADC10CTL1 = INCH_3 + CONSEQ_1; // A3/A2/A1, single sequence
ADC10CTL0 = ADC10SHT_2 + MSC + ADC10ON + ADC10IE;
ADC10DTC1 = 0x03; // 3 conversions
ADC10AE0 |= 0x0E; // P1.3,2,1 ADC10 option select
P1DIR |= 0x01; // Set P1.0 output
conf_uart();
for (;;)
{
ADC10CTL0 &= ~ENC;
while (ADC10CTL1 & BUSY); // Wait if ADC10 core is active
ADC10SA = (int)res; // Data buffer start
P1OUT |= BIT0; // P1.0 = 1
ADC10CTL0 |= ENC + ADC10SC; // Sampling and conversion start
__bis_SR_register( CPUOFF+ GIE); // LPM0, ADC10_ISR will force exit
P1OUT &= ~BIT0; // P1.0 = 0
}
}
// ADC10 interrupt service routine
#pragma vector=ADC10_VECTOR
__interrupt void ADC10_ISR(void)
{
__bic_SR_register_on_exit(CPUOFF); // Clear CPUOFF bit from 0(SR)
}
void conf_uart()
{
#if 1
P1SEL |= BIT1 + BIT2;
P1SEL2 |= BIT1 + BIT2;
UCA0CTL1 |= UCSSEL_2;
//Baud rate = 1Mhz/9600=104;
UCA0BR0 = 104;
UCA0BR1 = 0;
UCA0MCTL = UCBRS0;
UCA0CTL1 &= ~UCSWRST;
//IE2 |= UCA0RXIE;
__bis_SR_register(GIE);
#endif
}