|
static void Timer1_interrupts(void* context,alt_u32 id)
{
done++;
IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER1_BASE, 0); //清状态寄存器
}
//定时器初始化
void Timer1_Init()
{
alt_irq_register(TIMER1_IRQ_INTERRUPT_CONTROLLER_ID,TIMER1_IRQ,Timer1_interrupts); //注册中断函数
IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER1_BASE, 0); //清状态寄存器
IOWR_ALTERA_AVALON_TIMER_PERIODH(TIMER1_BASE,10000>>16);
IOWR_ALTERA_AVALON_TIMER_PERIODL(TIMER1_BASE, 10000); //修改定时周期为1ms
IOWR_ALTERA_AVALON_TIMER_CONTROL(TIMER1_BASE,0x7); //启动定时器允许中断,包括中断允许位,中断开始位,连续计数
}
这个程序 ,定时器为什么不中断,done的值不变,为什么??? |
|