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.

[参考译文] RTOS/TM4C123GH6PM:配置 ADC 和 UDMA 以进行连续传输时出现问题;ADC int wu't trigger

Guru**** 2039500 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/647036/rtos-tm4c123gh6pm-trouble-configuring-adc-and-udma-for-continuous-transfer-adc-int-won-t-trigger

器件型号:TM4C123GH6PM

我正在尝试将 UDMA 配置为传输1024个值(每个16位)。 我遇到了一些问题、因为代码无法触发 ADC INT。 我在中断中有一个断点、它永远不会到达它。

ADC 正由计时器触发、我希望 UDMA 每次触发时都会捕获一个值。 初始化代码中是否有问题? 谢谢你

此外、我尝试使用 ADC0和序列发生器3。 因此它将捕获1个值。 此外、我的采样率约为50kHz。

谢谢、我非常感谢

工具/软件:TI-RTOS


void ConfigureADCandDMA (void){ //启用 UDMA 和 ADC 外设 SysCtlPeripheralEnable (SYSCTL_Periph_ADC0); SysCtlPeripheralReset (SYSCTL_Periph_ADC0); ADCClockConfigSet (ADC0_BASE、ADC_CLOCK_SRC_PLL | ADC_CLOCK_RATE_FULL、30); // uDMA 初始化 ADCSequenceConfigure (ADC0_BASE、3、ADC_TRIGGER_TIMER、0); ADCSequenceStepConfigure (ADC0_BASE、3、0、ADC_CTL_CH8 | ADC_CTL_IE | ADC_CTL_END); ADCSequenceDMAEnable (ADC0_BASE、3); //###################################### SysCtlPeripheralEnable (SYSCTL_Periph_UDMA); SysCtlPeripheralReset (SYSCTL_Periph_UDMA); uDMAEnable(); uDMAControlBaseSet (sControlTable); uDMAChannelAttributeDisable (UDMA_CHANGE_ADC0、UDMA_ATTR_ALL); uDMAChannelAttributeEnable (UDMA_CHANGE_ADC0、UDMA_ATTR_USEBURST /*仅允许突发传输*/); uDMAChannelControlSet (UDMA_CHANGE_ADC0 | UDMA_PRI_SELECT、 UDMA_SIZE_16 | UDMA_SRC_INC_NONE | UDMA_DST_INC_16 | UDMA_ARC_1024); uDMAChannelTransferSet (UDMA_CHANGE_ADC0 | UDMA_PRI_SELECT、 UDMA_MODE_BASIC、 (void *)(ADC0_BASE + ADC_O_SSFIFO3)、 G_ulADCValues、1023); uDMAChannelEnable (UDMA_CHANGE_ADC0); IntEnable (INT_UDMAERR); IntEnable (INT_UDMA); IntEnable (INT_ADC0SS3); ADCIntEnableEx (ADC0_BASE、ADC_INT_DMA_SS3); ADCSequenceEnable (ADC0_BASE、3); // ADCIntEnable (ADC0_BASE、3); ADCIntClear (ADC0_BASE、3); }

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果 ADC 由计时器触发、您是否会发布计时器配置?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此帖子附有一个示例:
    e2e.ti.com/.../2381981