[C14] ADC MSP4302553

Châu Thanh Hải

Thành Viên PIF
Hiện em đang tìm tòi về ADC nhưng cũng chưa rõ lắm , mọi người cho em hỏi sao em set up timer + adc check cũng không thấy lỗi gì ,nhưng sao nó không nhảy vào ngắt timer được . Mọi người giải đáp giúp em với , cảm ơn mọi người nhiều.
Code:
#include <msp430.h>
#include <stdio.h>
#include "LCD_16x2.h"
/*
* main.c
*/
void Configure_Clock(void);
void Configure_Adc(void);
unsigned int GetAdcValue(void);
void Configure_Timer(void);
 
float temp;
unsigned char l = 'V';
void main(void) {
    WDTCTL = WDTPW | WDTHOLD;    // Stop watchdog timer
    Configure_Clock();
    Configure_Timer();
    Configure_Adc();
 
    P2DIR |= BIT0;
    P2OUT |= BIT0;
 
    LCD_Init();
        while(1)
        {
        temp = GetAdcValue();
        temp = (temp*4+40)/1024;
        LCD_Clear();
        LCD_Home();
        LCD_PrintString("Voltage: ");
        LCD_PrintFloat(temp,5,3);
        LCD_Display(l);
        __delay_cycles(500000);
        }
}
 
#pragma vector = TIMER0_A0_VECTOR
__interrupt void interrupt_CR0(void)
{
    _no_operation();
}
 
#pragma vector = TIMER0_A1_VECTOR
__interrupt void interrupt_CR1(void)
{
    switch(TA0IV)
        {
        case 0x02:
        {
        P2OUT ^=BIT0;
        }
        break;
        }
}
 
void Configure_Timer(void)
{
    TA0CTL  = TASSEL_2 + MC_2 + ID_3;
    TA0CCR0 = 6000;
    TA0CCR1 = 4000;
    TA0CCTL0 = CCIE;
    TA0CCTL1 = CCIE;
}
 
void Configure_Clock()
{
    if(CALBC1_1MHZ == 0xFF)
    {
        while(1);
    }
    BCSCTL1 = CALBC1_1MHZ;
    DCOCTL = CALDCO_1MHZ;
    BCSCTL2 |= SELM_0;
}
 
void Configure_Adc()
{
    ADC10CTL1 = INCH_0 | ADC10SSEL_0;
    ADC10AE0 = BIT0;
    ADC10CTL0 = SREF_0;
    ADC10CTL0 |= ADC10ON + ENC;
}
 
unsigned int GetAdcValue(void)
{
    ADC10CTL0 |= ADC10SC;
    while(ADC10CTL1 & 1);
    return ADC10MEM;
}
 
Top