我有一台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 */
}
}