Autor Tema: ccs 4.099 no me da fallo de compilacion pero no funciona el reloj(libreria LCD.c  (Leído 1525 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado redep

  • PIC12
  • **
  • Mensajes: 75
Hola tengo un problema, hasta ahora e programado en C18, pero necesito el CCS porque quiero hacer un teclado por usb y he encontrado el programa en CCS y necesito modificarlo, en un principio pense que iba a ser facil pero llevo unos cuantos quebraderos de cabeza.

Para no complicarme empeze por lo mas basico parpadeo de led , LCD...

el parpadeo en CCS sin problemas pero el problema lo tengo cuando añado la libreria LCD.c me compila perfectamente pero cuando pruebo la placa tengo un led como testigo en la primera instruccion y ni tan siquiera se enciende, si quito las instrucciones del lcd aunque estas no deberian interferir ya que estan mas abajo de la instruccion de la del led, vuelve a funcionar.


Mi unico achaque es a fallo del compilador ya que puede ser que tenga las conexiones del lcd incorrectas, pero no veo normal que no enchufe aunque sea el led que esta como primera instruccion. Ademas el conexionado del lcd lo he probado en C18 y funciona bien.







MI CODIGO

#include <18f4550.h>  //archivo de cabecera


#fuses XTPLL,MCLR,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL1,CPUDIV1,NOVREGEN
// el fuse que configuramos anteriormente
#use delay(clock=4000000)
#include <lcd.c>

void main() {
    set_tris_a(0x0); // configura los puertos como salidas
    set_tris_b(0x0);   
    set_tris_c(0x0);
     set_tris_d(0x0);
    set_tris_e(0x0);
   

//----------------------------------   
   disable_interrupts(global);
   disable_interrupts(int_timer1);
   disable_interrupts(int_rda);
   disable_interrupts(int_ext);
   disable_interrupts(int_ext1);
   disable_interrupts(int_ext2);
   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   setup_spi(FALSE);
   setup_psp(PSP_DISABLED);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   port_b_pullups(FALSE);   

//---------------------------   
output_b (0); // saca un nivel bajo en el portb
delay_ms(1000);  // retardo  de 1 Seg
output_b (0xff); // saca un nivel alto en el portb
delay_ms(1000);     // retardo de 1 Seg
lcd_init();

//lcd_init();
output_a (0);    // saca un nivel bajo de salida en los puertos
output_c (0);

output_e (0);

lcd_putc ("uControl.com.ar");
while(1){
output_b (0); // saca un nivel bajo en el portb
delay_ms(1000);  // retardo  de 1 Seg
output_b (0xff); // saca un nivel alto en el portb
delay_ms(1000);     // retardo de 1 Seg
}
}


Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1707
Hola, el ccs actual tiene un problema con la libreria de la lcd, aunque si lo compila bien, no imprime datos. para que te sea mas facil solo cambia tu libreria de lcd.c por la que adjunto y haces la prueba
"Nada es imposible, no si puedes imaginarlo"

Desconectado RALF2

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2060
Buenas amigos!
Yo probe la lcd,c que trae el ccs, en el proteus y no funciona  :5]
Pero luego la probe en fisico y si me funciono  :mrgreen:

Por si lo estas simulando en el proteus  :mrgreen:
Saludos

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Es recomendable usar la vercio 4.084 es la mas estable hasta el momento

Desconectado redep

  • PIC12
  • **
  • Mensajes: 75
Finalmente era la instruccion while ( bit_test(lcd_read_byte(),7) ) ; se quedaba ai clavado. Solucion, poner un delay y por ahora no me ha fallado.

Gracias.