uControl
Agosto 01, 2014, 04:46:36 *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?

Ingresar con nombre de usuario, contraseña y duración de la sesión
 
   Inicio   Ayuda Buscar Ingresar Registrarse  

La gente de Niple nos ofrece un descuento especial para usuarios de uControl.
Entérate de como puedes aprovechar esta oferta haciendo click aqui.

Súmate, y ayuda a uControl con tu participación en esta interesante oportunidad que nos oferece Niple.

Páginas: [1]   Ir Abajo
  Imprimir  
Autor Tema: Separar una cifra en digitos  (Leído 11681 veces)
0 Usuarios y 1 Visitante están viendo este tema.
Waldillo
Moderador
PIC16F
******
Desconectado Desconectado

Sexo: Masculino
Mensajes: 847


Casado con PIC infiel con ARM


WWW
« : Noviembre 20, 2008, 10:26:05 »

A continuación os muestro la función que utilizo para separar una cifra de 4 numeros en 4 cifras metiendolas en un array de enteros.

Código:
#include <math.h>   // Libreria necesaria
unsigned char numeros[4];
void SeparaNumero(unsigned char);    // Declaracion Prototipo de la función

// numeros[3]=millares  numeros[2]=centenas   numeros[1]=decenas   numeros[0]=unidades
// Se puede separar numeros de mas de 4 digitos, sin mas que cambiar el indice del bucle for
void SeparaNumero (unsigned char num)   // Definicion de la funcion
{
   for(i = 4; i >= 0; i--)
   {
   numeros[i] = num /(pow (10,i));
   num -= numeros[i]*(pow (10,i));
   }
}
En línea

wirry
PIC12F
**
Desconectado Desconectado

Sexo: Masculino
Mensajes: 123



« Respuesta #1 : Febrero 27, 2009, 10:56:15 »

Si quieres separar numeros con comas, por ejemplo 15,58. Que en mi caso es la temperatura, ¿vale el mismo ejemplo?.

Gracias
En línea
Waldillo
Moderador
PIC16F
******
Desconectado Desconectado

Sexo: Masculino
Mensajes: 847


Casado con PIC infiel con ARM


WWW
« Respuesta #2 : Abril 08, 2009, 01:31:24 »

Nop esta forma no vale y desconozco la forma,toca buscarla forma
En línea

Alexis
PIC10F
*
Desconectado Desconectado

Sexo: Masculino
Mensajes: 35


« Respuesta #3 : Abril 08, 2009, 04:11:21 »

A continuación os muestro la función que utilizo para separar una cifra de 4 numeros en 4 cifras metiendolas en un array de enteros.

El puntero a un unsigned char que pasas en la función SeparaNumero() ocupa un byte , por lo tanto, solo podes separar numeros entre 0 y 255. Capas que de casualidad te funciona porque no incurrís en ningun solapamiento de memoria, pero en realidad si queres pasar número de cuatro digitos decimales tenes que pasar por lo menos un puntero a unsigned short.
Además te convendría hacer un casteo en la asignación del digito.
Generalmente la lógica del programa estaría bien para ansí C, es decir, en un compilador de para Pc. En un microcontrolador se suele usar un desplazamiento más máscara de bit's. Además de esta forma te ahorras la libreria math.h que en un micro es un desperdicio de memoria.
En línea

Baneado por Insultar a un usuario por MP
Felixls
Moderador
PIC24F
******
Desconectado Desconectado

Sexo: Masculino
Mensajes: 3034



WWW
« Respuesta #4 : Abril 08, 2009, 05:15:08 »

Según lo que entiendo estás convirtiendo un número binario a decimal, puede ser?

Bueno aqui hay documentación y ejemplos, en C y ASM:

en C:
http://www.cs.uiowa.edu/~jones/bcd/decimalpic.html

ASM:
http://www.dattalo.com/technical/software/pic/bcd.txt

EDITO.
Ups, lo de C está aca:
http://techref.massmind.org/techref/microchip/math/radix/b2bu-17b5d.htm


« Última modificación: Abril 08, 2009, 05:19:20 por Felixls » En línea
Waldillo
Moderador
PIC16F
******
Desconectado Desconectado

Sexo: Masculino
Mensajes: 847


Casado con PIC infiel con ARM


WWW
« Respuesta #5 : Mayo 10, 2009, 08:41:38 »

La idea es separar 9999 en 9 9 9 9. No veo el problema
En línea


La gente de Niple nos ofrece un descuento especial para usuarios de uControl.
Entérate de como puedes aprovechar esta oferta haciendo click aqui.

Súmate, y ayuda a uControl con tu participación en esta interesante oportunidad que nos oferece Niple.

Páginas: [1]   Ir Arriba
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.19 | SMF © 2011, Simple Machines
SMFAds for Free Forums
XHTML 1.0 válido! CSS válido!
Página creada en 0.121 segundos con 29 consultas. (Pretty URLs adds 0.007s, 3q)
loggkey