Saludos gente todopic!
Bueno sigo con mi proyecto del modulo gps...
Ok, ya logro que capture los datos y puedo procesarlos...
Pero la cosa es que sólo he logrado capturar parte de los datos...
El módulo GPS cada vez que envía datos lo hace usando 4 sentencias NMEA... cada sentencia son aproximadamente 70 a 80 caracteres...
O sea que necesito leer como mínimo unos 280 caracteres...
Trato de hacer un arreglo con esa cantidad de caracteres, pero el compilador me da un error.
El código es este:
//////////////////////////////////
// Recibe del gps y envia al pc //
//////////////////////////////////
#include <16f876.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP,PUT,NOBROWNOUT
#define led PIN_C5
#define Tx PIN_C6
#define Rx PIN_C7
#define Rg PIN_C0
#define DTR PIN_C1
#use delay (CLOCK=20000000)
#use fast_io(A)
#use fast_io(B)
#use fast_io(C)
#use rs232 (STREAM=GPS,BAUD=4800,RCV=Rg)
#use rs232 (STREAM=PC,BAUD=19200,XMIT=Tx,RCV=Rx)
void main(void)
{
char cadena[280];
int i;
setup_ccp1(CCP_OFF);
set_tris_a(0b11111111);
set_tris_b(0b11111111);
set_tris_c(0b10000001);
fputs("=====RECIBIDO DEL GPS=====",PC
); output_high(led);
while(TRUE)
{
output_high(DTR);
for(i=0;i<280;i++)
{
}
output_low(DTR);
for(i=0;i<280;i++)
{
}
fputs("\n\r==DATOS DEL GPS RECIBIDOS==\n\r",PC
); }
}
Y el output da los siguientes errores:
Executing: "C:\Program Files\PICC\Ccsc.exe" +FM "C:\Program Files\PICC\gps_2.c" +DF +LN +T +A +M +Z +Y=9 +EA
*** Error 87 "gps_2.c" Line 21(19,20): Data item too big
*** Error 28 "gps_2.c" Line 23(22,23): Expecting an identifier
*** Error 43 "gps_2.c" Line 23(23,24): Expecting a declaration
*** Error 28 "gps_2.c" Line 24(15,25): Expecting an identifier
*** Error 43 "gps_2.c" Line 24(26,27): Expecting a declaration
*** Error 28 "gps_2.c" Line 25(15,25): Expecting an identifier
*** Error 43 "gps_2.c" Line 25(26,27): Expecting a declaration
*** Error 28 "gps_2.c" Line 26(12,22): Expecting an identifier
*** Error 43 "gps_2.c" Line 26(23,24): Expecting a declaration
*** Error 28 "gps_2.c" Line 27(38,39): Expecting an identifier
*** Error 48 "gps_2.c" Line 27(39,41): Expecting a (
*** Error 43 "gps_2.c" Line 27(42,43): Expecting a declaration
*** Error 28 "gps_2.c" Line 28(19,20): Expecting an identifier
*** Error 43 "gps_2.c" Line 28(20,21): Expecting a declaration
*** Error 43 "gps_2.c" Line 29(4,9): Expecting a declaration
*** Error 43 "gps_2.c" Line 29(9,10): Expecting a declaration
*** Error 43 "gps_2.c" Line 29(14,15): Expecting a declaration
*** Error 43 "gps_2.c" Line 29(14,15): Expecting a declaration
*** Error 43 "gps_2.c" Line 30(4,5): Expecting a declaration
*** Error 28 "gps_2.c" Line 31(22,23): Expecting an identifier
*** Error 43 "gps_2.c" Line 31(23,24): Expecting a declaration
*** Error 43 "gps_2.c" Line 32(7,10): Expecting a declaration
*** Error 43 "gps_2.c" Line 32(10,11): Expecting a declaration
*** Error 48 "gps_2.c" Line 32(11,12): Expecting a (
*** Error 43 "gps_2.c" Line 32(13,14): Expecting a declaration
*** Error 43 "gps_2.c" Line 32(14,15): Expecting a declaration
*** Error 48 "gps_2.c" Line 32(15,16): Expecting a (
*** Error 43 "gps_2.c" Line 32(17,20): Expecting a declaration
*** Error 43 "gps_2.c" Line 32(20,21): Expecting a declaration
*** Error 48 "gps_2.c" Line 32(21,22): Expecting a (
*** Error 43 "gps_2.c" Line 32(24,25): Expecting a declaration
*** Error 43 "gps_2.c" Line 33(7,8): Expecting a declaration
*** Error 48 "gps_2.c" Line 34(10,16): Expecting a (
*** Error 48 "gps_2.c" Line 34(17,18): Expecting a (
*** Error 43 "gps_2.c" Line 34(19,20): Expecting a declaration
*** Error 43 "gps_2.c" Line 35(7,8): Expecting a declaration
*** Error 28 "gps_2.c" Line 36(21,22): Expecting an identifier
*** Error 43 "gps_2.c" Line 36(22,23): Expecting a declaration
*** Error 43 "gps_2.c" Line 37(7,10): Expecting a declaration
*** Error 43 "gps_2.c" Line 37(10,11): Expecting a declaration
*** Error 48 "gps_2.c" Line 37(11,12): Expecting a (
*** Error 43 "gps_2.c" Line 37(13,14): Expecting a declaration
*** Error 43 "gps_2.c" Line 37(14,15): Expecting a declaration
*** Error 48 "gps_2.c" Line 37(15,16): Expecting a (
*** Error 43 "gps_2.c" Line 37(17,20): Expecting a declaration
*** Error 43 "gps_2.c" Line 37(20,21): Expecting a declaration
*** Error 48 "gps_2.c" Line 37(21,22): Expecting a (
*** Error 43 "gps_2.c" Line 37(24,25): Expecting a declaration
*** Error 43 "gps_2.c" Line 38(7,8): Expecting a declaration
*** Error 27 "gps_2.c" Line 39(15,16): Expression must evaluate to a constant
*** Error 43 "gps_2.c" Line 39(16,17): Expecting a declaration
*** Error 48 "gps_2.c" Line 39(17,19): Expecting a (
*** Error 43 "gps_2.c" Line 39(20,21): Expecting a declaration
*** Error 43 "gps_2.c" Line 40(1,2): Expecting a declaration
*** Error 28 "gps_2.c" Line 41(50,51): Expecting an identifier
*** Error 48 "gps_2.c" Line 41(51,53): Expecting a (
*** Error 43 "gps_2.c" Line 41(54,55): Expecting a declaration
*** Error 43 "gps_2.c" Line 42(4,5): Expecting a declaration
*** Error 43 "gps_2.c" Line 43(1,2): Expecting a declaration
59 Errors, 0 Warnings.
Halting build on first failure as requested.
BUILD FAILED: Fri May 16 19:58:28 2008
(Básicamente un error por cada línea)...
La cosa es que si cambio y en vez de cadena[280] le coloco cadena[80] compila y funciona todo perfecto...
Pero según el primer error, el 280 es "muy grande"...
Cómo podría hacer para manejar en un arreglo esa cantidad de datos?
Estuve buscando en el foro y entendí que hay que hacerlo con punteros definidos como constantes o algo así, pero no entendí muy bien cómo es que exactamente debe hacerse...
Y el manual de CCS4 no me dice casi nada tampoco
Bueno de antemano les agradezco su ayuda.
Y disculpen que los moleste tanto...
Ok nos leemos!
PD: olvidé decirlo pero me imagino que se darán cuenta por el código que estoy usando un PIC16F876.