[技术问答] 请问一下N76E003中断响应时间的问题

[复制链接]
1320|10
 楼主| 寂静的火 发表于 2017-9-18 18:01 | 显示全部楼层 |阅读模式
本帖最后由 寂静的火 于 2017-9-18 18:49 编辑

请问一下有没有人测试过这个ic的中断响应时间,,我使用io口中断的时候从io口给中断信号到进中断服务函数要大概4个us,用16M主频,算起来得有60个时钟周期吧;还有用pwm中断,时间更长,得4.5us,,这个有没办法缩短?按照51的中断响应过程,,中断置位-查询标志-跳转到服务函数应该不用这么多时间啊
已找到原因,中断里面用到的寄存器比较多,,出栈入栈使用了比较多时间
l4157 发表于 2017-9-18 18:33 | 显示全部楼层
要降低响应时间估计得用汇编了...
 楼主| 寂静的火 发表于 2017-9-18 18:46 | 显示全部楼层
本帖最后由 寂静的火 于 2017-9-18 18:48 编辑
l4157 发表于 2017-9-18 18:33
要降低响应时间估计得用汇编了...

找到原因了,,中断里面用的东西太多,,需要入栈的寄存器太多,这个用汇编也没用,,keil的汇编效率还是挺高的,,用到的寄存器才入栈不用的没有
xixi2017 发表于 2017-9-18 22:25 | 显示全部楼层
给力,原来这个中断函数也影响响应速度啊。
huahuagg 发表于 2017-9-18 22:32 | 显示全部楼层
限制降低到了多少啊?
wanduzi 发表于 2017-9-19 09:25 | 显示全部楼层
对,如果是通过两次间隔测试,那确实是要考虑进入和退出
 楼主| 寂静的火 发表于 2017-9-19 15:25 | 显示全部楼层
本帖最后由 寂静的火 于 2017-9-19 15:28 编辑
huahuagg 发表于 2017-9-18 22:32
限制降低到了多少啊?

没法降低,中断里面用到了计算查表,R0-R8,DTPR,A,B等都要用到
如果不用这些东西,,单纯标志位处理之类的试了一下是1.5us左右,,用惯了简单指令集单片机那种做法,,感觉还是挺长的
terryeva06 发表于 2017-9-19 17:53 | 显示全部楼层
中断里面的用的变量和计算,都加个data,直接寻址来用...能快非常多,我用一个timer的两路捕获,抓两路相位几乎相同的波形来分别做解调计算...开始就是太慢了,后来加data后就搞定
l4157 发表于 2017-9-19 18:25 | 显示全部楼层
选用专门的寄存器段也可以提高响应速度,关键字: using
wanduzi 发表于 2017-9-20 16:19 | 显示全部楼层
没太详细研究这个,楼主的应用对这个要求很严格?
dongnanxibei 发表于 2017-9-20 20:18 | 显示全部楼层
using不行吧,那个是C++的概念。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

27

主题

110

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部