_basile (23.03.2005 14:55, просмотров: 1619)
Вопрос: Прерывание по TIMER1 происходит только один раз...? Код ниже. У Keila в Debuggere и на макете прерывание происходит
только один раз, а потом - флаг встает, а прерывание не вызывается. Может кто это проехал?
int main (void)
{
VICIntSelect &= ~(TIMER1_INT_BIT); //Timer1 select as IRQ
VICVectAddr0 = (unsigned long)IRQ_Handler;
VICVectCntl0 = 0x20 + TIMER1_INT;
VICIntEnable |= TIMER1_INT_BIT; //Enable Timer1 interrupt
TIMER1_TCR=0; TIMER1_TC=0;
TIMER1_PR=0; TIMER1_PC=0;
TIMER1_MR0=0xFF; TIMER1_MCR= 0x03;
TIMER1_TCR=1;
for(;;)
{ IOSET0= 0x20000000; IOCLR0= 0x20000000; }
}
void __attribute__((interrupt (TIMER1_INT))) IRQ_Handler()
{ TIMER1_IR |= 0x01; }