查看: 1355|回复: 4

[其他] XHY timer中断0\1\2,2不能被执行的问题

[复制链接]
  • TA的每日心情
    无聊
    2019-8-29 13:37
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    18

    主题

    88

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    251
    最后登录
    2022-1-14
    发表于 2015-10-10 13:13:55 | 显示全部楼层 |阅读模式
    我是用的S12XHY16为单片机,设置TIMER1的三个中断ch0、1、2,我这出个问题,ch2中断不能执行,刚开始开机是可以的,一旦0、1执行起来之后他就不行了,是否优先级的问题或者啥,优先级没进行设置,是默认的,请大家不吝赐教

    初始化不能被TC7复位)
      TIM1_TIOS_IOS0  = 1;
      TIM1_OCPD_OCPD0 = 1;
      TIM1_TIOS_IOS1  = 1;
      TIM1_OCPD_OCPD1 = 1;  
      TIM1_TIOS_IOS2  = 1;//set ch2 Output Compare
      TIM1_OCPD_OCPD2 = 1;/

    interrupt 40 void  ISR_40_timer1_ch0 (void) {//number_of_ISR = 40 ; Unimplemented_ISR();
      byte i;
      TIM1_TFLG1 |= TIM1_TFLG1_C0F_MASK;
      
      TIM1_TC0 += TIMER_3MS;

      i = TIM1_TFLG1;
    }
    interrupt 41 void  ISR_41_timer1_ch1 (void)
    {
      TIM1_TFLG1 |= TIM1_TFLG1_C1F_MASK;
    }
    interrupt VectorNumber_Vtim1ch2 void ISR_42_Timer1_CH2(void)
    {        
      TIM1_TFLG1 |= TIM1_TFLG1_C2F_MASK;   
    }
    我知道答案 目前已有4人回答
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2019-8-29 13:37
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    18

    主题

    88

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    251
    最后登录
    2022-1-14
     楼主| 发表于 2015-10-10 13:30:02 | 显示全部楼层
    问题解决了,清FLAG标志改成TIM1_TFLG1 = TIM1_TFLG1_C2F_MASK;就OK了,不能用或
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    145

    主题

    4926

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    9267
    最后登录
    1970-1-1
    发表于 2015-10-10 14:17:26 | 显示全部楼层
    问题解决了就好,感谢楼主分享解决方案。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    61

    主题

    965

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2394
    最后登录
    1970-1-1
    发表于 2015-10-10 14:58:39 | 显示全部楼层
    数据手册上应该有说的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2019-8-29 13:37
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    18

    主题

    88

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    251
    最后登录
    2022-1-14
     楼主| 发表于 2015-10-10 21:31:23 | 显示全部楼层
    最终原因确认:
    之后与同事分析用或赋值的话,会因为实际等效于X = X|Y;这样的话,X同时几个标志位被置位之后,再这样操作就会清零除了Y(掩码)位置之外的早已为1的标志位。
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-19 14:26 , Processed in 0.091873 second(s), 25 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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