- void DelayUsx2(unsigned int t)
- {
- while(--t);
- }
复制代码这是我写的代码,可是把KEIL的频率设成12Mhz以后,t每减少1,消耗时间为8us,它的汇编为
- C:0x001B EF MOV A,R7
- C:0x001C 1F DEC R7
- C:0x001D 7001 JNZ C:0020
- C:0x001F 1E DEC R6
- C:0x0020 14 DEC A
- C:0x0021 4E ORL A,R6
- C:0x0022 70F7 JNZ DelayUsx2(C:001B)
- 15: }
复制代码可是,我用别人写好的例子,t每减少一,消耗时间为2us,
- void DelayUs2x(unsigned char t)
- {
- while(--t);
- }
复制代码它的汇编为
- C:0x003F DFFE DJNZ R7,DelayUs2x(C:003F)
- 54: }
复制代码这是怎么回事呢??
为什么消耗时间会不一样?
此帖出自
小平头技术问答
致敬!!!
一周热门 更多>