hola, bueno veran he estado dandole a este tema y empece a darle al debug y lo raro de todo esto que la variable asociada a mi getc(), cada vez que le envio el R mayuscula o 0x52, me dice que llega un FF a esta variable y quedo sin entender del por que se produce esto, alguien save?????. dejo el codigo para que lo discutamos un poco ya ??
#INCLUDE <16F877a.h>
#FUSES NOWDT, HS, NOPUT, NOPROTECT, BROWNOUT, NOLVP, NOCPD, NOWRT
#USE delay (clock=20000000) //clock=20Mhz
#USE rs232(baud=9600,parity=N,xmit=PIN_C6, rcv=PIN_C7,bits=8) //Configuracion del puerto serie....
#DEFINE use_portd_lcd TRUE //definir portb lcd
#INCLUDE<LCD420puertD.c> //libreria manejo lcd de 20x4 modificada por suky para el puerto D
#INCLUDE <stdlib.h>
#include <string.h>
char lectura=0x00,destino[8],dato[8];
//char convert[8];
int x=0,w=0;
#int_RDA
void RDA_isr(void)
{
lectura=getc(); //leo el puerto serie del pic
dato[x++]=lectura; //almaceno en variable dato el caracter ingresado....
//he incremento en 1 para guardar le siguiente ddato....
if(lectura==0x52){ //a llegado el caracter R...Sí... entonces....
dato[0]=0x00; //el primer caracter de la se borra del string...
x=0; //y buelvo a posicion cero del string..
}
else if(lectura==0x0D){ //llego el retorno de carro.. (caracter 0x13)...sí..
dato[x-1]='\0'; //borro el caracter de retorno de carro y lo reemplazo por..
//caracter nulo..
strcpy( destino,dato ); //copio el dato de recepcion serial a otra variable...
for(w=0;w<x;w++){ //borro el buff de recepcion de dato, "dato"....
dato[w]=0x00;
}
x=0; //pongo en la posicon cero el dato de recepcion nuevo..
}
}
void main() {
////////////////////////////////////////// INICIALIZACIONES GENERALES
lcd_init(); //inicializa pantalla LCD
enable_interrupts(INT_RDA); //avilito interrupcion de resepcion serial
enable_interrupts(GLOBAL); // avilito todo lo necesario...
output_low(PIN_C0); //pone en cero el sensor2
output_low(PIN_C1); //pone en uno el sensor1
While(TRUE){ //infinito..........
lcd_gotoxy( 1, 1);
printf(lcd_putc,"%s",destino); //imprimo en LCD los datos del puerto serie.....
//sin contar con la R y el retorno de carro....
printf("%s",destino); // imprimo en PC lo que llega al puerto serie..
}}