公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Translation_Bot
Community Manager
Community Manager
Community Manager

嗨,

我的项目中有一些中断,一个是 DMA int,其他是 Timer 和 GPIO int,MCU 可以独立进入任何一个中断服务,但是当 MCU 以 GPIO 或 Timer int 代码运行时,它无法响应并进入 DMA int。 我猜这个问题是由优先级设置引起的,但我发现 psoc 创建者 IDE 的中断页面中没有列出 DMA 中断,我试图将 DMA 优先级设置为最高,但还是无法正常工作,那么如何为这种情况设置 DMA 中断呢?

克里斯

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-4/How-to-enter-DMA-interrupt-while-running-in-other-interrupt/td-p/652322

0 点赞
1 解答
Translation_Bot
Community Manager
Community Manager
Community Manager

@chwa_1570756

1。将 DMA 配置为在传输完成时生成中断后,您可以调用 cyintSetPriority(CYDMA_INTR_NUMBER,优先级);函数将此中断的优先级从 0 设置为 3(0 为最高优先级,3 为最低优先级)。

2。确保配置 GPIO 和计时器的优先级小于您在上述函数中传递的值。

3。在您的项目中,要检查 DMA 中断是否正常运行,请尝试禁用计时器和 GPIO 中断,然后查看程序是否进入 DMA 中断。 这将确认 DMA 中断配置是否正确。

以下是 C 语言示例,演示如何定义和设置回调函数。 此示例假设元件已置于实例名为 “DMA” 的设计中。

回调函数原型示例:
void myintrCallback(无效)

回调函数定义示例:
void myintrCallback (void
{
/* Code to process the interrupt */
}

设置回调函数示例:
dma_setInterCallback (& myintrCallback);

中断启用示例:c
ytenable (CYDMA_INTR_NUMBER);cyglobalIntenable;

在原理图上配置不使用 DMA 组件的软件 DMA 时,请调用 cydmasetInterruptSourceMask () 以启用对 CPU 内核的中断生成。

希望这有帮助

最好的问候
Ekta

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-4/How-to-enter-DMA-interrupt-while-running-in-other-interrupt/m-p/652703

在原帖中查看解决方案

0 点赞
1 回复
Translation_Bot
Community Manager
Community Manager
Community Manager

@chwa_1570756

1。将 DMA 配置为在传输完成时生成中断后,您可以调用 cyintSetPriority(CYDMA_INTR_NUMBER,优先级);函数将此中断的优先级从 0 设置为 3(0 为最高优先级,3 为最低优先级)。

2。确保配置 GPIO 和计时器的优先级小于您在上述函数中传递的值。

3。在您的项目中,要检查 DMA 中断是否正常运行,请尝试禁用计时器和 GPIO 中断,然后查看程序是否进入 DMA 中断。 这将确认 DMA 中断配置是否正确。

以下是 C 语言示例,演示如何定义和设置回调函数。 此示例假设元件已置于实例名为 “DMA” 的设计中。

回调函数原型示例:
void myintrCallback(无效)

回调函数定义示例:
void myintrCallback (void
{
/* Code to process the interrupt */
}

设置回调函数示例:
dma_setInterCallback (& myintrCallback);

中断启用示例:c
ytenable (CYDMA_INTR_NUMBER);cyglobalIntenable;

在原理图上配置不使用 DMA 组件的软件 DMA 时,请调用 cydmasetInterruptSourceMask () 以启用对 CPU 内核的中断生成。

希望这有帮助

最好的问候
Ekta

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-4/How-to-enter-DMA-interrupt-while-running-in-other-interrupt/m-p/652703

0 点赞