打印
[技术问答]

请问一下N76E003中断响应时间的问题

[复制链接]
1014|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 | 只看该作者
给力,原来这个中断函数也影响响应速度啊。

使用特权

评论回复
5
huahuagg| | 2017-9-18 22:32 | 只看该作者
限制降低到了多少啊?

使用特权

评论回复
6
wanduzi| | 2017-9-19 09:25 | 只看该作者
对,如果是通过两次间隔测试,那确实是要考虑进入和退出

使用特权

评论回复
7
寂静的火|  楼主 | 2017-9-19 15:25 | 只看该作者
本帖最后由 寂静的火 于 2017-9-19 15:28 编辑
huahuagg 发表于 2017-9-18 22:32
限制降低到了多少啊?

没法降低,中断里面用到了计算查表,R0-R8,DTPR,A,B等都要用到
如果不用这些东西,,单纯标志位处理之类的试了一下是1.5us左右,,用惯了简单指令集单片机那种做法,,感觉还是挺长的

使用特权

评论回复
8
terryeva06| | 2017-9-19 17:53 | 只看该作者
中断里面的用的变量和计算,都加个data,直接寻址来用...能快非常多,我用一个timer的两路捕获,抓两路相位几乎相同的波形来分别做解调计算...开始就是太慢了,后来加data后就搞定

使用特权

评论回复
9
l4157| | 2017-9-19 18:25 | 只看该作者
选用专门的寄存器段也可以提高响应速度,关键字: using

使用特权

评论回复
10
wanduzi| | 2017-9-20 16:19 | 只看该作者
没太详细研究这个,楼主的应用对这个要求很严格?

使用特权

评论回复
11
dongnanxibei| | 2017-9-20 20:18 | 只看该作者
using不行吧,那个是C++的概念。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

27

主题

110

帖子

0

粉丝