这个是我的timer0中断程序,可是不能正常运行,为什么?各位个看看:
int main()
{
PINSEL4=PINSEL4&0xFFFF0000; //P2.0-2.7为IO
FIO2DIR=0xFFFFFFFF;//配置方向输出
FIO2CLR=0xFFFFFFFF;
ledstate=0xf;
VICSet();
initTimer0();
while(1);
return 0;
}
void irq_timer0(void) __irq
{
FIO2SET=0x0F;//测试中断程序运行
T0IR=0x01;//清除中断标志
VICVectAddr=0x00;//通知VIC中断处理结束
}
void initTimer0(void)
{
T0TC=0;//设置定时器为0
T0PR=0;//不分频
T0MCR=0x03;//T0复位,产生中断
T0MR0=Fpclk/2;//0.5秒定时
T0TCR=0x01;//启动定时器
}
void VICSet(void)
{
VICIntSelect=0x0;//设置所有中断为IRQ中断
VICVectCntl0=0x20 | TIMER0_INT;//分配中断timer0到通道0
VICVectAddr0=(DWORD)irq_timer0;
VICIntEnable=1<<TIMER0_INT;//使能中断
} |