#include <string.h>
unsigned char buffer[20];// Para LCD
unsigned char datos[20]; // String de 20 caracters
unsigned char x=0;// Contador
unsigned int borrar;
unsigned char dato_completo = 0;
void interrupt Uart()
{
if(PIR1bits.RCIF==1)
{
if(RCSTAbits.OERR==1)//Error de sobre escritura
{
LATAbits.LATA6=1;
RCSTAbits.CREN=0;
RCSTAbits.CREN=1;
x=0; //En caso de algun error reinicio todo
dato_completo = 0;
}
else
{
datos[x]=RCREG;
x++;
if(x==16)
{
datos[x] = '\0';
x = 0;
dato_completo = 1;
memcpy(buffer
,datos
,sizeof buffer
); //Copio los datos a buffer, de esa forma puedo carga los valores nuevos que lleguen }
}
}
}
void main(void)
{
// OSC
OSCCONbits.IRCF=0b1110; //8Mhz
OSCCONbits.SPLLEN=0;
OSCCONbits.SCS=0b10;
TRISAbits.TRISA6=0;// RA6 Como salida
LATAbits.LATA6=0; // RA6 Como 0 logico
TRISAbits.TRISA4=0;// RA6 Como salida
LATAbits.LATA4=0; // RA6 Como 0 logico
Lcd_Init(); //inicializamos el lcd
Lcd_Cmd(LCD_CLEAR); //limpiamos lcd
Lcd_Cmd(LCD_CURSOR_OFF); //apagamos el cursor
Lcd_Out(1, 1, "LECTOR RFID");
iniciar_usart();//inicia el módulo USART PIC
while(1)
{
if(dato_completo==1)
{
Lcd_Out2(2,1,datos);
dato_completo = 0;
}
}
}