This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于ADC10 DTC的问题

Other Parts Discussed in Thread: MSP430G2553

#include "msp430g2553.h"

int data1[32]={0};

void main(void)

{

WDTCTL = WDTPW + WDTHOLD; //关看门狗

BCSCTL1 = CALBC1_1MHZ; //设定DCO为1MHZ

DCOCTL = CALBC1_1MHZ;

P1DIR=0XFF;

P1OUT=0X00;

P1SEL |= BIT2;//1.2为模拟输入

ADC10CTL1|=INCH_2+SHS_0+ADC10DIV_7+ADC10SSEL_2+CONSEQ_2;

//10通道,ADC10SC触发,8分频,时钟为MCLK,单通道多次

ADC10CTL0|=SREF_1+ADC10SHT_3+MSC+REF2_5V+REFON+ADC10IE+ADC10ON;

//内部参考源,采样保持时间64个ADC10CLKs,置MSC位,开内部参考源,2.5V,中断允许,启动ad10;

ADC10DTC1=0X20;//20次采样

ADC10SA=*data1;//DTC首地址

ADC10CTL0|=ENC+ADC10SC;//使能ad,触发采样

_EINT();

while(1);

}

#pragma vector=ADC10_VECTOR

__interrupt void ADC10_ISR(void)

{

ADC10CTL0&=~ENC;

P1OUT=0XFF;

}

求解啊 为什么我这么设置不可以进入中断啊  怎样设置才能进行单通道多次转换啊 ,还有DTC到底怎么用啊

  • 1. 代码中未设置ADC的输入使能

      初始化代码增加如下语句.

      ADC10AE0  |=(0x01<<2);  // P1.1 ADC option select

    2. 你是如何判断没进中断的?是设置断点还是去量P1的管脚电平?

    3. DTC用法很简单,就是设置ADC的采样次数和源地址即可,ADC连续采样的值会放在源地址位起始位置的连续存储空间。