以下为测试代码,但是捕获中断进不去,不知道什么原因,求助大神,看看哪里设置有问题
#include
void
timer1Init(void)
{
// asm("sim"); // 关全局中断
TIM1_CR1=0x00; //关闭定时器
TIM1_IER=0x00; //关闭中断
TIM1_PSCRH = 0;
TIM1_PSCRL = 15; //(fCK_CNT)等于fCK_PSC/( PSCR[15:0]+1)。
TIM1_CCER1 = 0x00; //
TIM1_CCMR1 = 0x01; //配置为输入,IC1映射在TI1FP1上
TIM1_SR2 = 0X00; //清中断标志
TIM1_CCER1 = 0x03; //cc1配置为输入 低电平或下降沿触发
TIM1_IER = 0x02; //允许捕获1中断
TIM1_CR1 |= 0x01; //
// asm("rim"); // 开全局中断
}
#pragma vector=TIM1_CAPCOM_CC1IF_vector
__interrupt void TIM1_CAP_COM_IRQHandler(void)
{
TIM1_SR1 =~0x02;//清除中断标志
PB_ODR^=0x20;
}
void main( void )
{
// int i,j;
CLK_CKDIVR = (unsigned char)(~0x18);/*时钟复位*/
CLK_CKDIVR|= (unsigned char)0x00;/*设置时钟为内部16M高速时钟*/
PB_DDR|=0x20;
PB_CR1|=0x20;
PB_CR2|=0x00;
PC_DDR = ~0x40; //PC6设置为输入
PC_CR1 = 0x40; //带上拉电阻输入
PC_CR2 = ~0x40; //禁止外部中断
Timer1Init();
asm("rim");//开全局中断
while(1);
}