LaunchPad 官方例程(无修改)
一切皆为2012TI杯电子设计大赛
1.
//******************************************************************************
// LaunchPad Lab2 - Software Toggle P1.0, //
// MSP430G2xx2 // ----------------- // /|\\| XIN|- // | | | // --|RST XOUT|- // | | // | P1.0|-->LED //
//******************************************************************************
#include
void main(void) {
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer if (CALBC1_1MHZ == 0xFF || CALDCO_1MHZ == 0xFF) { }
// Configure Basic Clock
BCSCTL1 = CALBC1_1MHZ; DCOCTL = CALDCO_1MHZ; BCSCTL3 |= LFXT1S_2; P1DIR = BIT6;
// Set range
// Set DCO step + modulation
while(1);
// If calibration constants erased, trap CPU!!
// Set LFXT1
// P1.6 output (green LED) // LED off
P1OUT = 0;
}
for(;;) { }
P1OUT = BIT6; _delay_cycles(100); P1OUT = 0;
// green LED off
_delay_cycles(5000);
// P1.6 on (green LED)
IFG1 &= ~OFIFG;
// Clear OSCFault flag // Set MCLK
BCSCTL2 |=SELM_1 + DIVM_0;
2.
//******************************************************************************
// LaunchPad Lab3 - Software Port Interrupt Service //
// MSP430G2xx2 // ----------------- // /|\\| XIN|- // | | | // --|RST XOUT|- // /|\\ | | // --o--|P1.3 P1.0|-->LED // \\|/ //
//******************************************************************************
#include
void main(void) {
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer P1DIR |= BIT0; // Set P1.0 to output direction
}
P1IES |= BIT3; // P1.3 Hi/lo edge P1IFG &= ~BIT3; // P1.3 IFG cleared P1IE |= BIT3; // P1.3 interrupt enabled _BIS_SR(LPM4_bits + GIE); // Enter LPM4 w/interrupt
// Port 1 interrupt service routine #pragma vector=PORT1_VECTOR __interrupt void Port_1(void) { }
if (P1IFG & BIT3) { }
P1OUT ^= BIT0; // P1.0 = toggle P1IFG &= ~BIT3; // P1.3 IFG cleared
3.
//******************************************************************************
// LaunchPad Lab5 - ADC10, Sample A10 Temp and Convert to oC and oF //
// MSP430G2452 // ----------------- // /|\\| XIN|- // | | | // --|RST XOUT|- // | | // |A10 | //
//******************************************************************************
#include \
long temp; long IntDegF; long IntDegC;
void main(void) {
WDTCTL = WDTPW + WDTHOLD; // Stop WDT //Configure ADC10
ADC10CTL1 = INCH_10 + ADC10DIV_3; // Choose ADC Channel as Temp Sensor
ADC10CTL0 = SREF_1 + ADC10SHT_3 + REFON + ADC10ON + ADC10IE;//Choose ADC Ref source
__enable_interrupt(); // Enable interrupts.
TACCR0 = 30; // Delay to allow Ref to settle TACCTL0 |= CCIE; // Compare-mode interrupt. TACTL = TASSEL_2 | MC_1; // TACLK = SMCLK, Up mode. LPM0; // Wait for delay. TACCTL0 &= ~CCIE; // Disable timer Interrupt __disable_interrupt();
while(1) {
ADC10CTL0 |= ENC + ADC10SC; // Sampling and conversion start __bis_SR_register(LPM0_bits + GIE); // LPM0 with interrupts enabled
// oF = ((A10/1024)*1500mV)-923mV)*1/1.97mV = A10*761/1024 - 468 temp = ADC10MEM;
IntDegF = ((temp - 630) * 761) / 1024;
// oC = ((A10/1024)*1500mV)-986mV)*1/3.55mV = A10*423/1024 - 278 temp = ADC10MEM;
IntDegC = ((temp - 673) * 423) / 1024;
__no_operation(); // SET BREAKPOINT HERE } }
// ADC10 interrupt service routine #pragma vector=ADC10_VECTOR __interrupt void ADC10_ISR (void) {
__bic_SR_register_on_exit(LPM0_bits); // Clear CPUOFF bit from 0(SR) }
#pragma vector=TIMER0_A0_VECTOR __interrupt void ta0_isr(void) {
TACTL = 0;
__bic_SR_register_on_exit(LPM0_bits); // Clear CPUOFF bit from 0(SR) }
4.
//******************************************************************************
// MSP430F20xx Demo - Basic Clock, Output Buffered SMCLK, ACLK and MCLK/10 //
// Description: Buffer ACLK on P2.0, default SMCLK(DCO) on P1.4 and MCLK/10 on // P1.5.
// ACLK = LFXT1 = VLO, MCLK = SMCLK = default DCO
// //* External watch crystal installed on XIN XOUT is required for ACLK *// //
// MSP430F20xx // ----------------- // /|\\| XIN|- // | | | // --|RST XOUT|- // | |
// | P1.4/SMCLK|-->SMCLK = Default DCO // | P1.5|-->MCLK/10 = DCO/10 // | P1.0/ACLK|-->ACLK = VLO //