打印
[STM8]

STM8定时器2不能进入中断

[复制链接]
2154|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
l217914|  楼主 | 2014-1-7 11:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void main(void)
{
    SCLK_Config();
    GPIO_DeInit(GPIOC);
    GPIO_Init(GPIOC, GPIO_PIN_5, GPIO_MODE_OUT_PP_HIGH_SLOW);
    //TIM4_init1();
    TIM2_init();   
    __enable_interrupt();
    while(1);


}

void TIM4_init1()
{
   TIM4_DeInit();   
   TIM4_TimeBaseInit(TIM4_PRESCALER_16, 999);
   TIM4_PrescalerConfig(TIM4_PRESCALER_1, TIM4_PSCRELOADMODE_IMMEDIATE);
   TIM4_ARRPreloadConfig(ENABLE);
   TIM4_ITConfig(TIM4_IT_UPDATE, ENABLE);
   TIM4_Cmd(ENABLE);
}

void TIM2_init()
{
  
   TIM2_DeInit();
   TIM2_TimeBaseInit(TIM2_PRESCALER_16, 2999);
   TIM2_PrescalerConfig(TIM2_PRESCALER_1, TIM2_PSCRELOADMODE_IMMEDIATE);
   TIM2_ARRPreloadConfig(ENABLE);
   TIM2_ITConfig(TIM2_IT_UPDATE, ENABLE);
   TIM2_Cmd(ENABLE);
}

void SCLK_Config(void)
{
    CLK_DeInit();                                   //寄存器复位
    CLK_HSICmd(ENABLE);                             //内部高速时钟使能
    CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);  //内部1分频16M
    //CLK->PCKENR1 = 0xff;
}

#pragma vector=0xF
__interrupt void TIM2_UPD_OVF_BRK_IRQHandler(void)
#endif
{
  /* In order to detect unexpected events during development,
     it is recommended to set a breakpoint on the following instruction.
  */
      if(COUNTER<10000)
    {
        COUNTER++;
        //
    }
    else
    {
        if(GPIO_ReadInputData(GPIOC)&0x20)
        {
            GPIO_WriteLow(GPIOC, GPIO_PIN_5);
        }
        else
        {
          GPIO_WriteHigh(GPIOC, GPIO_PIN_5);  
        }
        COUNTER=0;
    }
    TIM2_ClearITPendingBit(TIM2_IT_UPDATE);
}

新手刚接触STM8!!!!!!!!!
原本的初始化是定时器2的例子,改成定时器4就可以产生中断,用定时器2就不行。好像进不了中断,求大侠帮忙,都搞了一个多星期了。
沙发
l217914|  楼主 | 2014-1-7 14:52 | 只看该作者
怎么没人回呀,晕死咯

使用特权

评论回复
板凳
l217914|  楼主 | 2014-1-7 14:56 | 只看该作者
用的型号是STM8S003F3

使用特权

评论回复
地板
sabaka| | 2014-1-8 08:57 | 只看该作者
     库函数不会用,但是我自己用寄存器是没问题的,也是003f3

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

61

帖子

1

粉丝