STM8S003 定时器无法进入中断问题

2019-07-19 20:42发布

使用了资料里面的工程,修改芯片为STM8S003,发现里面无法进入定时器。代码如下:
tim2配置文件
/******************** (C) COPYRIGHT  风驰iCreate嵌入式开发工作室 ********************/
#include "tim2.h"
static  u32 TimingDelay;

void Tim2_Init(void)
{
   TIM2_TimeBaseInit( TIM2_PRESCALER_16 ,999);
   TIM2_PrescalerConfig(TIM2_PRESCALER_16,TIM2_PSCRELOADMODE_IMMEDIATE);
   TIM2_ARRPreloadConfig(ENABLE);
   TIM2_ITConfig(TIM2_IT_UPDATE , ENABLE);
   TIM2_Cmd(ENABLE);
}

/*void Tim2_Init(void)
{
  TIM2_DeInit();
  TIM2_TimeBaseInit(TIM2_PRESCALER_8, 0xff);//1ms中断一次
  TIM2_ITConfig(TIM2_IT_UPDATE, ENABLE);
  TIM2_Cmd(ENABLE);
}*/

/*INTERRUPT_HANDLER(TIM2_UPD_OVF_BRK_IRQHandler, 13)
{
    TIM2_ClearITPendingBit(TIM2_IT_UPDATE);//清除标志位
}*/

void TimingDelay_Decrement(void)
{
  if (TimingDelay != 0x00)
     {
        TimingDelay--;
      }
}

void delay_ms( u16 nTime)
{
  TimingDelay = nTime;

  while(TimingDelay != 0);
}


main.c
int main(void)
{
  /* Infinite loop */

  /*设置内部高速时钟16M为主时钟*/
  CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);
   /*!<Set High speed internal clock */
  #if TIM2_Mode==BaseTime
   Tim2_Init();
   __enable_interrupt();

  #elif TIM2_Mode==PWM  
   PWM_Init();
     #if TIM2_Channel==TIM2_Channel1
     Set_Beep_OptionByte();
     #endif

  #endif

  while (1)
  {
    /*  添加你的代码  */
    TIM2_Mode==BaseTime;
    delay_ms(100);
    i++;
  }
}


中断函数
#pragma vector=0xF
__interrupt void TIM2_UPD_OVF_BRK_IRQHandler(void)
{
  TimingDelay_Decrement();
  TIM2_ClearITPendingBit(TIM2_IT_UPDATE);

}



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
弦子的弦
1楼-- · 2019-07-21 01:16
嘴角的上弦月 发表于 2017-7-24 17:08
就是你寄存器版本中的那个0x0f

没有,STM8只是搞过一周.
刘明洲
2楼-- · 2019-07-21 04:48
 精彩回答 2  元偷偷看……
刘明洲
3楼-- · 2019-07-21 07:22
弦子的弦 发表于 2017-7-25 11:16
没有,STM8只是搞过一周.

怎么解决不能进入中断的问题

一周热门 更多>