本帖最后由 winter1999 于 2014-11-27 11:26 编辑
请教各位,这两天被这个问题搞死。我将PD2配置为TIM3_CH1捕捉中断(已经在选项字节里确认过),将TI1FP1连接至IC1通道。结果中断是有,但是显示的标志是CC2IF,如果将TIM3_CH1配置为TI1FP2连接至IC2,结果中断的标志又跳到CC1IF。甚至有时候进入中断后,发现CC1IF,CC2IF,UIF,TIF的标志全为是0,此时尚未对任何寄存器操作,应该是显示的是引起中断的标志吧,实在搞不明白了。求助,谢谢!
编译器是IAR 1.301, 单片机STM8S105S6。
//TIM3初始化,通道1,TI1FP1连接到IC1,上升沿中断。
void Init_TIM3_Capture(void)
{
CLK_PCKENR1 |= MASK_TIM3_PCKEN;
PD_DDR &= ~MASK_PD_DDR_DDR2;
PD_CR1 |= MASK_PD_CR1_C12;
TIM3_PSCR |= 0x07U; /*!< fCK_CNT = 16M/128 = 125KHz*/
TIM3_CCER1 &= ~MASK_TIM3_CCER1_CC1E;
TIM3_CCMR1 = 0x01U;
TIM3_CCER1 |= MASK_TIM3_CCER1_CC1E;
TIM3_IER |= MASK_TIM3_IER_CC1IE;
TIM3_CR1 |= MASK_TIM3_CR1_CEN;
}
//中断服务程序
#pragma vector = TIM3_CAPCOM_CC1IF_vector
__interrupt void Tim3Capture(void)
{
;
}
进入中断后寄存器的状态。有怀疑过是否是TIM3_CH2产生了中断,但是这个引脚对应的PD0我设置的是输出
|