用IO捕获上升沿中断。 在IO中断发生时,IO的中断处理程序开启一个计时器计时,同时关闭IO的中断。 然后等待Timer的terminal中断,可是进入IO中断后怎么也进不去Timer的terminal中断处理函数。 单独IO中断和单独的Timer中断都调过,没有问题,可是放一起就不行了。 程序如下,谁能帮我分析下问题出在哪里。
#include <m8c.h> // part specific constants and macros #include "PSoCAPI.h" // PSoC API definitions for all User Modules
#pragma interrupt_handler APSoC_GPIO_ISR; #pragma interrupt_handler timer8_1_terminal_int;
void APSoC_GPIO_ISR() //GPIO中断处理函数 { PRT5DR=0xFF; //测试是否进入IO中断 Timer8_1_EnableInt(); //开timer中断 Timer8_1_Start(); //开始计时 INT_MSK0^=INT_MSK0_GPIO; //关IO中断 INT_CLR0|= 0x20; //清空IO中断 }
void timer8_1_terminal_int() //Timer中断处理函数 { PRT6DR=0xFF; //测试是否进入Timer的terminal中断 Timer8_1_Stop(); //停止计时 }
void main() { INT_MSK0|=INT_MSK0_GPIO; //开IO中断 M8C_EnableGInt; //开全局中断 while(1); }
|