TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: micro_pepe en 27 de Diciembre de 2008, 19:25:17

Título: Será un posible bug?
Publicado por: micro_pepe en 27 de Diciembre de 2008, 19:25:17
Me ocurre que en un programa, cada vez añado algo de codigo que tiene que ver con un LCD 2X16, la interrupción INT_EXT, no me funciona, la primera vez lo solucione compilando con una version superior (usaba la 3.242 y pasé a la 4.069). Volvi a añadir codigo para el LCD, y lo solucione poniendo las lineas en ensamblador que se mencionan en el otro hilo de este subforo, en la interrupción por puerto B que tambien estaba usando.

He vuelto a añadir codigo para el LCD, y ahora no le encuentro solución.
Título: Re: Será un posible bug?
Publicado por: gera en 28 de Diciembre de 2008, 00:09:57
Es probable, habria q ver q no hayan conflictos entre registros. Seguro q pusiste el #define para q la libreria del LCD escriba en el puerto q le asignaste? De ultima proba con la libreria flex_lcd del amigo RedPic.
Saludos!
Título: Re: Será un posible bug?
Publicado por: micro_pepe en 28 de Diciembre de 2008, 20:02:55
Hola, estoy usando la libreria lcd_flex, pero me he dado cuenta que no me da ese problema con el lcd, sino cuando añado codigo con nuevas variables, dio la casualidad que al mismo tiempo de usar nuevas variables usaba el lcd.

El codigo que añadí la ultima vez es este:

Código: [Seleccionar]
void MostrarBalance(int8 Bal_L, int8 Bal_R){
int8 B_L,B_R;


B_L=Bal_L;
if(Bal_L==MAX_PORCENTAJE)
     B_L=100;
B_R=Bal_R;
if(Bal_R==MAX_PORCENTAJE)
     B_R=100;
lcd_gotoxy(1,1);
printf(lcd_putc," L %3u%%  %3u%% R ",B_L,B_R);

Esa rutina ya existia y le añadí lo anterior, Si elimino la parte del lcd, me sigue dando el mismo problema.

Por otro lado, ¿Como se puede comprobar si existen conflictos en los registros?

Un saludo.