Autor Tema: Cómo descomponer un dígito en m,c,d,u..  (Leído 2297 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado iNoXSteeL

  • PIC12
  • **
  • Mensajes: 75
    • La web de InoX
Cómo descomponer un dígito en m,c,d,u..
« 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];


Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Cómo descomponer un dígito en m,c,d,u..
« Respuesta #1 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!
No contesto mensajes privados, las consultas en el foro

Desconectado fabianjsm

  • PIC18
  • ****
  • Mensajes: 255
    • fabianjsm is on twitter
Re: Cómo descomponer un dígito en m,c,d,u..
« Respuesta #2 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'; */
@fabianjsm is on twitter

Desconectado iNoXSteeL

  • PIC12
  • **
  • Mensajes: 75
    • La web de InoX
Re: Cómo descomponer un dígito en m,c,d,u..
« Respuesta #3 en: 08 de Octubre de 2009, 03:34:43 »
Gracias a los dos por la aclaración ;)

Un saludo.