找回密码
 注册
关于网站域名变更的通知
查看: 188|回复: 4
打印 上一主题 下一主题

有什么方法可以获得单片机中断服务函数中程序执行的时间?

[复制链接]
  • TA的每日心情
    奋斗
    2022-1-21 15:15
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2022-5-27 11:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    请问有没有什么方法可以知道中断服务函数中程序执行的时间是多少?
    7 N5 I9 ^, @" |0 I  ~/ I比如我有一个单片机定时器中断,假设中断函数中有30行程序,那么从进入中断开始执行第一行程序,到最后一行结束跳出中断,这中间的时间如何获得?& x9 G8 P' A8 ?6 }
    现在主要是我定时器中断设置的是1ms进一次中断,而我的中断中的程序比较多(不确定执行时间是否超过1ms,不过按道理1ms也挺长了),想计算实际的程序执行时间,这样比较保险点。" e6 d. n1 w" w+ n) \

    9 `8 x6 w, p  J# x, w; T7 {9 R8 _
    % E0 P4 v0 n/ v! N8 [: s' O; R

    该用户从未签到

    2#
    发表于 2022-5-27 13:23 | 只看该作者
    好象Keil调试功能本来就有这个功能,点运行进中断程序之前的时间值减去之后的时间值就可以了。
  • TA的每日心情
    开心
    2022-1-29 15:03
  • 签到天数: 2 天

    [LV.1]初来乍到

    3#
    发表于 2022-5-27 13:29 | 只看该作者
    进中断加一个IO口电平变化,出中断时此IO口电平反转,用示波器看一下可以大概推算出来。
  • TA的每日心情
    开心
    2022-1-29 15:04
  • 签到天数: 1 天

    [LV.1]初来乍到

    4#
    发表于 2022-5-27 13:35 | 只看该作者
    找一个空闲的IO, 进出中断的时候置高低。 拿示波器看脉宽就好了。

    该用户从未签到

    5#
    发表于 2022-5-27 14:22 | 只看该作者
    进中断,启动定时器,出中断,停止定时器,读取定时器的计数值,即可获得中断程序的执行时间。12MHz下,传统8051的定时器分辨率为1uS。STC的定时器,时钟可x12,分辨率约为0.1uS,如果主频设置到24Mhz,则分辨率可达0.05uS。这个分辨率应该够你用了。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-6-13 08:16 , Processed in 0.093750 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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