• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

stm8定时器与外部中断的问题?

FEItwo 2019-04-09 浏览量:1110
外部中断用来脉冲计数。不计数时,定时器正常,每秒翻转一次LED灯。外部中断开始计数,LED灯就不正常了,有时两三秒,有时五六秒才翻转。一开始以为是优先级,可是配置软件优先级后还是一样啊。。。大神们指点一下
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 针对你的这个程序思路我的建议是:
    1、外部中断函数中只计数,不做任何数据处理,并且要注意中断标志位清楚
    2、定时中断也是一样,做到快进快出。(实在不行,把你的LED电平翻转放到定时器中断函数中)

    我个人推测,可能是你外部中断计数,触发了你的其他函数功能(这个功能相当耗时),导致你的LED闪烁问题。

    你可以试着屏蔽到其他的函数,只保留外部中断和LED、定时器的函数试试。


    我觉得这个问题,应该不是中断优先级的问题,而是你程序框架的问题

    • 发布于 2019-04-10
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:3
  • 把定时器优先级开到最高肯定会好,可能是你没设置好,

    我觉得最有可能的就是,1外部中断你用的电平触发不是边沿触发,2还有就是优先级没有设置最高,3led翻转时间和主函数有关联

    • 发布于2019-04-09
    • 举报
    • 评论 0
    • 0
    • 0

  • 针对于外部中断来说首先STM8的每一个引脚都能支持外部中断但是在中断向量上不是每一个引脚都有,独立的中断向量而是每个端口共用一个中断向量在端口中断向量处理函数中检查到底是哪一个引脚出现了问题


    • 发布于2019-04-09
    • 举报
    • 评论 0
    • 0
    • 0

  • 这种应该是单片机频繁进入中断,有可能是脉冲的频率太高了,可以尝试一下降低脉冲的频率,看还是否有这个现象

    或者调整一下翻转LED的那个定时器的中断优先级,这样定时器的中断就不会被打断了

    • 发布于2019-04-09
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

stm8定时器与外部中断的问题?