4607|5

116

帖子

0

资源

一粒金砂(初级)

求助STM8中断嵌套问题 [复制链接]

我想在PORTA的外部中断进行的同时,使用TIM2进行计数
在没有进行任何中断优先级设置的时候,程序在外部中断里运行,但是不会进入到TIM2更新中断中。
之后我按照如下设置(IAR编译器)
  ITC_SPR1_VECT3SPR = 0;  //PORTA中断优先级1
  ITC_SPR4_VECT13SPR = 1; //TIM2中断优先级2
仍然不能进入到TIM2更新中断,我不是很清楚中断嵌套的使用方法,看手册感觉也不是十分明白。
此帖出自stm32/stm8论坛

回复

87

帖子

0

资源

一粒金砂(初级)

ITC_SPR1_VECT3SPR = 1;  //PORTA中断优先级1
  ITC_SPR4_VECT13SPR = 0; //TIM2中断优先级2
刚才这块好像反了,不过就算是换过来也是进不去TIM2中断

回复

110

帖子

0

资源

一粒金砂(初级)

                                 不好意思,是我自己循环程序的逻辑搞错了,其实是已经进入到中断嵌套

回复

79

帖子

0

资源

一粒金砂(初级)

                                   怎么错的?

回复

103

帖子

0

资源

一粒金砂(初级)

                                 错在哪里呢,楼主能否说得稍微具体一点

回复

107

帖子

0

资源

一粒金砂(初级)

if(!Manual && !SetFlag && !SetOver)
    {
      while(!Set)               //设置键一直按下状态
      {
        if(KeyCounter > 80)     //键盘按下2s以上
        {
          SetFlag = 1;          //设置标志
          DisSet = 1;           //
          Manual = 0;           //自动
          Password = 0;         //
          break;
        }
      }
      if(!Set)
      {
        Display_Key(TM_S,TM_T);     //显示ST(设置)
      }
      else
      {
        Manual = 1;             //不是一直按下,切换到手动状态
        A_M = 0;                //输出为手动状态
      }
    }


程序中的
Manual = 1;             //不是一直按下,切换到手动状态
这句我以前写到
while(!Set)               //设置键一直按下状态
这句里头了,结果在TIM2中判断Manual时,没有对KeyCounter进行操作,程序就死在里头了

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

最新文章 更多>>
    关闭
    站长推荐上一条 1/6 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2021 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表