TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: iNoXSteeL en 06 de Octubre de 2009, 20:45:17

Título: Cómo descomponer un dígito en m,c,d,u..
Publicado por: iNoXSteeL en 06 de Octubre de 2009, 20:45:17
Trato de pasar un dígito tomado de una serie de pulsos, con 4 cifras, lo quiero pasar a 4 displays de 7 seg, para ello debo descomponer ese dígito en unidades, centenas,decenas y millar.

He probado con lo de abajo, pero no funciona. Sabéis de alguna forma sencilla de hacerlo?

Gracias. Un Saludo.

Código: C
  1. int valor[];
  2.  
  3. valor[]=pulsos;
  4.  
  5. numero_adisplay=valor[0];
  6. numero_bdisplay=valor[1];
  7. numero_cdisplay=valor[2];
  8. numero_ddisplay=valor[3];

Título: Re: Cómo descomponer un dígito en m,c,d,u..
Publicado por: Suky en 06 de Octubre de 2009, 20:53:58
Código: C
  1. int Valor, Unidad, Decena, Centena;
  2.  
  3. Unidad=Valor%10;
  4. Decena=(Valor/10)%10;
  5. Centena=(Valor/100)%10;

Creo que era algo así  :mrgreen:

Saludos!
Título: Re: Cómo descomponer un dígito en m,c,d,u..
Publicado por: fabianjsm en 06 de Octubre de 2009, 22:41:36
Esta es una manera alternativa, pero el modo que te mostro Suky es más eficiente en cuanto a velocidad:

Código: C
  1. int valor;
  2. char display[8];
  3. sprintf(display, "%d", valor);
  4. /*  Ahora si puedes hacer algo como...
  5.  * numero_adisplay = display[0] - '0';
  6.  * numero_bdisplay = display[1] - '0'; */
Título: Re: Cómo descomponer un dígito en m,c,d,u..
Publicado por: iNoXSteeL en 08 de Octubre de 2009, 03:34:43
Gracias a los dos por la aclaración ;)

Un saludo.