请教问题:用您们 BF51x_TIMER_INTERRUPT 的例程,在程序里添加了一个 TEMR4定时器应用,并让TEMR4定时器也能产生中断,但程序运行后发现原程序的TEMR0的定时器中断会进不去了,只能进TEMR4定时器中断了,我把*pSIC_IMASK1 = 1<<4; 屏蔽掉,就是不开TEMP4定时器,但它同样能进TEMR4的中断函数,不知道是什么原因。我修改程序如下:
void Init_Interrupts(void)
{
// *pSIC_IAR1 = 0xffffffff;
// *pSIC_IAR2 = 0xfffffff4;
*pSIC_IAR4 = 0x55555555; //我自己添加的
register_handler(ik_ivg12, TIMER0_ISR);
*pSIC_IMASK1 |= 0x00000001;
register_handler(ik_ivg12, TIMER4_ISR); //我自己添加的
*pSIC_IMASK1 = 1<<4; //我自己添加的
}
EX_INTERRUPT_HANDLER(TIMER0_ISR)
{
*pTIMER_STATUS |= 0x0001;
printf("timer0 interrupt !\n");
}
EX_INTERRUPT_HANDLER(TIMER4_ISR)
{
*pTIMER_STATUS = 1<<16;
printf("timer4 interrupt !\n");
}
问题1:TEMR0 与TEMR4和 ik_ivg12 的关系,看手册是应该同属于 ik_ivg12 ?
问题2:TEMR0 与TEMR4的中断优先级是在 *pSIC_IARx 里设定吗?是怎么设定的?设定的数值和优先级是什么关系?
问题3:所有的中断优先级可以任意调节吗?
「该帖子被 gaozl531 在 2013-05-03 21:33:31 编辑过」