请问MSP430定时器触发ADC采集怎么实现?

2019-07-15 15:13发布

我想实现定时器触发ADC采样,定时器10us触发一次adc采样,采样完成后触发中断,中断处理函数中保存采样数据到buffer,求大神给思路,有例子更好,百度搜索不到有用的例子,还有按照430手册配置,也没有配置成功,最后我也是看的云里雾里 本主题由 一只耳朵怪 于 2019-4-10 10:38 审核通过
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
王小琳子
2019-07-16 06:45
#include "main.h"
void adc_init(void)
{
    ADC10CTL0 = ADC10SHT_1 + ADC10ON; // ADC10ON, interrupt enabled
    ADC10AE0 |= 0x02;                         // P7.5 ADC option select
    ADC10AE0 |= 0x04;                         // P6.0 ADC option select
    ADC10AE0 |= 0x08;                         // P6.3 ADC option select
}
//只有在采集电流数据的时候开始中断
void Adc_Irq_Enable(void)
{
    sys.ad_aindex = 0;
    sys.ad_dindex = 0;
    ADC10CTL1 = SHS_1 + INCH_2 + CONSEQ_2; //单通道连续转换
    ADC10CTL0 = ADC10SHT_1 + ADC10ON + ADC10IE;
    ADC10CTL0 |=  ENC;
    TACCR0 = 20-1;                          // PWM Period
    TACCTL1 = OUTMOD_3;                       // TACCR1 set/reset
    TACCR1 = 10;                            // TACCR1 PWM Duty Cycle
    TACTL = TASSEL_2 + MC_1 + ID_3;                  // ACLK, up mode
}
void Adc_Irq_Disable(void)
{
    ADC10CTL1 = INCH_2;
    ADC10CTL0 = ADC10SHT_1 + ADC10ON;
}
#pragma vector=ADC10_VECTOR
__interrupt void ADC10_ISR (void)
{
        ad_abuffer[adindex] = ADC10MEM;
}

一周热门 更多>