定时器异常

2019-08-16 18:26发布

描述:
void TIM3_IRQHandler(void)   
{
if(TIM3->SR &(1<<0))
{
  TIM3->SR &=~(1<<0);
  timer3_cnt++;
  if(timer3_cnt>10)
  {
   flag_1s=1;
   timer3_cnt=0;///仿真可进入此处

  }
}
}

main函数 while(1)中,
  while(1)
{
    if(flag_1s)
   {
      flag_1s =0;///中断无法进入该if语句内
     ///其他语句
   }
}

所用系统为Win7,64位,感觉很神奇?求个位帮忙分析一下原因,多谢多谢!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
二修
1楼-- · 2019-08-16 23:12
表示不会锁存器版本,库函数版本比较好用
烟酒不沾
2楼-- · 2019-08-17 02:04
中断怎么会进入主函数呢?中断产生只能进入相应的中断入口函数,执行完中断函数后指针返回原来中断的地方继续执行下面的程序!
wxjhby
3楼-- · 2019-08-17 06:21
你确定在硬件上调试仿真时
  if(flag_1s)
   {
      flag_1s =0;///中断无法进入该if语句内
     ///其他语句
   }
flag_1s == 1 时 无法进入if语句?
还是flag_1s 在某处被修改了
sara9999
4楼-- · 2019-08-17 06:53
wxjhby 发表于 2017-7-29 15:10
你确定在硬件上调试仿真时
  if(flag_1s)
   {

if(flag_1s)
{


}
这个花括号,中断进不去。
wxjhby
5楼-- · 2019-08-17 12:50
 精彩回答 2  元偷偷看……

一周热门 更多>