TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Rikr09 en 09 de Octubre de 2013, 18:59:54

Título: Rellenar con 0´s espacios en Blanco de Buffer
Publicado por: Rikr09 en 09 de Octubre de 2013, 18:59:54
Buenas amigos de TodoPic,

Resulta que tengo que crear un Buffer con tres números flotantes. El formato que deben tener dichos numeros son

#1: xxx,xx
#2: x,xx
#3: xxxx,xxx

Es decir que si por ejemplo, el #1 que tengo en mi buffer es 2,3 al momento de crear el nuevo Buffer debe ser guardado como sigue

#1: 002,30

y asi con los demas.

El Buffer donde tengo los datos cada Byte corresponde a un numero y a la coma si corresponde.Por ejemplo:

Buff[0]=2
Buff[1]=,
Buff[2]=3

En realidad me gustaria que me ayudaran con ideas, porque en realidad estoy bloqueado y la unica idea que se me ocurre es revisar Byte a Byte y me resulta un metodo bastante extenso :S ...

Gracias de antemanooo!!!!!!
Título: Re: Rellenar con 0´s espacios en Blanco de Buffer
Publicado por: RICHI777 en 09 de Octubre de 2013, 19:24:22
Hola, fijate la función sprintf ... es una manera ...

Saludos !
Título: Re: Rellenar con 0´s espacios en Blanco de Buffer
Publicado por: Rikr09 en 09 de Octubre de 2013, 19:30:12
Hola, fijate la función sprintf ... es una manera ...

Saludos !
Gracias, no especifique, estoy trabajando con un PIC24FJ128GA310 Compilador XC16 ... Existiria alguna libreia para esto? porque segun lo que he podido leer en iNTERNET son explicaciones del metodo pero no implemnetarlo :(
Título: Re: Rellenar con 0´s espacios en Blanco de Buffer
Publicado por: KALLITOS en 09 de Octubre de 2013, 20:57:56
Hola, fijate la función sprintf ... es una manera ...

Saludos !
Título: Re: Rellenar con 0´s espacios en Blanco de Buffer
Publicado por: Rikr09 en 10 de Octubre de 2013, 10:22:13
Hola, fijate la función sprintf ... es una manera ...

Saludos !
:(
Título: Re: Rellenar con 0´s espacios en Blanco de Buffer
Publicado por: Rikr09 en 10 de Octubre de 2013, 10:30:27
Hola, fijate la función sprintf ... es una manera ...

Saludos !
:(  ... yo se q esa funcion existe el asunto es q no se como usarla, se me dice que debo incluirla en mi proyecto pero apenas la incluyo me manda cientos de errores de RANEMD, CONFLICTYING etc etc... entonces yo no la incluyo pero pareiera que si estuviera incluida ya que cuando ala escribo (la funcion sprointf) me aparec y me da vinculo hacia ella, pero la forma esta declada no entiendo

extern int sprintf(char *, const char *, ...);

Y compilo con un ejemplo y todoooooooo el prorama se me daña, se reinicia el micro cada n veces de forma no peridica, asi q ... como al principio sigo sin saber q hacer



Título: Re: Rellenar con 0´s espacios en Blanco de Buffer
Publicado por: RICHI777 en 10 de Octubre de 2013, 11:15:28
Si es tan solo pasar un buffer con números ( lo de float es solo una representación ) podrías hacerlo así.

Código: C
  1. char Buffer1[] = "2.3";
  2. char Buffer2[] = "12.7";
  3. char Buffer3[] = "77";

Ahora si necesitas "formatear" podes usar la función sprintf de esta manera

Código: C
  1. #include <stdio.h>
  2.  
  3. void main( void )
  4. {
  5.  char str[20]  = "";
  6.  float f = 4.5;
  7.  sprintf(str, "%3.2f", f );
  8. }

La función sprintf ( xprintf ) son estandares, todos los compiladores que sean serios deberían soportarlas. El header de inclusión es stdio.h. Hay cientos de ejemplos en la net sobre el uso de esta función.

El segundo ejemplo se refiere al formateo del # 1

Saludos !


Título: Re: Rellenar con 0´s espacios en Blanco de Buffer
Publicado por: Rikr09 en 10 de Octubre de 2013, 11:37:03
Si es tan solo pasar un buffer con números ( lo de float es solo una representación ) podrías hacerlo así.

Código: C
  1. char Buffer1[] = "2.3";
  2. char Buffer2[] = "12.7";
  3. char Buffer3[] = "77";

Ahora si necesitas "formatear" podes usar la función sprintf de esta manera

Código: C
  1. #include <stdio.h>
  2.  
  3. void main( void )
  4. {
  5.  char str[20]  = "";
  6.  float f = 4.5;
  7.  sprintf(str, "%3.2f", f );
  8. }

La función sprintf ( xprintf ) son estandares, todos los compiladores que sean serios deberían soportarlas. El header de inclusión es stdio.h. Hay cientos de ejemplos en la net sobre el uso de esta función.

El segundo ejemplo se refiere al formateo del # 1

Saludos !




Graciasssssssssss!!!!   ((:-)) ((:-)) ((:-)) ((:-)) ((:-)) ((:-)) ya con este ejemplo empezare a ver los diferntes tipos de formato que le puedo dar al flotante y poder asi hacer lo que necesito... EXCELENTE AYUDA!!!  :-/ :-/ :-/ ((:-)) ((:-))