Hola T0ni0:
Este el codigo
#INCLUDE <16F876.H>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=16000000)
#use RS232(BAUD=4800,RCV=PIN_A0,PARITY=N,BITS=8)
#include "miLCD.c"
int j=0;
char cadena[17];
char *buffer = cadena;
#int_rda
void recepcion_serie() // Rutina de interrupción por recepción serie
{
lcd_putc("fRecibido1
");
buffer[j] = getc();
j++;
delay_ms(200);
}
void main()
{
int n;
lcd_init();
lcd_putc("fPreparado...
");
delay_ms(1000);
enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);
while( j < 15 ) // No salimos hasta que tengamos 16 caracteres en el buffer
{
if (j == 15)
{
disable_interrupts(INT_RDA);
}
}
printf(lcd_putc,"DAT=%s",buffer); // Sacamos todo por el lcd
delay_ms(500);
}
Cuando lo ejecuto, en el LCD aparece "Preparado..." y no hace nada mas, la int no llega nunca a activarse.
Que quiere decir que no esta alimentado...
El GPS es un Garmin 95, es de mano y va a pilas, simplemente lo enciendo y lo pongo en modo simulador. Tiene una salida con varios cables, conecto el cable negro de masa a la masa del circuito y el cable marron de señal al PIN_A0 del PIC.
Con un programa hecho con PIcbasic Plus funciona correctamente.
Gracias anticipadas.
Saludos