完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在使用 LPC802 处理器生成 PWM 信号。我将 CtiMER0 (PIO0_9) 设置为 3kHz %50 占空比 PWM,还为 GPIO 切换设置了 600Hz MRT 中断。但是 PWM 从低开始。我怎样才能改变它从高开始?我添加了我的信号图片和我的主要代码。
|
|
相关推荐
1个回答
|
|
您可以通过更改 CTIMER 控制寄存器 (CCR) 中的配置来更改 CTIMER PWM 设置。
在MCUXpresso中,您可以使用以下代码更改 PWM 从高开始: CTIMER0->CCR &= ~(1 << 0); 这将关闭计数器并将其重置为零。然后,您需要在配置寄存器中更改 PWM 设置: CTIMER0->CR = CTIMER_CR_CEN_MASK; CTIMER0->MR[0] = 150; CTIMER0->MR[1] = 75; CTIMER0->PWMC = CTIMER_PWMC_PWMEN0_MASK | CTIMER_PWMC_PWMEN1_MASK; 这将设置一个 3kHz,50%占空比的 PWM 信号,从高电平开始。 您可以根据需要更改 MR[0] 和 MR[1] 寄存器来更改频率和占空比。 完整的代码应如下所示: CTIMER0->CCR &= ~(1 << 0); CTIMER0->CR = CTIMER_CR_CEN_MASK; CTIMER0->MR[0] = 150; CTIMER0->MR[1] = 75; CTIMER0->PWMC = CTIMER_PWMC_PWMEN0_MASK | CTIMER_PWMC_PWMEN1_MASK; 在设置 PWM 之后,您可以使用以下代码配置 MRT 中断: MRT0->INTVAL0 = 12000000 / 600 - 1; MRT0->CTRL |= MRT_CTRL_INTEN_MASK; MRT0->CHANNEL[0].STAT = MRT_CHANNEL_STAT_IRQ_FLAG_MASK; 在此示例中,将产生一个 600Hz 的 MRT 中断,并将 MRT0_CH0_STAT 寄存器的 IRQ_FLAG 位设置为零。 请注意,在更改 CTIMER 和 MRT 寄存器之前,请确保禁用它们的时钟。在此之后,您可以重新启用它们的时钟以开始 PWM 和 MRT 中断。 |
|
|
|
只有小组成员才能发言,加入小组>>
1933个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36421 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4901 浏览 1 评论
6109 浏览 1 评论
6819 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4249 浏览 0 评论
648浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
644浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
645浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
730浏览 2评论
844浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 13:03 , Processed in 1.115004 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号