Tải bản đầy đủ (.docx) (3 trang)

msp430x20x2 adc10 16

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.79 KB, 3 trang )

//******************************************************************************
// MSP430F20x2 Demo - ADC10, DTC Sample A0 -> TA1, AVcc, DCO
//
// Description: Use DTC to sample A0 with reference to AVcc and directly
// transfer code to TACCR1. Timer_A has been configured for 10-bit PWM mode.
// TACCR1 duty cycle is automatically proportional to ADC10 A0. WDT_ISR used
// as a period wakeup timer approximately 45ms based on default ~1.2MHz
// DCO/SMCLK clock source used in this example for the WDT clock source.
// Timer_A also uses default DCO.
//
//
//

MSP430F20x2
-----------------

//

/|\|

//

||

|

//

--|RST

XOUT|-



//
//

XIN|-

|
>---|P1.0/A0

|
P1.2|--> TACCR1 - 0-1024 PWM

//
// L. Westlund
// Texas Instruments Inc.
// May 2006
// Built with CCE Version: 3.2.0 and IAR Embedded Workbench Version: 3.41A
//******************************************************************************
#include "msp430x20x2.h"


void main(void)
{
WDTCTL = WDT_MDLY_32;
IE1 |= WDTIE;

// WDT ~45ms interval timer
// Enable WDT interrupt

ADC10CTL0 = ADC10SHT_2 + ADC10ON;

ADC10AE0 |= 0x01;

// P1.0 ADC option select

ADC10DTC1 = 0x001;

// 1 conversion

P1DIR |= 0x04;

// P1.2 = output

P1SEL |= 0x04;

// P1.2 = TA1 output

TACCR0 = 1024 - 1;

// PWM Period

TACCTL1 = OUTMOD_7;
TACCR1 = 512;

// TACCR1 reset/set
// TACCR1 PWM Duty Cycle

TACTL = TASSEL_2 + MC_1;

// SMCLK, upmode


while(1)
{
__bis_SR_register(LPM0_bits + GIE);
ADC10SA = (unsigned int)&TACCR1;
ADC10CTL0 |= ENC + ADC10SC;
}
}

#pragma vector = WDT_VECTOR
__interrupt void WDT_ISR(void)
{

// LPM0, WDT_ISR will force exit
// Data transfer location
// Start sampling


__bic_SR_register_on_exit(LPM0_bits);
}

// Exit LPM0



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

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