|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
为何在这里进入死循环? |
作者:dmcz 栏目:单片机 |
START BSF STATUS,RP0 MOVLW B'00000110' ;B口设置 TRIS 6 MOVLW B'11111111' ;A口全输出 TRIS 5 BCF STATUS,RP0 MOVLW B'00001000' MOVWF 6 MOVLW D'2' MOVWF 27H LOOP CALL DELAY MOVLW B'00011001' MOVWF 6 CALL ADLOOP18 BCF PORTB,4 NOP BCF PORTB,0 SUBWF 24H,1 BTFSS STATUS,0 GOTO LOOP DECFSZ 27H,1 ;这个循环还正常!(2次) GOTO LOOP BCF PORTB,3 MOVLW D'4' MOVWF 27H LOOP1 ;为何在这里进入死循环? CALL DELAY ; 本应循环四次的啊!? DECFSZ 27H,1 ;是不是与调用的延时 GOTO LOOP1 ;子程序DEALY有关? BSF PORTB,6 CALL DELAY50 BCF PORTB,6 MOVLW D'4' MOVWF 27H LOOP2 CALL DELAY DECFSZ 27H,1 GOTO LOOP2 BSF PORTB,5 CALL DELAY50 BCF PORTB,5 NOP BSF PORTB,3 MOVLW D'2' MOVWF 27H DELAY CLRW CLRF 20H CLRF 21H CLRF 22H MOVLW D'144' MOVWF 20H D1 MOVLW D'100' MOVWF 21H D2 MOVLW D'16' MOVWF 22H D3 DECFSZ 22,1 GOTO D3 DECFSZ 21,1 GOTO D2 NOP NOP NOP NOP NOP NOP NOP DECFSZ 20,1 GOTO D1 RETURN ADLOOP18 BCF INTCON,GIE BSF PORTB,7 CLRF 23H CLRF 24H BSF STATUS,RP0 MOVLW B'00000001' MOVWF ADCON1 BCF STATUS,RP0 MOVLW B'11001001' MOVWF ADCON0 CALL DELAYCY BSF ADCON0,2 WAIT2 BTFSC ADCON0,2 GOTO WAIT2 NOP MOVF ADRES,W MOVWF 24H BSF STATUS,RP0 MOVLW B'00000001' MOVWF ADCON1 BCF STATUS,RP0 MOVLW B'11010001' MOVWF ADCON0 ;1脚A/D开 CALL DELAYCY BSF ADCON0,2 WAIT3 BTFSC ADCON0,2 GOTO WAIT3 NOP MOVF ADRES,W BCF PORTB,7 RETURN DELAYCY MOVLW 02H MOVWF 2A SD1 DECFSZ 2A,1 GOTO SD1 RETURN * - 本贴最后修改时间:2004-1-4 2:30:59 修改者:dmcz |
2楼: | >>参与讨论 |
作者: dmcz 于 2004/1/4 2:36:00 发布:
鸡毛加急!! DELAY可能真的有问题!强行跳出那个死循环,在后来调用DELAY就不止是0.75秒了,可能是0.75年!咋的了? |
3楼: | >>参与讨论 |
作者: Richey 于 2004/1/5 13:26:00 发布:
watchdog??? |
4楼: | >>参与讨论 |
作者: wfl1979 于 2004/1/6 11:36:00 发布:
看门狗指令放错位置了,要不再多加一两个clr wdt指令 |
|
|
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入 |
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |