在只开FIQ或IRQ时,都正常,但同时开时,只有FIQ,却没有IRQ,请高手指教,如何才能让其都产生中断.<br />我的程序如下://T0为匹配0的中断,FIQ<br /> T0PR = 0;<br /> T0MCR =0x03;<br /> T0MR0 =Fpclk/20000;<br /> <br /> FIQEnable(); //快中断使能<br /> VICIntSelect = VICIntSelect|(1<<4); //FIQ<br /> VICIntEnable = VICIntEnable|(1<<4);<br /><br /> T0TCR =0x01; //开计数器<br /> <br /> //T1为匹配0的中断,IRQ<br /> T1TC = 0; //清T1<br /> T1PR = 0; //预分频<br /> T1CTCR = 0; //T1为定时器<br /> T1MCR = 0x03; //T1MR0匹配后复位,并产生中断<br /> T1MR0 = Fpclk/1000;//初始频率为1000Hz<br /> T1TCR = 0x03; //复位<br /><br /> IRQEnable(); //中断使能<br /> <br /> VICIntSelect = 0x00; //分配为IRQ<br /> VICVectCntl0 = 0x20|0x05; //分配优生级<br /> VICVectAddr0=(uint32)T1MC0;//设置中断地址<br /> VICIntEnable = VICIntEnable|(1<<5); //开T1匹配0中断<br /> T1TCR =0x01; //开计数器<br /><br /><br />//T1 MR0匹配中断函数<br /> void __irq T1MC0(void)<br /> { <br /> <br /> T1IR = 1<<0 ;//清中断<br /> T1MR0 = Fpclk/500;//设定速度<br /> <br /> VICVectAddr=0x00;//向量中断处理结束<br /> <br /> }<br /><br />//FIQ的中断函数<br /> void FIQ_Exception(void)<br />{<br /> //while(1); // change it to your code 这一句替换为自己的代码<br /> <br /> LEDON();<br /> T0IR =0x01; //清中断标志<br /> LEDOFF(); <br /> <br />}<br /><br /> |
|