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

单片机定时器中断处理的时候,该定时器是不是仍在计数?

8e9e60cf1ad91196 2018-07-01 浏览量:5784

例如stm32,在进入中断后,如果处理中断程序的时间无法忽略,这时候我就要考虑在处理中断程序的时候,单片机的定时的计数器是不是进入了下一个周期的计数?

如果中断处理时间太长,这个比如长于一个、甚至两三个定时器的定时时间,会不会发生中断丢失的情况?

这样用来控制步进电机的话是不是会造成丢步?

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 看定时器的设置,一般而言,如果设置为循环计数模式,则定时器在设起中断标志后,重载初值继续计数,中断的处理不会影响到定时器计数;如果设置为单次计数模式,该次定时中断后,定时器完成计数,置中断位后挂起,到中断后重新启动定时器计数,此时中断的相应会影响定时器。

    具体看楼主是采用哪种实现方式,根据应用灵活调整。

    • 发布于 2018-07-02
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:8
  • 定时器是否工作 要看启动位是否打开,打开的话 ,定时器溢出后是会继续计数的,而定时器是否溢出产生中断,是要看中断允许位有没有打开, 

    中断程序在不在运行,定时器有没有计数,不能一概而论,

    定时器溢出后会继续计数,怎么样计数,如果是自动重装初值,中断处理的时间,影响不了定时器计时,如在中断里加载,会因为中断处理的时间 影响计数。
    • 发布于2018-07-02
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个的具体情况需要看定时器使用方式,如果是单次运行,则中断后就挂起,需要通过其他处理使之重置后才能又开始计时。

    如果是循环定时器,则产生中断后就重置开始新一轮计时。

    他们使用的环境、应用领域是不同的。

    特别对于循环定时器,为了保证应用,一般要求应用需要在中断间隔中处理完。

    • 发布于2018-07-02
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个是肯定的,只要您不关闭总中断和定时中断,定时器就一直会计数,所以要求程序在下次计数中断之前必须结束。否则就会出现您所说的问题。
    • 发布于2018-07-02
    • 举报
    • 评论 0
    • 0
    • 0

  • 一般进入定时器中断后会首先检测是不是定时器溢出中断,如果是定时器溢出中断则清除该标志位,标志位一清0定时器就再次开始计数,除非此时失能定时器或者其他一些能使定时器不能正常工作的操作
    • 发布于2018-07-02
    • 举报
    • 评论 0
    • 0
    • 0

  • 一般来说进入定时器中断之后,只发一个标志,不在中断中进行任务处理的,这样的话就不会造成中断处理时间过长
    • 发布于2018-07-02
    • 举报
    • 评论 0
    • 0
    • 0

  • 是的,就算进入中断定时器也还是在正常工作的,因为定时器独立的外设并不受中断函数的控制
    • 发布于2018-07-04
    • 举报
    • 评论 0
    • 0
    • 0

  • 进入中断之后只要不关闭定时器,那么定时器是一直在工作的
    • 发布于2018-07-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 不一定,进入因为有些人写中断服务函数的写法是将计数清零的操作放到服务函数最后面,也就是说要把所有的任务做完才清零,而定时器计数的特点是,清零计数才会重新计数。

    • 发布于2018-07-28
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

单片机定时器中断处理的时候,该定时器是不是仍在计数?