单片机/MCU论坛
直播中

打马过草原

9年用户 829经验值
擅长:可编程逻辑 电源/新能源
私信 关注
[问答]

EVADC多个Queue采样无法实现怎么解决?

我在配置EVADC的时候,在我使用软件触发的时候,如:
IfxEvadc_Adc_startQueue( adcGroup[3], IfxEvadc_RequestSource_queue0);
IfxEvadc_Adc_startQueue( adcGroup[3], IfxEvadc_RequestSource_queue1);
只有Queue0能够正常的进行转换,经过查阅手册发现是GxQxRx.EXTR 为0导致队列选用Refill之后不需要软件触发就能自己转换,但是我将它设置为1以后,调用一次
IfxEvadc_Adc_startQueue( adcGroup[3], IfxEvadc_RequestSource_queue0);以后就会GxQxRx.EXTR自动变为0,导致无法使用同一个EVADC组的多个Queue来转换通道,而且使采样软件触发不可控,请问一下这种情况应该如何解决呢
                                                                                                                                                                                                   

回帖(1)

h1654155598.0450

2024-1-24 15:56:07
根据您的描述,您遇到了在相同的EVADC组之间无法使用多个Queue进行转换通道的问题。根据手册的说明,当GxQxRx.EXTR设置为0时,队列在完成转换之后将自动进行Refill,这意味着它不需要软件触发进行转换。当您将其设置为1时,它会自动变为0,因此无法再次使用软件触发。

为了解决这个问题,您可以尝试以下方法:

1. 使用不同的EVADC组:如果您的应用程序需要同时转换多个通道,并且无法使用多个Queue来实现,您可以考虑使用不同的EVADC组。每个EVADC组都有自己独立的Queue和相关寄存器,因此您可以使用多个EVADC组来同时进行转换。

2. 使用软件触发模式:如果您必须使用相同的EVADC组,并且需要多个Queue进行转换通道,您可以考虑使用软件触发模式。在软件触发模式下,您可以手动控制每个队列何时开始转换。使用IfxEvadc_Adc_startQueue函数启动每个队列的转换,确保在开始一个队列之前等待前一个队列的转换完成。

这些方法应该能够帮助您解决使用多个Queue进行转换通道的问题。如果您仍然遇到困难,建议您查阅相关技术资料或咨询微控制器厂商的技术支持团队以获得更详细的帮助。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分