📄 fet140_adc12_storeram_timerasample.c
字号:
//******************************************************************************
// MSP-FET430P140 Demo - Single channel repeat mode using TimerA1 as Sample
// Trigger
// ADC12 sample rate is 4.096Khz
// Sample and Convert A0
// Put "Num_of_Results" ADC12MEM0 values in results[array]
// and Light LED (P1.0) when done
//
// H.Grewal
// Texas Instruments, Inc
// Oct 2004
// Updated for IAR Embedded Workbench Version: 2.21B
//******************************************************************************
#include <msp430x14x.h>
#define Num_of_Results 512
int results[Num_of_Results] = {0};
void ADC_Init (void);
void main (void)
{
WDTCTL = WDTPW | WDTHOLD; // Disable the Watchdog.
ADC_Init (); // Initialize ADC12
pwmgen();
ADC12CTL0 |= ENC; // Start conversion
_BIS_SR(LPM0_bits); // Enter LPM0
}
void ADC_Init (void)
{
_EINT(); // Enable interrupts
P1DIR = 0xff; // set port to outputs
P1OUT = 0; //reset port outputs
ADC12CTL0 = ADC12ON+SHT0_1+REF2_5V+REFON;// Setup ADC12, ref., sampling time
ADC12CTL1 = SHP+CONSEQ_2+SHS_1; // Timer triggers sampling,ADC12OSC=ADC12CLK
ADC12MCTL0 = INCH_0 + SREF_1;
ADC12IE = 0x0001; // Enable ADC12IFG.0
TACCR0 = 1500; // Delay to allow Ref to settle
TACCTL0 |= CCIE; // Compare-mode interrupt.
TACTL = TASSEL_1 | MC_1; // TACLK = ACLK, Up mode.
LPM3; // Wait for delay.
TACCTL0 &= ~CCIE; // Disable timer
P2SEL |= BIT2; // set for Timer A1
TACCR0 = 8; // Init TACCR0 w/ sample prd
TACCR1 = 4; // Trigger for ADC12 sample & convert
TACCTL1 = OUTMOD_3; // Set/reset
TACTL = TACLR | MC_1 | TASSEL_1; // SMCLK, clear TAR, up mode
}
#pragma vector=TIMERA0_VECTOR
__interrupt void ta0_isr(void)
{
TACTL = 0;
LPM3_EXIT; // Exit LPM3 on return
}// ta0_isr()
// The following ISR puts ADC12MEM values into an array
#pragma vector=ADC_VECTOR
__interrupt void ADC12ISR (void)
{
static unsigned int index = 0;
results[index++] = ADC12MEM0; // Move results
if (index == 512)
{
ADC12CTL0 &= ~ENC; // Stop conversion
index = 0;
P1OUT |= 0x01;
_BIS_SR(LPM3_bits); // Enter LPM3 after "results[Array] is filled
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -