Timer GPIO channel output compare mode

[复制链接]
1350|3
 楼主| EDAStarer 发表于 2020-7-15 09:02 | 显示全部楼层 |阅读模式
哪位能帮忙解释一下channel output compare mode的各个设置的含义?
想把PWM偏移如何实现?

#define TIMER_OC_MODE_TIMING                ((uint16_t)0x0000U)                     /*!< timing mode */
#define TIMER_OC_MODE_ACTIVE                ((uint16_t)0x0010U)                     /*!< active mode */
#define TIMER_OC_MODE_INACTIVE              ((uint16_t)0x0020U)                     /*!< inactive mode */
#define TIMER_OC_MODE_TOGGLE                ((uint16_t)0x0030U)                     /*!< toggle mode */
#define TIMER_OC_MODE_LOW                   ((uint16_t)0x0040U)                     /*!< force low mode */
#define TIMER_OC_MODE_HIGH                  ((uint16_t)0x0050U)                     /*!< force high mode */
#define TIMER_OC_MODE_PWM0                  ((uint16_t)0x0060U)                     /*!< PWM0 mode */
#define TIMER_OC_MODE_PWM1                  ((uint16_t)0x0070U)                     /*!< PWM1 mode*/

/* channel output compare shadow enable */
#define TIMER_OC_SHADOW_ENABLE              ((uint16_t)0x0008U)                     /*!< channel output shadow state enable */
#define TIMER_OC_SHADOW_DISABLE             ((uint16_t)0x0000U)                     /*!< channel output shadow state disable */
sonicll 发表于 2020-7-15 09:22 | 显示全部楼层
看用户手册TIMER模块的TIMERx_CHCTL0寄存器描述,bit6~bit4,CH0COMCTL[2:0],有详细说明。
你说的PWM偏移是指什么,改变占空比吗?固件库里就有一个pwm out的例子,可以参考
 楼主| EDAStarer 发表于 2020-7-15 11:23 | 显示全部楼层
sonicll 发表于 2020-7-15 09:22
看用户手册TIMER模块的TIMERx_CHCTL0寄存器描述,bit6~bit4,CH0COMCTL[2:0],有详细说明。
你说的PWM偏移 ...

PWM偏移不是指改变占空比,指的是一定延时后再输出PWM。
有时候两个信号的沿要满足一定的时序关系。但是不希望在程序中添加delay来实现这种时序。
sxjgo 发表于 2020-7-15 13:08 | 显示全部楼层
学习了,谢谢分享!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

52

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部