本人也是刚接触1114,编写了段程序可是进入不了中断,特请教各位同道中人。 我是想用定时器捕获功能,如能赐教不胜感激。
调试中发现在捕获脚上输入脉冲信号,程序就进入DefualtVectorHandle();函数中。可是关闭了中断注册函数zyIsrSet(NVIC_TIMER32B0, (uint32)TIMER32_0_IRQ_Handler, PRIO_TWO);程序就能正常运行。
推断应该是中断了,可没进入(uint32)TIMER32_0_IRQ_Handler(void)中断;
void TIMER32B0_Init(void) { SYSAHBCLKCTRL |= (1 << 9); /* 打开定时器模块 */ IOCON_PIO1_5 |= 0x02; /* 配置P1.5为CT32B0_CAP0输入引脚*/ TMR32B0TCR = 0x02; /*reset timer*/ TMR32B0PR = 0; /* 设置分频系数 */ TMR32B0CCR = 1 << 1; /* 设置CAP0下降沿捕获 */ TMR32B0CCR = 1 << 0; /* 设置CAP0上升沿捕获 */ TMR32B0TC = 0; /*定时器清零*/ zyIsrSet(NVIC_TIMER32B0, (uint32)TIMER32_0_IRQ_Handler, PRIO_TWO); //TMR32B0IR = 0xff; /*reset all timer interrupts*/ TMR32B0IR = 1 << 4; TMR32B0CCR |= 1 << 2; /*捕获装载产生中断*/ TMR32B0TCR = 0x01; /* 启动定时器*/ //zyIsrSet(NVIC_TIMER32B0, (uint32)TIMER32_0_IRQ_Handler, PRIO_TWO); }
unsigned long TIMER32_0_IRQ_Handler (void) { uint32 t; flag = 1; temp = TMR32B0CR0; TMR32B0IR = 1<<4;
}
|