Hola amigos, tengo una duda que lleva dias dandome de golpes, tengo una glcd de ks108 y ya la he hecho funcionar varias veces, pero esta vez quiero hacer un cuenta vueltas con un sensor de efecto hall. sin embargo todo anda bien pero a la hora de imprimir saca manchas en las letras, PEROOO solo saca las manchas cuando le pido imprimir el valor de la variable, es decir que si pongo "print at 10,35, "HOLA123"", lo imprimie sin problema, pero cuando le pongo:
dim T as Word
T=5
print at 10,35,T
me saca manchas, lo mismo si pongo que me imprima el valor de la entrada analogica.
Agrego el codigo ocmpleto abajo, espero que me puedan ayudar porque ya estoy muy perdido, gracias
Device 16F877A
XTAL 20
INTERNAL_FONT=On
Declare LCD_TYPE 1
LCD_DTPORT = PORTD
LCD_RSPIN = PORTB.2
LCD_ENPIN = PORTB.5
LCD_RWPIN = PORTB.4
LCD_CS1PIN = PORTB.1
LCD_CS2PIN = PORTB.0
GLCD_EXTERNAL_PRINT=PPRINT
'Declare GLCD_CS_INVERT On
Declare ADIN_RES 10
Declare ADIN_TAD FRC
Declare ADIN_STIME 50
Dim X As Byte
Dim Y As Byte
Dim S As Word
Dim vuelta As Word
Dim DATO As Byte
Dim PUNTERO As Word
Dim GLCD_FLAG2 As Byte SYSTEM
Dim OVERWRITEgMASKHHHH As Byte SYSTEM
Dim PCHARgDATAHHHH As Byte SYSTEM
Dim T As Word
Dim num As Byte
Dim num2 As Byte
Dim primer As Word
Dim segundo As Word
TRISA = %00000011
ADCON1 = %10000000
Print Font Arial____12
GoTo calibracion
X=0
Y = 0
PUNTERO = 0
Repeat
Repeat
DATO = LRead logo9 + PUNTERO
LCDWrite Y,X,[DATO]
Inc X
Inc PUNTERO
Until X = 128
X = 0
Inc Y
Until Y = 8
DelayMS 5000
Call limpiar
calibracion:
num2=num
T= ADIn 0
S= ADIn 1
Print At 10,20, T
Print At 35,20, S
If PORTA.2 =1 Then
X=0
Cls
vuelta=0
Call limpiar
GoTo conteo
Else
GoTo calibracion
EndIf
conteo:
If PORTA.3 =1 Then
GoTo pausa
EndIf
If PORTA.4 =1 Then
GoTo calibracion
EndIf
S= ADIn 1
If S >= T Then
X=1
GoTo conteo2
Else
GoTo conteo
EndIf
conteo2:
If PORTA.3 =1 Then
GoTo pausa
EndIf
If PORTA.4 =1 Then
GoTo calibracion
EndIf
S= ADIn 1
If S < T Then
Y=0
GoTo conteo3
Else
GoTo conteo2
EndIf
conteo3:
If PORTA.3 =1 Then
GoTo pausa
EndIf
If PORTA.4 =1 Then
GoTo calibracion
EndIf
S= ADIn 1
If S >= T Then
Y=0
vuelta=vuelta +1
Cls
Print At 10,20, T, " +!#"
GoTo conteo
Else
GoTo conteo3
EndIf
pausa:
If PORTA.4=1 Then
GoTo calibracion
EndIf
limpiar:
X=0
Y = 0
PUNTERO = 0
Repeat
Repeat
LCDWrite Y,X,[0]
Inc X
Inc PUNTERO
Until X = 128
X = 0
Inc Y
Until Y = 8
Return
Include "logo9.inc"
Include "Arial____12.fnt"