TI中文支持网
TI专业的中文技术问题搜集分享网站

MSP430F5438A: ADC的多通道采样

Part Number:MSP430F5438A

参考

https://www.ti2k.com/wp-content/uploads/ti2k/DeyiSupport_MSP430_node

重复序列采样A0 – A3

但是传感器的电压信号是持续不断的,这样就会一直触发ADC的采样中断,无法进行正常程序。

我想每个10s进行一次采样,其他时间正常使用板卡进行其他操作。

请问有什么方法不进行中断就可以adc采样或者可以采样完成后跳出中断,进行完其他程序再进行中断

Xu Yuchen:

同时还需要连接UART串口的传感器,因此也需要UART中断读取传感器的数据,如何避免冲突

,

Cherry Zhou:

您好我们已收到您的问题并升级到英文论坛,如有答复将尽快回复您。谢谢!

,

Cherry Zhou:

您好,

1. 请将

>   ADC12CTL1 = ADC12SHP+ADC12CONSEQ_3;

改为

>   ADC12CTL1 = ADC12SHP+ADC12CONSEQ_1;  // Sample a batch each time ADC12SC is set

2. 当您要捕获 1 个批次 (序列) 时,请使用:

>   ADC12CTL0 &= ~ADC12SC;   // Reset  ADC

>   ADC12CTL0 |= ADC12SC;   // Start ADC

样本应在  (4 channels * (64 SHT + 12 + 1) ) = 308 ADC时钟周期 或者308/5 = ~62 微秒内完成。

3. 如果您不想使用 LPM 等待,您可以使用以下命令旋转:

>  while (ADC12CTL1 & ADC12BUSY) /*EMPTY*/;   // Spin until ADC finishes

[参考User Guide (SLAU208Q) Table 28-14 and Sec 28.2.7.2 ]

,

Xu Yuchen:

由于只是简单的采样,有没有不使用ADC中断的方法。可不可以直接进行读数,执行

A0results = ADC12MEM0; // Move A0 results, IFG is cleared A1results = ADC12MEM1; // Move A1 results, IFG is cleared

,

Cherry Zhou:

您好,它需要 ADC 中断标志以确保转换完成。 您可以添加

while (! ADC12IFG3) ;等待 ADC 转换完成。

或者就简单的延迟 10s,长时间后也可以完成转换。

如果您使用以上提供的方法3的话,您也可以删除以下这一行:

>  ADC12IE = 0x08; // Enable ADC12IFG.3

因为当旋转环路完成 (ADC12BUSY=0) 时,采样完成。 (删除 ADC12IE 设置后,您可以删除 ISR)

赞(0)
未经允许不得转载:TI中文支持网 » MSP430F5438A: ADC的多通道采样
分享到: 更多 (0)