PIC16系列单片机switch 语句运行时间的疑惑
本帖最后由 晨星 于 2017-11-9 18:05 编辑我这里面switch 里面的PluseMode =2,我用示波器测RC7=0到rc7=1用了18us,我用的pic16系列的单 片机,晶振4Mhz
正常的话时间 会有这么长吗?
如果C编译器不是PRO版本是有可能的,从检测是是否为0是否为1是否为2这三个,一个算为6us,单指令周期为1us,双指令周期为2us。
每一次检测编译出来差不多是用了MOVLW(1us) SUBWF(1us) BTFSS(1us or 2us) GOTO(2us)这几个指令,开销也就差不多是这个时间了。
你可以对比一下反汇编出来的汇编码,看看就知道对不对了。 看汇编码. yoursnemo 发表于 2017-11-9 18:32
如果C编译器不是PRO版本是有可能的,从检测是是否为0是否为1是否为2这三个,一个算为6us,单指令周期为1us ...
这是我编译生成的汇编,我不太懂汇编。你能帮我看下从RC7=0到RC7=1执行了那些汇编指令吗,PulseMode=2 khuohuo 发表于 2017-11-9 20:22
看汇编码.
这是我编译生成的汇编,我不太懂汇编。你能帮我看下从RC7=0到RC7=1执行了那些汇编指令吗,PulseMode=2
页:
[1]