主题中讨论的其他器件:MSP430F1132
工具/软件:Code Composer Studio
连续编写代码以循环通过6个模拟通道。 到目前为止、无法使 ADC10生成转换完成中断。 代码是从为已知可正常工作的 MSP430F1132编写的类似要求中借用的。
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.
工具/软件:Code Composer Studio
连续编写代码以循环通过6个模拟通道。 到目前为止、无法使 ADC10生成转换完成中断。 代码是从为已知可正常工作的 MSP430F1132编写的类似要求中借用的。
//================================================ 设置 ADC10 ================================================
// 这些位从最高通道开始选择单次转换序列的通道。
//
// 模数转换器(ADC)初始化。
ADC10CTL1 = 0; //关闭 ADC10
ADC10CTL0 = 0;
ADC10AE0 |= 0x3F; //通过 P2.0引脚将 P3.0和 P2.4设置为 ADC 的输入。
ADC10CTL1 = INCH_5 + ADC10DIV_7 + ADC10SSEL_1 + CONSEQ_1; //选择序列中的最大通道数(A5)
ADC10CTL0 = ADC10SHT_3 + ADC10ON; //选择 Vcc 作为正基准电压。
ADC10CTL0 |=(ADC10IE); //启动 ADC 块转换状态机。
ADC10CTL0 |=(ENC + ADC10SC);
//全新启动,初始化所有标志。
ADC_Flags = 0; //清除 ADC 标志。
System_Flags = 0;
/*----------------------------------
*名称:evadc_isr
*
* 描述:
* 对 ADC 进行了转换
* 设置最多样化的进程标志
*
*
******************------------------------------------------------------- *
#pragma vector = ADC10_vector
_interrupt void evADC_ISR (void)
{
_dint();
ADC_Flags |= ADC_CC; //设置转换完成标志
ADC10CTL0 &=~(ADC10IFG); //清除 ADC 转换完成中断标志
ANALOG_DATA = ADC10MEM; //将来自 ADC 的数据保存在临时缓冲区中
ADC10CTL0 &=~ADC10SC; //开始下一次转换。
_EINT();
}