在线时间25 小时
UID38637
注册时间2008-3-28
NXP金币0
该用户从未签到
中级会员
 
- 积分
- 379
- 最后登录
- 1970-1-1
|
本帖最后由 北极星-38637 于 2016-4-1 14:47 编辑
想用KL26的TPM输出频率1000Hz,占空比50%的方波。我使用32.768KHz晶振,给TPM用FLL时钟。系统CORECLK是24MHz正常的。FLLCLK也是24MHz的。
/* MCG初始化函数里 */
MCG_C4 = (0 | MCG_C4_DMX32_MASK
| MCG_C4_DRST_DRS(0)); // MCG_C4 = 0x80, 32768 *732= 24MHz
/********************TPM 配置时钟和分频 ********************/
SIM_SOPT2 |= SIM_SOPT2_TPMSRC(1); //00-Clock disabled ,01-MCGFLLCLK clock, or MCGPLLCLK/2 ,10-OSCERCLK clock ,11-MCGIRCLK clock
SIM_SOPT2 &= ~SIM_SOPT2_PLLFLLSEL_MASK;
TPM_SC_REG(TPM1]) = ( 0
//| TPM_SC_CPWMS_MASK //0:上升沿计数模式 ,1: 跳变沿计数模式选择 (注释了表示 0)
| TPM_SC_PS(0) //分频因子,分频系数 = 2^PS
| TPM_SC_CMOD(1)
);
TPM1_MOD = 24000; //模数, EPWM的周期为 :MOD - CNTIN + 0x0001
TPM_CnV_REG(TPM1, chn) = 12000;
TPM_CNT_REG(TPM1) = 0; //计数器。只有低16位可用(写任何值到此寄存器,都会清0)
实测得到的频率只有15.6Hz,是哪里出问题了。
另外,看到例程LQRUG_tpm_ex1里,用了TPM0的中断去清溢出标志,是必须的吗?
|
|