OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3228|回复: 3

stm8s多个TIM使用问题

[复制链接]

0

主题

1

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2020-4-7
在线时间
3 小时
发表于 2016-4-22 14:15:57 | 显示全部楼层 |阅读模式
1金钱
我的程序TIM1和TIM4同时使用,但是老是停在TIM1中,TIM4没法使用,是不是中断优先级问题,如果是优先级问题,把TIM4设置高的话,TIM1会不会也用不了,新手,请多包含
void Timer1_Init(void)
{
  TIM1_TimeBaseInit(16,TIM1_COUNTERMODE_UP,1000,0);
  TIM1_ARRPreloadConfig(ENABLE);
  TIM1_ITConfig(TIM1_IT_UPDATE , ENABLE);
  TIM1_Cmd(ENABLE);
}

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

void delay_ms( u32 nTime)
{
  TimingDelay = nTime;

  while(TimingDelay != 0);
}


void Timer4_Init(u8 Count)
{
  TIM4_DeInit();
  TIM4_TimeBaseInit(TIM4_PRESCALER_128,Count);
  TIM4_ITConfig(TIM4_IT_UPDATE, ENABLE);
  TIM4_Cmd(ENABLE);
}


INTERRUPT_HANDLER(TIM1_UPD_OVF_TRG_BRK_IRQHandler, 11)
{
  TimingDelay_Decrement();
  i++;
  TIM1_ClearITPendingBit(TIM1_IT_UPDATE);
//  Conversion_Value = ADC2_GetConversionValue();
//  Delay(0xffff);
//  Delay(0xffff);
//  ADC_Value(Conversion_Value);
//  TIM1_ClearITPendingBit(TIM1_IT_UPDATE);
}

INTERRUPT_HANDLER(TIM4_UPD_OVF_IRQHandler, 23)
{
    i++;
    if(i==490)  //16M
    {
      LED_Toggle(LED1|LED2|LED3);
      i=0;
    }
    TIM4_ClearITPendingBit(TIM4_IT_UPDATE);
}

void main(void)
{
  /*内部高速时钟16M为主时钟*/
  CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);
  LED_Init(LED1|LED2|LED3);
  Timer4_Init(0xFF);
  KEY_Init();

  ADC_Init();
  #if CONVERSIONMODE ==CONVERSIONMODE_CONTINUOUS
    Timer1_Init();
  #endif
   Delay(0xffff);
   Delay(0xffff);
   Delay(0xffff);
  while (1)
  {

  }

}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

45

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
380
金钱
380
注册时间
2014-12-13
在线时间
89 小时
发表于 2016-4-22 19:02:14 | 显示全部楼层
可以同时使用啊,我用stm8s105同时开4个定时器都正常的,不过我代码用的是寄存器方式
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2020-4-7
在线时间
3 小时
 楼主| 发表于 2016-4-22 21:20:33 来自手机 | 显示全部楼层
迷恋烟花的瞬间 发表于 2016-4-22 19:02
可以同时使用啊,我用stm8s105同时开4个定时器都正常的,不过我代码用的是寄存器方式

我想请问下,stm8的TIM使用的时候会占用全部cpu吗?TIM不是靠分频决定运行速率吗?启动TIM1后,其他事情就做不了了,main里的while也不行,麻烦大哥们帮看看
回复

使用道具 举报

0

主题

45

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
380
金钱
380
注册时间
2014-12-13
在线时间
89 小时
发表于 2016-4-23 20:11:27 | 显示全部楼层
你代码有问题,完全没事
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 00:40

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表