打印

PIC外部中断时间很长吗?

[复制链接]
1737|34
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ousj|  楼主 | 2020-12-16 20:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

PIC外部中断时间很长吗?

使用特权

评论回复
沙发
wangpe| | 2020-12-16 20:12 | 只看该作者

你有什么打算呢?或者你想知道什么?

使用特权

评论回复
板凳
ousj|  楼主 | 2020-12-16 20:15 | 只看该作者
我程序里只写了这一个中断的函数,进入中断后,一个引脚电平翻转,发现从检测到上升沿到相应电平翻转时间间隔了有9us,这样是正常的吗

使用特权

评论回复
地板
huwr| | 2020-12-16 20:19 | 只看该作者
上升沿到翻转,你怎么测的。

使用特权

评论回复
5
ousj|  楼主 | 2020-12-16 20:22 | 只看该作者
示波器啊

使用特权

评论回复
6
tian111| | 2020-12-16 20:30 | 只看该作者
主频多少?编译优化了?

使用特权

评论回复
7
xxrs| | 2020-12-16 20:33 | 只看该作者
可以调试反汇编窗口,看看执行的反汇编指令有多少,大概算一下。

使用特权

评论回复
8
pengf| | 2020-12-16 20:36 | 只看该作者
你要考虑到进入中断的时间,以及你到翻转指令中间有几个指令?这些时间都要算。

使用特权

评论回复
9
houcs| | 2020-12-16 20:40 | 只看该作者
另外就是你这个要求速度超级快吗,现实意义有没有

使用特权

评论回复
10
ousj|  楼主 | 2020-12-16 20:44 | 只看该作者
进入中断就只有标志位清零和电平翻转语句

使用特权

评论回复
11
ousj|  楼主 | 2020-12-16 20:48 | 只看该作者
时钟是16M的,编译优化是咋弄,不懂唉

使用特权

评论回复
12
songqian17| | 2020-12-16 20:53 | 只看该作者
你可以看一下反汇编, 数一下从0004中断入口到你翻转的那条指令之间, 总共有多少条指令,就可以估算出来代码的延迟 是否跟实际的匹配....

使用特权

评论回复
13
ousj|  楼主 | 2020-12-16 20:57 | 只看该作者
汇编不会看啊,0004是进入中断的地址吗?

使用特权

评论回复
14
ousj|  楼主 | 2020-12-16 21:00 | 只看该作者
我做的是RC4翻转,这个汇编语句是怎么写的?

使用特权

评论回复
15
ousj|  楼主 | 2020-12-16 21:04 | 只看该作者
是这一句吗? BTG PORTC, 4, ACCESS

使用特权

评论回复
16
ousj|  楼主 | 2020-12-16 21:09 | 只看该作者
Line      Address       Opcode      Label               DisAssy           
    1        0000          EF41                    GOTO 0x82                     
    2        0002          F000                    NOP                           
    3        0004          FFFF                    NOP                           
    4        0006          FFFF                    NOP                           
    5        0008          CFFA                    MOVFF PCLATH, 0x1            
    6        000A          F001                    NOP                           
    7        000C          CFFB                    MOVFF PCLATU, 0x2            
    8        000E          F002                    NOP                           
    9        0010          CFE9                    MOVFF FSR0, 0x3               
    10       0012          F003                    NOP                           
    11       0014          CFEA                    MOVFF FSR0H, 0x4              
    12       0016          F004                    NOP                           
    13       0018          CFE1                    MOVFF FSR1, 0x5               
    14       001A          F005                    NOP                           
    15       001C          CFE2                    MOVFF FSR1H, 0x6              
    16       001E          F006                    NOP                           
    17       0020          CFD9                    MOVFF FSR2, 0x7               
    18       0022          F007                    NOP                           
    19       0024          CFDA                    MOVFF FSR2H, 0x8              
    20       0026          F008                    NOP                           
    21       0028          CFF3                    MOVFF PROD, 0x9               
    22       002A          F009                    NOP                           
    23       002C          CFF4                    MOVFF PRODH, 0xA              
    24       002E          F00A                    NOP                           
    25       0030          CFF6                    MOVFF TBLPTR, 0xB            
    26       0032          F00B                    NOP                           
    27       0034          CFF7                    MOVFF TBLPTRH, 0xC            
    28       0036          F00C                    NOP                           
    29       0038          CFF8                    MOVFF TBLPTRU, 0xD            
    30       003A          F00D                    NOP                           
    31       003C          CFF5                    MOVFF TABLAT, 0xE            
    32       003E          F00E                    NOP                           
    33       0040          A2F0                    BTFSS INTCON3, 1, ACCESS      
    34       0042          D002                    BRA 0x48                     
    35       0044          92F0                    BCF INTCON3, 1, ACCESS        
    36       0046          7882                    BTG PORTC, 4, ACCESS  




中间有30条啊,为什么会这样

使用特权

评论回复
17
guoyt| | 2020-12-16 21:17 | 只看该作者
了解一下C编译器的中断保护现场,如果要求在保护现场之前就响应中断,那最好用汇编。

使用特权

评论回复
18
kangzj| | 2020-12-16 21:21 | 只看该作者

中断现场保护   了解一下....
你这是什么型号的PIC?

使用特权

评论回复
19
yufe| | 2020-12-16 21:25 | 只看该作者
比较新一点4个数字和5个数字的型号现场保护很大一部分由硬件自动完成, 会快很多...

使用特权

评论回复
20
zhanglli| | 2020-12-16 21:28 | 只看该作者
16M的主频, 就是0.25us一条指令, 30+条指令, 9us的延迟,正常的嘛..

使用特权

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

本版积分规则

712

主题

7557

帖子

1

粉丝