搜索
查看: 2032|回复: 1

[已解决] 关于STM8定时器定时时间问题

[复制链接]

该用户从未签到

22

主题

1351

帖子

62

蝴蝶豆

论坛元老

最后登录
2021-9-26
发表于 2017-9-4 15:08:08 | 显示全部楼层 |阅读模式
本帖最后由 ldptest 于 2017-9-4 15:14 编辑

我想通过一个引脚,触发TIM2开始计时,时间到进行其他操作,不循环,触发一次计时一次。
当执行时,触发TIM2开始计时,瞬间就触发中断事件,根本没到我设置的计时时间。
请问,如何解决这问题?

/**************************************************************************************************
* 函    数:Init_Timer2
* 功    能:初始化Timer2
* 参    数:无
* 返    回:无
* 说    明:用于按键输入检查
* 更新日期:2017-9-2
**************************************************************************************************/
void Init_Timer2(void)
{
  //256分频,自动重装值 40000,2M主时钟/(256*( 39999+1),相当于周期为5.2S,
  TIM2_DeInit();
  TIM2_TimeBaseInit(TIM2_PRESCALER_256, 39999);
  TIM2_PrescalerConfig(TIM2_PRESCALER_256, TIM2_PSCRELOADMODE_UPDATE);
  TIM2_SetCounter(0x00);                 //设定计数器的初值0
  TIM2_ARRPreloadConfig(ENABLE);          //允许自动重装
  TIM2_SelectOnePulseMode(TIM2_OPMODE_SINGLE);//在发生下一次更新事件(清除CEN位)时,计数器停止
  TIM2_ITConfig(TIM2_IT_UPDATE, ENABLE); //更新中断使能
}

int main( void )
{
  Init_Timer2();
  IO_Init();
  enableInterrupts();   //总中断使能
  u8 Flag = 1;
  while(1)
  {
    if (GPIO_ReadInputPin(Input_GPIO, HS_Pin) && Flag)
    {
      Flag = 0;
      GPIO_WriteLow(Output_GPIO, Work_Pin);   //点亮LED
      TIM2_Cmd(ENABLE);
    }
  }
}

中断
INTERRUPT_HANDLER(TIM2_UPD_OVF_BRK_IRQHandler, 13)
{
/* In order to detect unexpected events during development,
it is recommended to set a breakpoint on the following instruction.
*/
  if (TIM2_GetITStatus(TIM2_IT_UPDATE) != RESET)   //检查 TIM2 更新中断发生与否  
  {
    TIM2_ClearITPendingBit(TIM2_IT_UPDATE);      //清除中断标记
    GPIO_WriteHigh(Output_GPIO, Work_Pin);   //关LED
  }



回复

使用道具 举报

该用户从未签到

22

主题

1351

帖子

62

蝴蝶豆

论坛元老

最后登录
2021-9-26
 楼主| 发表于 2017-9-4 17:52:49 | 显示全部楼层
解决了。

在允许自动重装后增加了:
  TIM2_GenerateEvent(TIM2_EVENTSOURCE_UPDATE);//由软件产生一个更新事件

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2 结贴奖励

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-5-12 03:16 , Processed in 1.182496 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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