注册会员
- 积分
- 58
- 威望
- 32
- 贡献
- 18
- 兑换币
- 16
- 注册时间
- 2016-11-16
- 在线时间
- 4 小时
- 毕业学校
- 浙江工业 大学
|
以下代码是FTM使能的最后一段 其中有一段是FTM_SC_REG(FTMx[ftmn]) = FTM_SC_CPWMS_MASK | FTM_SC_PS(sc_ps) | FTM_SC_CLKS(1); //没有使能溢出中断
问题是如何让使能溢出中断呢 本人急需这个功能
/******************** 选择输出模式为 边沿对齐PWM *******************/
//通道状态控制,根据模式来选择 边沿或电平
FTM_CnSC_REG(FTMx[ftmn], ch) &= ~FTM_CnSC_ELSA_MASK;
FTM_CnSC_REG(FTMx[ftmn], ch) = FTM_CnSC_MSB_MASK | FTM_CnSC_ELSB_MASK;
//MSnB:MSnA = 1x
// ELSnB:ELSnA = 10 High-true pulses (clear Output on match)
// ELSnB:ELSnA = 11 Low-true pulses (set Output on match)
// Edge-aligned PWM 边沿对齐PWM波 《k16 reference manual.pdf》 P944 或者 《K60P144M100SF2RM.pdf》P1001
/******************** 配置时钟和分频 ********************/
FTM_SC_REG(FTMx[ftmn]) = FTM_SC_CPWMS_MASK | FTM_SC_PS(sc_ps) | FTM_SC_CLKS(1); //没有使能溢出中断
FTM_CNTIN_REG(FTMx[ftmn]) = 0; // Channel (n) Value 。设置脉冲宽度:(CnV - CNTIN).
FTM_MOD_REG(FTMx[ftmn]) = mod; //Modulo value模数, EPWM的周期为 :MOD - CNTIN + 0x0001
FTM_CNTIN_REG(FTMx[ftmn]) = 0; //Counter Initial Value 计数器初始化值
FTM_CnV_REG(FTMx[ftmn], ch) = cv;
FTM_CNT_REG(FTMx[ftmn]) = 0; //计数器。只有低16位可用
|
|