首页|嵌入式系统|显示技术|模拟IC/电源|元件与制造|其他IC/制程|消费类电子|无线/通信|汽车电子|工业控制|医疗电子|测试测量
首页 > 分享下载 > 嵌入式系统 > 【STM8教程】8位定时器应用之二

【STM8教程】8位定时器应用之二

资料介绍
【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},
标签:stm8st
【STM8教程】8位定时器应用之二
本地下载

评论