完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在使用 GTM.ATOM 生成 PWM 信号,我想使用这个 PWM 信号在主从模式下控制另一个 PWM 信号。 例如,在主 PWM 信号的上升沿,从属 PWM 信号处于启用状态,在下降沿,从属 PWM 信号被禁用。 从用户手册中,我发现 ARU 可以提供帮助,但我不知道如何实现我的配置。 有人能给我一些提示吗? 提前谢谢了〜
最诚挚的问候, 郑涛 下图可以进一步澄清我的问题: |
|
相关推荐
2个回答
|
|
要实现主从模式,根据主 PWM 信号的上升沿和下降沿控制从机 PWM 信号,可以将 GTM(通用计时器模块)的 ARU(高级路由器单元)与 ATOM(定时器输出模块)结合使用,生成 PWM 信号。
以下示例代码演示如何配置和使用 GTM ATOM 生成主 PWM 信号并控制从属 PWM 信号: #include "Ifx_Types.h"#include "IfxCpu.h"#include "IfxScuWdt.h"#include "GTM_ATOM_PWM.h"#include "Bsp.h"#define MASTER_PWM_CHANNEL 2#define SLAVE_PWM_CHANNEL 5IfxGtm_Atom_Pwm_Config masterConfig;IfxGtm_Atom_Pwm_Config slaveConfig;IfxGtm_Atom_Pwm_Driver masterDriver;IfxGtm_Atom_Pwm_Driver slaveDriver;void initGtmAtomPwm(void){ // Enable the GTM IfxGtm_enable( MODULE_GTM); // Set the CMU clock 0 frequency to 1 MHz IfxGtm_Cmu_setClkFrequency( MODULE_GTM, IfxGtm_Cmu_Clk_0, 1000000); // Enable the CMU clock 0 IfxGtm_Cmu_enableClocks( MODULE_GTM, IFXGTM_CMU_CLKEN_CLK0); // Initialize the master PWM configuration IfxGtm_Atom_Pwm_initConfig( masterConfig, MODULE_GTM); masterConfig.atom = IfxGtm_ATOM2; masterConfig.atomChannel = MASTER_PWM_CHANNEL; masterConfig.period = 5000; // Set the period for the master PWM signal masterConfig.pin.outputPin = LED; // Set the LED as the output pin for the master PWM signal masterConfig.synchronousUpdateEnabled = TRUE; // Enable synchronous update of the timer // Initialize and activate the master PWM IfxGtm_Atom_Pwm_init( masterDriver, masterConfig); IfxGtm_Atom_Pwm_start( masterDriver, TRUE); // Initialize the slave PWM configuration IfxGtm_Atom_Pwm_initConfig( slaveConfig, MODULE_GTM); slaveConfig.atom = IfxGtm_ATOM2; slaveConfig.atomChannel = SLAVE_PWM_CHANNEL; slaveConfig.period = 5000; // Set the period for the slave PWM signal slaveConfig.pin.outputPin = SLAVE_LED; // Set the slave LED as the output pin for the slave PWM signal slaveConfig.synchronousUpdateEnabled = TRUE; // Enable synchronous update of the timer // Initialize and activate the slave PWM IfxGtm_Atom_Pwm_init( slaveDriver, slaveConfig); IfxGtm_Atom_Pwm_start( slaveDriver, TRUE);}int main(void){ // Enable interrupts IfxCpu_enableInterrupts(); // Disable the watchdog IfxScuWdt_disableCpuWatchdog(IfxScuWdt_getCpuWatchdogPassword()); // Initialize the GTM ATOM PWM initGtmAtomPwm(); while (1) { // Your application code here } return 0;}在此代码中,该initGtmAtomPwm 函数用于配置和初始化 GTM ATOM 以生成主机和从 PWM 信号。主 PWM 信号使用 和masterConfig masterDriver结构生成,而从属 PWM slaveConfig信号slaveDriver使用 和 结构生成。period配置结构中的 字段用于设置 PWM 信号的周pin.outputPin期,该 字段用于选择 LED 作为 PWM 信号的输出引脚。 请注意,您需要将LED SLAVE_LED和 替换为适合您的特定硬件设置的引脚定义。 GTM ATOM 初始化后,您就可以使用该IfxGtm_Atom_Pwm_start 功能启动主 PWM 信号和从机 PWM 信号的 PWM 生成。然后,您可以通过使用所需的导通时间值调用 PWM 信号的占空比来控制 PWMIfxGtm_Atom_PwmHl_updatePulse 信号的占空比。 请注意,此代码是一个基本示例,可能需要修改以适应您的特定要求和硬件设置。 |
|
|
|
要使用Aurix TC39x板上的PWM信号控制另一个信号,您可以利用GTM(General Timer Module)模块和ARU(Analog Reset Unit)功能来实现。
以下是一种可能的实现方式: 1. 首先,将GTM的ATOM功能配置为生成您所需的主PWM信号。您可以使用GTM的寄存器和中断来设置PWM信号的周期、占空比和其他参数。确保您的主PWM信号已正确配置并正常工作。 2. 接下来,使用ARU功能来控制从PWM信号的启用/禁用。请注意,ARU模块与GTM模块相连,并且可以通过配置ARU寄存器来监测和响应来自GTM的事件。 3. 配置ARU以匹配您的需求。例如,您可以配置ARU以在主PWM信号的上升沿上启用从PWM信号,在下降沿上禁用它。这可以通过将ARU寄存器配置为监测主PWM信号并相应地设置/清除从PWM信号的控制位来实现。 4. 确定ARU的工作模式和触发条件。您可以使用ARU寄存器来配置主PWM信号的边沿和确定与之关联的从PWM信号的动作。 请注意,以上只是一种概念性的实现思路,并且具体的配置细节可能因您的硬件和固件版本而有所不同。因此,我建议您参考Aurix TC39x芯片的用户手册和相关文档,以获取更多详细信息和确切的指导。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
988 浏览 0 评论
645 浏览 0 评论
嵌入式学习-搭建自己的ubuntu系统之ubuntu网络设置
778 浏览 0 评论
龙芯中科胡伟武:3B6600 八核桌面 CPU 性能将达到英特尔中高端酷睿 12~13 代水平
842 浏览 0 评论
树莓派Pico 2发布,搭载RP2350双核RISC-V和Arm Cortex-M33微控制器!
795 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
10763 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-20 02:34 , Processed in 0.472406 second(s), Total 42, Slave 36 queries .
Powered by 电子发烧友网
© 2015 www.ws-dc.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号