Hola a todos, pues llevo varios días intentando que funcione un display lcd 2x16 y no hay manera.
Estoy utilizando C18 v3.41 y el MPLAB 8.88
Hago la práctica que está en el tutorial c18 que ha realizado Suky e incluso el ejemplo que está en la propia guía que tiene MPLAB y con ninguno de ellos funciona.
He probado en hacer correr el código en el proteus y en hardware y no funciona.
Esos mismos montajes los pruebo con un código realizado en CCS C y va perfecto
He probado compilar el código en dos pc diferentes y sigo con el mismo resultado.
He probado con dos cristales diferentes uno de 4MHz y otro de 20MHz y nada
El código es este:
#include <p18f4620.h>
#include "Drivers/delays.h"
#include "Drivers/xlcd.h"
#pragma config OSC=HS,FCMEN=OFF,IESO=OFF
#pragma config PWRT=ON,BOREN=OFF,BORV=0
#pragma config WDT=OFF,WDTPS=32768
#pragma config MCLRE=ON,LPT1OSC=OFF,CCP2MX=PORTC,PBADEN=OFF
#pragma config STVREN=OFF,LVP=OFF,XINST=OFF,DEBUG=OFF
#pragma config CP0=OFF,CP1=OFF,CP2=OFF,CP3=OFF
#pragma config CPB=OFF,CPD=OFF
#pragma config WRT0=OFF,WRT1=OFF,WRT2=OFF
#pragma config WRTB=OFF,WRTC=OFF,WRTD=OFF
#pragma config EBTR0=OFF,EBTR1=OFF,EBTR2=OFF
#pragma config EBTRB=OFF
void DelayFor18TCY(void){
Delay10TCYx(2);
}
void DelayPORXLCD(void){
Delay1KTCYx(15);
}
void DelayXLCD(void){
Delay1KTCYx(2);
}
void comandXLCD(unsigned char a){
BusyXLCD();
WriteCmdXLCD(a);
}
void gotoxyXLCD(unsigned char x, unsigned char y){
unsigned char direccion;
if(y != 1)
direccion = 0x40;
else
direccion = 0;
direccion += x-1;
comandXLCD(0x80 | direccion);
}
void main(void){
OpenXLCD( FOUR_BIT & LINES_5X7 );
comandXLCD(0x06);
comandXLCD(0x0C);
putrsXLCD("Probando LCD");
gotoxyXLCD(1,2);
putrsXLCD("Por Thulsa_Doom");
while(1){
}
}
Cuelgo el proyecto por si lo quieren compilar y probarlo
A ver si alguien me puede echar una mano ya no sé por donde seguir