在线时间347 小时
UID3455319
注册时间2018-8-22
NXP金币1974
TA的每日心情 | 奋斗 11 小时前 |
---|
签到天数: 1679 天 连续签到: 2 天 [LV.Master]伴坛终老
金牌会员
 
- 积分
- 5247
- 最后登录
- 2025-7-21
|
本帖最后由 jian0052 于 2018-12-13 15:51 编辑
如题,请大神们指点,代码如下
- void init_TPM1(void)
- {
- SIM_SCGC6 |= (SIM_SCGC6_TPM1_MASK ); //开启TPM1时钟
- SIM_SOPT2 |= SIM_SOPT2_PLLFLLSEL_MASK | SIM_SOPT2_TPMSRC(1); //input clock source is MCGPLL/2=24MHz
- TPM1_SC = TPM_SC_PS(5);//Divide by 32
- TPM1_CNT = 0;
- TPM1_MOD = 30; //50ms 37500
- TPM1_SC |= TPM_SC_CMOD(1); //start the counter
- }
- void TPM1_IRQHandler(void)
- {
- TPM1_SC |=TPM_SC_TOF_MASK;
- GPIO_TOGGLE(MKL_PORTD,6);
- }
- int main (void)
- {
- /*Enable all operation modes because this is a write once register*/
- SMC_PMPROT = SMC_PMPROT_AVLLS_MASK |
- SMC_PMPROT_ALLS_MASK |
- SMC_PMPROT_AVLP_MASK;
-
- SystemCoreClockUpdate();
- SIM_SCGC5 |= (SIM_SCGC5_PORTA_MASK
- | SIM_SCGC5_PORTB_MASK
- | SIM_SCGC5_PORTC_MASK
- | SIM_SCGC5_PORTD_MASK
- | SIM_SCGC5_PORTE_MASK );
- IO_FUN_SEL(MKL_PORTD,6,1); //使能IO
- GPIO_DDR_INPUT(MKL_PORTD,6); //配置为输入,
-
-
- IO_IRQ_CONFIG(MKL_PORTD,6,0x09);
- NVIC_EnableIRQ(PORTC_PORTD_IRQn);
- init_TPM1();
复制代码
最佳答案
jian0052 发表于 2018-12-14 08:58
总中断加了,没效果
仿真时看了寄存器TPM_CNT_REG(((TPM_MemMapPtr)0x40039000u)),没有值,是不是TPM1没 ...
说明TPM根本就没跑起来,要么就是时钟也有问题,你看看TPM的时钟源有 ...
|
|