【STM8教程】8位定时器应用之二 STM8的C语言编程(6)--8位定时器应用之二 今天进行的实验依然是用定时器4,只不过改成了用中断方式来实现,由定时器4的中断 服务程序来驱动LED的闪烁。 实现中断方式的关键点有几个,第一个关键点就是要打开定时器4的中断允许位,在定时 器4的IER寄存器中有定义。第二个关键点,就是打开CPU的全局中断允许位,在汇编语言 中,就是执行RIM指令,在C语言中,用下列语句实现: _asm("rim"); 第3个关键点就是中断服务程序的框架或写法,中断服务程序的写法如下: @far @interrupt void TIM4_UPD_OVF_IRQHandler (void) { // 下面是中断服务程序的实体 } 第4个关键点就是要设置中断向量,即将中断服务程序的入口填写到中断向量表中,如下 所示,将IRQ23对应的中断服务程序的入口填写成TIM4_UPD_OVF_IRQHandler struct interrupt_vector const _vectab[] = { {0x82, (interrupt_handler_t)_stext}, /* reset */ {0x82, NonHandledInterrupt}, /* trap */ {0x82, NonHandledInterrupt}, /* irq0 */ {0x82, NonHandledInterrupt}, /* irq1 */ {0x82, NonHandledInterrupt}, /* irq2 */ {0x82, NonHandledInterrupt}, /* irq3 */ {0x82, NonHandledInterrupt},……