TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: badtzdizzy en 12 de Octubre de 2006, 20:13:07

Título: Grabar datos como enteros o como caracteres?
Publicado por: badtzdizzy en 12 de Octubre de 2006, 20:13:07
Hola a todos

Me gustaria que me ayudaran con esto, lo que sucede es que quiero almacenar los datos que obtengo de un gps pero no se como convenga mas si como enteros o caracteres, en mi caso si los grabo como caracteres pues me evito transformaciones pero ocupo mas espacio y si los grabo como enteros ahorro espacio pero tengo que realizar transformaciones, es aqui donde tengo mis dudas del metodo a utilizar. Espero me puedan ayudar.

Saludos y gracias
Título: Re: Grabar datos como enteros o como caracteres?
Publicado por: Nocturno en 13 de Octubre de 2006, 01:42:42
Habría que tener más información para decantarse por uno u otro método. ¿Es una limitación el espacio disponible?, ¿cuántos datos tienes que almacenar y cuánta memoria tienes?

Por otra parte, habría que analizar en qué consiste la transformación; ¿los datos te llegan del GPS en formato string?, ¿qué rango de valores tienen esos datos?
Título: Re: Grabar datos como enteros o como caracteres?
Publicado por: maunix en 13 de Octubre de 2006, 09:58:31
Hola a todos

Me gustaria que me ayudaran con esto, lo que sucede es que quiero almacenar los datos que obtengo de un gps pero no se como convenga mas si como enteros o caracteres, en mi caso si los grabo como caracteres pues me evito transformaciones pero ocupo mas espacio y si los grabo como enteros ahorro espacio pero tengo que realizar transformaciones, es aqui donde tengo mis dudas del metodo a utilizar. Espero me puedan ayudar.

Saludos y gracias

Pues debes ver qué te conviene en tu caso, en función de los recursos de que dispones.

Si te sobra memoria, entonces guardalo así tal como viene y te ahorras hacer la rutina de almacenamiento.

Si no te sobra memoria pero sí tiempo de ejecución, entonces te conviene hacer la conversión.

Si quieres hacer un "almacenamiento continuo" de estos datos, por ej, en una memoria externa, entonces ahí sí tal vez te convenga ahorrar el mayor espacio posible.   

Hablando en lenguaje no académico, guardar números en formato ASCII es lindo "visualmente" para los humanos pero no se lleva muy bien con los microcontroladores... no se puede sumar, restar, ni nada por el estilo (al menos no con las operaciones convencionales).

Título: Re: Grabar datos como enteros o como caracteres?
Publicado por: badtzdizzy en 13 de Octubre de 2006, 12:10:51
Gracias a ambos por sus respuestas

En general quiero guardar una cadena que voy a ir formando con la latitudlongitudvelocidadsateliteshorafecha que lleguen de un gps, asi que practicamente con estos datos no voy a realizar ninguna operación, hay otros datos que necesitare manipular asi que estos los tendré que almacenar como enteros. Tomando en cuenta lo que me dicen pues yo creo que lo mejor seria almacenar los datos tal cual lleguen porque no dispongo de mucho tiempo de ejecución y respecto a la memoria pues voy a utilizar cuatro memorias seriales de 512kb. Voy a empezar a hacerlo y ya les iré contando mis experiencias.

Saludos
Título: Re: Grabar datos como enteros o como caracteres?
Publicado por: Nocturno en 13 de Octubre de 2006, 13:31:13
Si no tienes problemas de memoria, no los conviertas. Probablemente inviertas más recursos del PIC en el software de conversión que en almacenar directamente.
Sin embargo, no creo que el problema sea de velocidad de proceso. Por muy rápido que lleguen los caracteres desde el GPS, estoy seguro que al PIC le da tiempo de convertirlos, almacenarlos y fumarse un puro antes que llegue la siguiente cadena.
Título: Re: Grabar datos como enteros o como caracteres?
Publicado por: quirogaareal en 13 de Octubre de 2006, 14:33:06
Hola :

Yo en algun momento tuve que usar algo similar pero en otra aplicacion,  fijate en el manual de ayuda del ccs la instruccion ITOA 

espero que te sirva.

saludos desde cordoba argentina


Título: Re: Grabar datos como enteros o como caracteres?
Publicado por: badtzdizzy en 13 de Octubre de 2006, 15:15:31
Gracias por el tip quirogaareal, y respecto a lo que me dices Nocturno pues voy a tomar datos cada minuto, así que voy a tener mucho tiempo para manipular la cadena solo tendria una duda, puesto que el timer0 se me estará desbordando cada 6.4 ms, crees que tenga algun problema para los demas procesos??

Saludos y gracias a todos
Título: Re: Grabar datos como enteros o como caracteres?
Publicado por: Nocturno en 13 de Octubre de 2006, 15:45:24
Haría falta saber qué micro utilizas, a qué frecuencia, qué hace la interrupción del timer (cuanto dura) y cuáles son los demás procesos (cuanto duran) para ver si todo encaja bien.
Título: Re: Grabar datos como enteros o como caracteres?
Publicado por: badtzdizzy en 13 de Octubre de 2006, 19:20:11
Ok, dejame estructurar un poco el programa y lo subo, de hecho en la interrupción solo leo el contador del timer1 y levanto una bandera y despues adquiero los datos y los guardo en la memoria.

El lunes lo subo

Gracias por todo