Tải bản đầy đủ (.doc) (1 trang)

msp430g2x31 adc10 04

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (17.59 KB, 1 trang )

//******************************************************************************
// MSP430G2x31 Demo - ADC10, Sample A1, Signed, Set P1.0 if > 0.5*AVcc
//
// Description: A single sample is made on A1 with SIGNED reference to AVcc.
// Software sets ADC10SC to start sample and conversion - ADC10SC
// automatically cleared at EOC. ADC10 internal oscillator times sample (16x)
// and conversion. In Mainloop MSP430 waits in LPM0 to save power until ADC10
// conversion complete, ADC10_ISR will force exit from any LPMx in Mainloop on
// reti. If A1 > 0.5*AVcc, P1.0 set, else reset.
//
//
MSP430G2x31
//
----------------//
/|\|
XIN|//
| |
|
//
--|RST
XOUT|//
|
|
//
>---|A1/P.1
|
//
// D. Dang
// Texas Instruments Inc.
// October 2010
// Built with CCS Version 4.2.0 and IAR Embedded Workbench Version: 5.10


//******************************************************************************
#include "msp430g2231.h"
void main(void)
{
WDTCTL = WDTPW + WDTHOLD;
// Stop WDT
ADC10CTL1 = ADC10DF + INCH_1;
// Conversion code singed format,
input A1
ADC10CTL0 = ADC10SHT_2 + ADC10ON + ADC10IE; // ADC10ON, interrupt enabled
ADC10AE0 |= 0x02;
// P1.0 ADC option select
P1DIR |= 0x01;
// Set P1.0 to output direction
for (;;)
{
ADC10CTL0 |= ENC + ADC10SC;
__bis_SR_register(CPUOFF + GIE);
if ((int)ADC10MEM < 0)
P1OUT &= ~0x01;
else
P1OUT |= 0x01;
}

// Sampling and conversion start
// LPM0, ADC10_ISR will force exit
// Clear P1.0 LED off
// Set P1.0 LED on

}

// 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)



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×