本帖最后由 IFX_Lingling 于 2024-1-8 16:15 编辑
这个PWM的问题可以下载Infineon的开发工具Modus Toolbox,这个tool可以有图形界面看时钟的配置:
从这个图可以看出路由给CCU8的时钟是64Mhz。
__STATIC_INLINE void XMC_CCU4_SLICE_SetTimerPeriodMatch(XMC_CCU4_SLICE_t *const slice, const uint16_t period_val)
{
XMC_ASSERT("XMC_CCU4_SLICE_SetTimerPeriodMatch:Invalid Slice Pointer", XMC_CCU4_IsValidSlice(slice));
slice->PRS = (uint32_t) period_val;
}
这个函数是设置周期:
XMC_CCU8_SLICE_SetTimerPeriodMatch(SYMMETRIC_PWM_SLICE_HW, 10000U);
比如我CCU8的时钟是64M,分频64,那么我给PWM的clock是1M,周期为10000的话,配置成Edge Aligned的模式话,PWM的周期是10ms((1/1M)*10K )。
如果通过API:XMC_CCU8_SLICE_SetTimerPeriodMatch(SYMMETRIC_PWM_SLICE_HW, 7000U);那么PWM的周期会被更改掉。但是输入时钟还是1M。
配置配置:
|