TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: asd12 en 08 de Abril de 2004, 16:18:00
-
hice un programa y cogui una rutina que alguien puso hace tiempo para el manejo del lcd, que estaba modificada para que funcionara en proteus.
El programa funcionaba bien, pero al ir metiendole cosas me ha dado un error en proteus que dice:
Controller received command whilst busy.
Lo he simulado con otro programa y da tambien error en busy. Creo que es un retardo que tengo que aumentar para que funcione bien. PEro no sé de cuanto tiene que ser el retardo.
El programa del lcd lo bajé de aquí hace tiempo y no sé donde esta ahora. La rutina del busy es esta
LCD_BUSY BSF STATUS,RP0 ; Select Register page 1
MOVLW 0xFF ; Set PORTB for input
MOVWF TRISB
BCF STATUS, RP0 ; Select Register page 0
BCF PORTC,0 ; Set LCD for command mode
BSF PORTC,1 ; Setup to read busy flag
BSF PORTC,2 ; LCD E-line High
MOVF PORTB, W ; Read busy flag + DDram address
BCF PORTC,2 ; LCD E-line Low
ANDLW 0x80 ; Check Busy flag, High = Busy
BTFSS STATUS, Z
GOTO LCD_BUSY
DISABLE ;Desactiva LCD
bsf STATUS,RP0
clrf TRISB ;Puerta B salida
bcf STATUS,RP0
ESCRIBIR ;Pone LCD en modo WR
return
No hay un retardo que vea, creo que está en otra parte del programa.