完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我使用的是 AURIX TC387。
现在,我想用相同的 CM0 和 CM1 值同步生成三个 TOM 通道的 PWM。 对于 TOM0_CH0,当 CN0 = CM1 时,CN0 通过 TRIG_CCU0 复位为 0,然后 TRIG_CCU0 路由到 TRIG[0],用作 CH1_CN0 和 CH2_CN0 的复位触发器。 GTM_TOM0_CH0_CTRL.B.RST_CCU0 = 0; // TOM0_CH0_CN0 reset by TRIG_CCU0 GTM_TOM0_CH0_CTRL.B.TRIGOUT = 1; // TRIG_CCU0 selected as TRIG[0] GTM_TOM0_CH1_CTRL.B.RST_CCU0 = 1; GTM_TOM0_CH1_CTRL.B.EXT_TRIG = 0; // TOM0_CH0_CN1 reset by TRIG[0] GTM_TOM0_CH1_CTRL.B.EXTTRIGOUT = 0; GTM_TOM0_CH1_CTRL.B.TRIGOUT = 0;// TRIG[0]selected as TRIG[1] GTM_TOM0_CH2_CTRL.B.RST_CCU0 = 1; GTM_TOM0_CH2_CTRL.B.EXT_TRIG = 0;// TOM0_CH0_CN2 reset by TRIG[1] GTM_TOM0_CH2_CTRL.B.EXTTRIGOUT = 0; GTM_TOM0_CH2_CTRL.B.TRIGOUT = 0;TRIG[1]selected as TRIG[2] and so on... 我认为,当 CH0_CN0 复位时,CH1_CN0 和 CH2_CN0 也会复位,然后 PWM 同步,因为它们的 CM0 和 CM1 值相同,同步后它们的 CN0 值应该相等。 但从调试器的结果来看,它们并不相同。 为什么? 如果您需要更多细节,请告诉我。 |
|
相关推荐
1个回答
|
|
要使用相同的CM0和CM1值同步生成三个TOM通道的PWM,您可以按照以下步骤操作:
1. 首先,配置CCU模块以生成所需的PWM频率。您需要设置CM0和CM1寄存器的值。例如,您可以使用以下代码: ```c CCU0->CM0 = 0x12345678; // 设置CM0的值 CCU0->CM1 = 0x9ABCDEF0; // 设置CM1的值 ``` 2. 接下来,配置TOM通道。您需要设置TOM通道的控制寄存器,以便它们可以接收CCU模块的信号。以下是TOM0_CH0的配置示例: ```c GTM_TOM0_CH0_CTRL.B.RST_CCU0 = 0; // TOM0_CH0_CN0由TRIG_CCU0复位 GTM_TOM0_CH0_CTRL.B.TRIGOUT = 1; // TRIG_CCU0被选为TRIG[0] ``` 3. 配置TOM0_CH1和TOM0_CH2以使用TOM0_CH0的输出作为复位触发器。您可以使用以下代码: ```c GTM_TOM0_CH1_CTRL.B.RST_CCU0 = 1; // 使用TOM0_CH0的输出作为复位触发器 GTM_TOM0_CH1_CTRL.B.EXT_TRIG = 0; // 禁用外部触发器 GTM_TOM0_CH2_CTRL.B.RST_CCU0 = 1; // 使用TOM0_CH0的输出作为复位触发器 GTM_TOM0_CH2_CTRL.B.EXT_TRIG = 0; // 禁用外部触发器 ``` 4. 确保所有TOM通道的计数器模式设置为PWM模式。您可以使用以下代码: ```c GTM_TOM0_CH0_CTRL.B.MODE = 1; // 设置TOM0_CH0为PWM模式 GTM_TOM0_CH1_CTRL.B.MODE = 1; // 设置TOM0_CH1为PWM模式 GTM_TOM0_CH2_CTRL.B.MODE = 1; // 设置TOM0_CH2为PWM模式 ``` 5. 最后,启动TOM通道。您可以使用以下代码: ```c GTM_TOM0_CH0_CTRL.B.ENABLE = 1; // 启动TOM0_CH0 GTM_TOM0_CH1_CTRL.B.ENABLE = 1; // 启动TOM0_CH1 GTM_TOM0_CH2_CTRL.B.ENABLE = 1; // 启动TOM0_CH2 ``` 通过以上步骤,您可以使用相同的CM0和CM1值同步生成三个TOM通道的PWM。请注意,这里的代码示例仅供参考,您可能需要根据您的具体硬件和软件环境进行调整。 |
|
|
|
只有小组成员才能发言,加入小组>>
请教个XMC1404调试串口接收时为什么一直无法接收数据的问题
483 浏览 0 评论
TLE9879_BLDC电机启动需要用手拨一下才能转动,怎么解决?
7317 浏览 2 评论
4177 浏览 9 评论
请问TLE5012B_E1000 启动后为什么位置不能正确获取
3729 浏览 9 评论
1290 浏览 8 评论
544浏览 2评论
339浏览 2评论
465浏览 2评论
TLE9879_BLDC电机启动需要用手拨一下才能转动,怎么解决?
7318浏览 2评论
如果是打开已有的dave工程,怎么查看这个工程选择的mcu型号?
556浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-3-6 03:18 , Processed in 0.596769 second(s), Total 80, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191