#include "msp430xG46x.h" volatile unsigned int i; void main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop watchdog ADC12CTL0 &= ~ENC; // Disable Conversions ADC12CTL0 = REFON + REF2_5V + ADC12ON + SHT0_2 + MSC; // turn on 2.5V ref, set samp time // Multiple sample and conversion ADC12CTL1 = SHP + CONSEQ_3; // Use sampling timer // Sequence of channels ADC12MCTL0 = SREF_1 + INCH_1; // Vr+=Vref+ // Input Channel A1 = OA0 // FINAL ANALOG OUTPUT ADC12MCTL1 = SREF_1 + INCH_3; // Vr+=Vref+ // Input Channel A3 = OA1 // TRANSIMPEDANCE OUTPUT ADC12MCTL2 = SREF_1 + INCH_15 + EOS; // Vr+=Vref+ // Input Channel A3 = OA1 // Battery Input _delay_cycles(3600); // Delay for needed ref start-up. // See datasheet for details. ADC12CTL0 |= ENC; // Enable conversions ADC12CTL0 |= ADC12SC; // Start conversions while (1) { ADC12CTL0 |= ADC12SC; // Start conversions while (!(ADC12IFG & 0x8003)); // Conversion done? ADC12MEM1; // Access result ADC12MEM2; // Access result ADC12MEM3; // Access result __no_operation(); // SET BREAKPOINT HERE } }