LED闪烁的程序,delay函数软件延时,但就是不闪烁,一直亮,加大延时数值没反应。
看编译后的汇编代码是这样的:
!void delay(void)
!{
! int i;
!
! for(i=0; i++; i<10000)
0x7E1: CLRF __pcstackCOMMON
0x7E2: CLRF 0x72
0x7E3: INCF __pcstackCOMMON, F
0x7E4: BTFSC STATUS, 0x2
0x7E5: INCF 0x72, F
0x7E6: DECF __pcstackCOMMON, W
0x7E7: IORWF 0x72, W
0x7E8: BTFSC STATUS, 0x2
0x7E9: RETURN
0x7EB: GOTO 0x7E3
! {
! asm("NOP");
0x7EA: NOP
0x7EB: GOTO 0x7E3
前边带感叹号的是C源程序。
懂汇编的朋友看看这是什么情况。 |