hola foreros, estoy quemadisimo
, me he cambiado al 18f452 y no soy capaz de hacer que funcione un lcd de la marca Ampire, he modificado las librerias que vienen con el CCS con las direcciones del 18f452 y por supuesto con el mapa de pines que utilizo y soy incapaz de mostrar las dos lineas, si que puedo sin embargo mostrar una u otra linea independientemente, es decir en dos programas distintos. (esto no hay quien lo entienda, estoy al borde de la desesperacion mas absoluta
)Si se os ocurre que puede estar pasando por favor,AYUDADMEEEE!
adjunto codigo que no funciona:
#include "18F452.h"
#use delay(clock=20000000)
#include "puertos.h"
#include "lcd_18f.h"
void main(void){
inicia_puertos(); //configura puertos
inicia_lcd(); //inicia el lcd
printf(lcd_putc,"fhola"
;
lcd_gotoxy(1,2);
printf(lcd_putc,"mundo"
;
while(1){
}
}
esta es la parte que he cambiado del lcd.c
struct lcd_pin_map {
int data : 4;
boolean enable;
boolean rs;
} lcd;
#byte lcd = 0xF80 // puerto A
#byte pcon = 0xFD0 //Nos indica el ultimo reset
#define set_tris_lcd(x) set_tris_a(x)
#define lcd_linea_dos 0x40 // Dirección de segunda linea
STRUCT lcd_pin_map const LCD_WRITE = {0,0,0}; // Modo escritura, todo salidas
y esta es la configuracion de los puertos
#use fast_IO(a) //Nos permite configurar a nosotros los registros
#use fast_IO(b)
#use fast_IO(c)
#use fast_IO(d)
#use fast_IO(e)
#byte porta=0xF80
#byte portb=0xF81
#byte portc=0xF82
#byte portd=0xF83
#byte porte=0xF84
void inicia_puertos(void)
{
set_tris_a(0b00000000); //lcd
set_tris_b(0b00000011); // pulsadores
}
Gracias de antemano por vuestra ayuda.