完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在使用 TC357TA,并配置了 DMA 以将 EVADC 结果记录到内存中的某个缓冲区。
现在,我希望每向缓冲器传输 750 个 ADC 采样,目标地址就重置为缓冲器的起始地址。 (750 只是一个示例,数字是可以配置的)。 最好的办法是什么? 请帮帮我。 |
|
相关推荐
1个回答
|
|
要在传输一定次数后重置DMA目标地址,您可以使用TC357TA的DMA中断功能。以下是实现此目标的步骤:
1. 配置DMA通道:首先,您需要配置DMA通道以从EVADC接收数据并将其传输到内存缓冲区。设置DMA通道的源地址、目标地址、传输大小等参数。 2. 启用DMA中断:在DMA通道配置中启用中断功能。这将允许您在DMA传输完成时接收中断信号。 3. 设置中断服务例程(ISR):编写一个中断服务例程(ISR),该例程将在DMA传输完成时被调用。在这个ISR中,您将实现重置DMA目标地址的逻辑。 4. 计数器和条件判断:在ISR中,使用一个计数器来跟踪已经传输的ADC采样次数。每当DMA传输完成时,计数器加1。当计数器达到750(或您配置的任何其他值)时,执行以下操作: a. 重置计数器:将计数器重置为0,以便在下一次传输周期中重新开始计数。 b. 重置DMA目标地址:将DMA通道的目标地址重置为缓冲区的起始地址。这可以通过修改DMA通道的配置寄存器来实现。 5. 重新启动DMA传输:在ISR中,重新启动DMA传输,以便它从新的(或重置的)目标地址开始传输数据。 6. 测试和调试:在实际硬件上测试您的实现,确保DMA传输在达到指定次数后正确重置目标地址。 通过遵循这些步骤,您可以实现在传输一定次数后重置DMA目标地址的功能。请注意,具体的寄存器配置和中断处理可能因您的硬件和软件环境而有所不同,因此请参考TC357TA的数据手册和您的开发环境文档以获取详细信息。 |
|
|
|
只有小组成员才能发言,加入小组>>
TLE9879_BLDC电机启动需要用手拨一下才能转动,怎么解决?
5663 浏览 2 评论
4084 浏览 9 评论
请问TLE5012B_E1000 启动后为什么位置不能正确获取
3599 浏览 9 评论
1209 浏览 8 评论
3503 浏览 7 评论
427浏览 2评论
256浏览 2评论
363浏览 2评论
TLE9879_BLDC电机启动需要用手拨一下才能转动,怎么解决?
5680浏览 2评论
如果是打开已有的dave工程,怎么查看这个工程选择的mcu型号?
432浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-2 15:32 , Processed in 0.637999 second(s), Total 82, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号