Tengo una función que capta el resultado del CAD de un pic y lo transmite serialmente al PC, me decidí formatearlo a char.
...
#device ADC=10
long resultado_CAD;
char cadena[5];
...
resultado_CAD=read_ADC();
itoa(resultado_CAD
,10,cadena
);
...
...
en el programa del PC, usando el control MSComm1 del visual basic, he configurado
InBufferSize = RThreshold = InputLen = 5
esto quiere decir que se activará el evento comEvReceive cuando en el buffer hayan llegado 5 caracteres (los 4 mios mas el caracter nulo)
el problema viene por el resultado del cad , que varía desde 1 digito hasta 4 digitos (1 - 1024) y entonces cuando por ejemplo tengo 92 en el resultado del cad, el itoa hace:
cadena[0]= '9'
cadena[1]= '2'
cadena[2]= '\0'
cadena[3]= '\0'
cadena[4]= '\0'
lo que pretendo hacer es que sin importar la cantidad de digitos que tenga la conversión, siempre se agrupen de derecha a izquierda. Ejemplo:
CAD: 92 -> cadena = "0092"
CAD: 5 -> cadena = "0005"
CAD: 311 -> cadena = "0311"
alguna idea de como hacerlo?