在定制 SBC 上使用 CCS v10.4和 msp430f5638。 我已经创建了两 个 ADC12读取函数、它们源自两个 TI 示例。
RUN_430_ADC_T ()、它源自 MSP430F55xx_ADC_10.c、并读取内部温度传感器的单个通道、ISR 案例6。
RUN_430_ADC_DAV ()、 它源自 MSP430F55xx_ADC_09.c、并读取包含内部电压的单个3个通道序列、ISR 案例32。
两个示例以及我的两个派生函数在单独运行时都可以正常运行。 按顺序运行时,第二个调用不会正确运行,而不管首先运行哪个调用。
此帖子用于 run_430_ADC_T ()(单次读取温度)和为这两个函数提供服务的 ISR。 我需要更好地了解设置和使用寄存器来确定问题。
问题
1.//ADC12CTL0 &=~ADC12ON; //初始时关闭 ADC 以清除 ADC
这是关闭和清除 ADC 设置的有效方法吗?还是仅打开/关闭、对寄存器设置没有影响?
ADC12CTL0 = ADC12SHT0_8 + ADC12REFON + ADC12ON;//内部基准= 1.5V、基准打开、ADC 打开
ADC12SHT0_8是采样保持选择位8、与 ref = 1.5V 无关? 评论错误吗?
3.(8*0x100u)= 0x800为什么这个12位宽而不是16位宽? 是否有隐含的0000b 前缀?
ADC12MCTL0 = ADC12SREF_1 + ADC12INCH_10; // ADC i/p ch A10 =温度感测 I/p
ADC12SREF_1选择 ADC 基准1、即(1*0x10u)= 0x10、VREF+、AVSS、这是正确的吗?
ADC12IE = 0x001;
为什么这是12位而不是16位? 是否有隐含的0000b 前缀?
6.在针对矢量6单次转换的 ISR 中、您将 ADC12MEM0用于内部温度、但是在针对矢量32的4个通道序列的 TI 示例中、您将 ADC12MEM10用于内部温度
两者上是否有温度传感器? 还是两者都应该是 ADC12MEM10?