飞思卡尔TPM输入捕获模式

时间:2015-09-18 11:17:18

标签: arm driver cortex-m3 cortex-m

我有一台FRDM-KL26 MCU并且我正在编写TPM / PWM驱动程序,但是无法完成它,所以我有几个问题:

1.TPM0有5个通道。可以使用所有这些通道作为输入捕获吗?

2.我已经为输入捕获模式配置了一个通道,但我不能在ISR中清除TOF(定时器溢出标志)寄存器。 (这是因为在我第一次清除之前发生了另一次溢出?)

isr的例子:

void Io_Tpm_Tpm1Isr(void) {

if(TPM_STATUS_REG(TPM1) & TPM_STATUS_TOF_MASK){                                         /* check if TOF is set */
    TPM1_SC |= TPM_SC_TOF_MASK; /* Delete the TOF flag such that the IRQ ends */
}

if( TPM_STATUS_REG(TPM1) & TPM_STATUS_CH0F_MASK ){                                      /* CHANNEL 0*/
    TPM_CnSC_REG(TPM1,IO_TPM_CHANNEL0) |=  TPM_CnSC_CHF_MASK;                           /*Clear CHF  - event occurred */

}else if(TPM_STATUS_REG(TPM1) & TPM_STATUS_CH1F_MASK){                                  /* CHANNEL 1*/
    TPM_CnSC_REG(TPM1,IO_TPM_CHANNEL1) |=  TPM_CnSC_CHF_MASK;                           /*Clear CHF  - event occurred */
}

}

0 个答案:

没有答案