打印

我的定时器启动后先进一次中断

[复制链接]
2103|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhangjunye|  楼主 | 2010-9-3 12:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好
我用的stm32单片机,我已经做了其他可能的排除,最好确定 定时器使能后先进入一次中断。
我感觉应该是有些标志位没有清除,希望各位大侠帮我看看。

void TIM_Configuration(void)
{
TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;

  /* Time base configuration */
  TIM_TimeBaseStructure.TIM_Period = 6000;         
  TIM_TimeBaseStructure.TIM_Prescaler = 0;      
  TIM_TimeBaseStructure.TIM_ClockDivision = 0;   
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
  TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
  
  /* Prescaler configuration */
  TIM_PrescalerConfig(TIM2, 36000-1, TIM_PSCReloadMode_Immediate);
  
TIM_ARRPreloadConfig(TIM2, ENABLE);
  
  //清中断,以免一启用中断后立即产生中断
  TIM_ClearFlag(TIM1, TIM_FLAG_Update);

  //清零脉冲计数器
  TIM_SetCounter(TIM2,0x0000);

  // TIM 中断使能  
  TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);
  
  //TIM2 使能
  TIM_Cmd(TIM2, ENABLE);
}
沙发
xixihaha0| | 2010-9-4 17:57 | 只看该作者
你确认在执行
TIM_Cmd(TIM2, ENABLE);
语句后cpu马上进入了中断函数?
允许后会开时计数,计数满值后就会进行中断

使用特权

评论回复
板凳
zhangjunye|  楼主 | 2010-9-7 15:25 | 只看该作者
我确认,因为我做了,中断使能后马上禁止中断的实验,也进了中断,说明使能后直接进的中断。

使用特权

评论回复
地板
tieguanyin2008| | 2010-9-7 22:06 | 只看该作者
把计数器清0,再开始计数

使用特权

评论回复
5
tieguanyin2008| | 2010-9-9 23:16 | 只看该作者
先设置计时参数,使能中断,禁止计数。
再启动计数

使用特权

评论回复
6
lixiaoxu2meng| | 2010-9-13 09:22 | 只看该作者
mark

使用特权

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

本版积分规则

个人签名:想得多,做得少,人笨又不读书。

9

主题

139

帖子

1

粉丝