中断使能寄存器你只要对NVIC_EN0操作就行了。<br />中断使能一般在各模块的控制寄存器中。<br />寄存器32位不表示一个位代表有一个中断,你指的是应该是中断蔽屏寄存器吧?像定时器,它有好几种中断,如:GPTM超时中断,RTC中断,事件中断,匹配中断等几个中断方式,也就是说定时器的中断蔽屏寄存器控制着这几个现有的中断方式而不是32个中断。GPTM总共才7种中断。说明中断蔽屏寄存器有7个位是有效的。<br />中断配置不外乎中断使能,中断类型配置。LUMINARY也一样,只是要看到底采用的是哪个中断类型。比如说定时器中断<br />首先是设置中断类型(溢出中断),再是使能定时器,接着使能定时器中断,最后使能总中断。操作的是各寄存器的一个位,或者多个位。<br />HWREG(TIMER0_BASE + TIMER_O_IMR) |= TIMER_TIMA_TIMEOUT; /* 设置定时器为溢出中断 */ <br /> HWREG(TIMER0_BASE + TIMER_O_CTL) |= TIMER_A & (TIMER_CTL_TAEN); /* 使能定时器0 */ <br /> HWREG(NVIC_EN0) = 1<<(INT_TIMER0A-INT_GPIOA); /* 使能Timer0a中断(中断号为19) */<br /> CPUcpsie(); /* 使能全局中断 */
|