bj15543771902 发表于 2019-5-20 15:10:11

使用STM8L151F3P6编程,调用TIM4定时器

使用TIM2和TIM3都很好用,但不够用。使用TIM4定时器,用中断服务程序来编写一个软件计数器。不论如何初始化编程,TIM4就是不能进入中断,void Tim4_Init(void)
{         
    TIM4_TimeBaseInit(TIM4_Prescaler_16,250);//TIM3时基初始化   
    TIM4_ARRPreloadConfig(ENABLE);//使能自动重装(250)   
    TIM4_ITConfig(TIM4_IT_Update, ENABLE);//数据更新中断(0)   
    TIM4_Cmd(ENABLE);//开定时器4   
}
不知如何是好,中断服务程序如下:用LED1作指示,高电平点亮。
INTERRUPT_HANDLER(TIM4_UPD_OVF_TRG_IRQHandler,25)
{   
    LED1_H;//点亮   
    static u16 w=0;//加热周期-(250(T4)X40000=10S)局部静态变量
    if(w<40000)   //创建副开关计数器
    {      
      w++;               
    }
    else         //计数溢出
    {
      w=0;               
      LED2_H;//点亮      
      TIM2_Cmd(ENABLE);//开启定时器2
      TIM3_Cmd(ENABLE);//开启定时器3
    }
    TIM4_ClearITPendingBit(TIM4_IT_Update);//清除更新中断标志位         
}
敬请高手点拨!

bj15543771902 发表于 2019-5-20 15:20:08

LED1不亮表明TIM4未进入中断。

Kevin201707 发表于 2019-5-20 16:47:39

看着还可以啊,仿真看看寄存器的数值

wenyangzeng 发表于 2019-5-20 17:42:42

本帖最后由 wenyangzeng 于 2019-5-20 17:44 编辑

使用基本定时器中断应该就可以了。

songshiqun2010 发表于 2019-5-21 10:57:34

bj15543771902 发表于 2019-5-20 15:20
LED1不亮表明TIM4未进入中断。

定时器时钟开了吗?
页: [1]
查看完整版本: 使用STM8L151F3P6编程,调用TIM4定时器