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.

MSP430F5529 使用ADC遇到的问题



小弟不才,学了好久430还是没有把它搞透彻,想请大神们多多指点
现在用的是5529,想问一下ADC方面的问题,先陈述一下我对ADC设置的一些理解,
有错的话请大家指正。

ADC设置
ADC12CTL0:采样保持时间、开ADC模块、参考电压使能选择
ADC12CTL1:采样结果缓存寄存器选择、采样时钟选择、采样模式选择
ADC12CTL2:内部温度传感器控制、ADC分辨率选择、采样结果数据格式
ADC12MEMX:16个16位转换结果存储寄存器
ADC12MCTLx:序列采样结束模拟输入口设置、参考电压设置、MEMORYx存储哪路模拟电路转换结果设置
ADC12IE:中断使能设置
ADC12IFG:中断请求标志位寄存器
ADC12IV:中断向量寄存器 18个中断服务子程序的入口地址

使用ADC的步骤:
采样时间模式设置、设置AD口、选择存储器、开中断

问题
1、在我看过的所有例程中都是只写了一个中断服务子程序。ADC12支持18个中断,能不能实现多个AD中断比如case6\case7\cas8\...执行不同的程序
2、现在我能够用ADC12CTL0=ADC12INCH_X来使用不同的模拟口完成单通道采样,但是我还可以用ADC12CTL2\3\4\...实现这样的功能么
3、ADCIE设置的是使能的中断向量,用case6时写的是ADCIE=0X01,如果我要用memory0存储A1的结果,用case7可以么?如果可以我该怎么设置,是ADCIE=0X02么?
4、ADC12支持16路模拟电路,但是只有一个内核。如果我想做多个传感器检测,但是每个传感器的采样时通过按键来控制的,这样的话相当于是个传感器都是采用的单通道模式,这个ADC初始化该怎么写,是每对一个传感器做检测都初始化一下吗?

疑惑比较多,问题讲得也不是特别清楚,希望大家多多指点,更希望大家慷慨的提供例子
谢谢
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 

  • 你好,

    先回答你中断个数的问题,ADC模块只有一个中断源:但是根据不同的通道触发,一个寄存器中相应的标志位会置位。

    ADC12IV是中断源触发的中断,去读取其中哪一位为1才能判断是哪一个ADC在采样。

    通常在中断我们会用

    swith(ADC12IV)

    caseXX

    caseXX

    来判断。

    建议你去TI官网下载MSP430WARE,里面有大把参考例程。

    附件是参考代码,希望对你有帮助: