A ver, las conocia del C convencional, y pense usarlas para hacer lo que quiero.
LA idea es haxcer una funcion que sirva para excitar un display de 7 seg de los digitos que queramos, del tipo
Visualizar_display(float valor,char numero de digitos)
el problema me surge al descomponer el float en los distintos digitos para visualizarlos
Esta funciona servira para el numero de digitos del display que usemos pasandole el parametro correspondiente.
ME gusta hacer funciones estandar, por lo que incluso se le puede pasar el parametro de si el display es de anodo comun o de catodo comun.
Tengo hecho toda la funcion y va bien con un display y un contador hasta de 8 digitos, pero asi es mas facil ya que solo visualizo el conteo que son enteros int32
el problema surge al pasarle un valor float y tenerlo que descomponer en sus respectivos enteros decenas etc + el punto decimal
a ver a quien se le ocurre la forma de convertir en char cada unidad, decena centena etc ya que uso la siguiente formula para visualizar
uso dos puertos, b y d.
el B saca el dato a visualizar con una conversion del tipo
char dato[10]={valor hex del cero, valor hex del 1.......};
por lo que lo envio a el puerto B con
output_b(dato[valor entero]);
y el puerto D hace el barrido de excitacion de el display correspondiente a ese dato y asi sucesivamente
el problema repito es al tener que pasar del float a valor entero del display correspondiente
seria un bucle asi
for(x=0; x<numero de digitos;x++){
output_b(dato[valor entero]);
output_d(seleccion de display en hex
- );
delay_ms(1)ç
esto funciona bien pero descomponer por ejemplo
134.45 en
int unidades- 5;
int decenas-3......y asi para hacer
output_b(dato[valor de unidades]);
no me funciona
a ver si alguien sabria como hacerlo porque con itoa y atoi no me funciona