我的目的是利用TIM2通道1的比较输出模式(翻转模式),在翻转的情况下能产生一个中断,以便在中断内记录翻转的次数。但是发现一直无法进入中断函数TIM2_CC_IRQHandler (void)内。求各位同志帮忙看一下哪里有问题。再次谢过 TIM2通道1的寄存器设置如下: TIM2_CR1 = TIM2_CR1 | 0x00; TIM2_CCMR1 = TIM2_CCMR1 | 0x30; // 通道1被设置为输出比较模式 // OC1M = 011 // 计数器TIM2_CNT的值与捕获/比较寄存器1相同时,翻转 TIM2_CCER1 = TIM2_CCER1 | 0x03; // CC1P = 1,低电平为有效电平 // CC1E = 1,开启输出引脚 TIM2_EGR=TIM2_EGR | 0x02; //CC1G=1,通道CC1产生中断 TIM2_IER=TIM2_IER | 0x02; //允许捕获/比较1中断 TIM2_PSCR = 8; //初始时钟分频为64 TIM2_CCR1H = 0x7A; //初始化比较寄存器 TIM2_CCR1L = 0x12; TIM2_CNTRH=0; TIM2_CNTRL=0; TIM2_CR1 = TIM2_CR1 | 0x01; // 启动计数 中断函数: @far @interrupt void TIM2_CC_IRQHandler (void) { i++; } 在中断配置文件stm8_interrupt_vector.c中 extern @far @interrupt void TIM2_CC_IRQHandler (void); struct interrupt_vector const _vectab[]中为 {0x82, TIM2_CC_IRQHandler}, /* irq14 */ |
弱问一句,使用STVD能用库函数么
能用的,