[SOLUCIONADO] Convertir variable long a seis digitos.

Saludos
Soy nuevo en cuanto programación C y arduino se refiere. Estoy usando el arduino para casi cualquier cosa que se me ocurra y por el momento quiero mostrar en 6 display 7 segmentos el valor de una variable long.

He realizado esta subrutina, donde recibo la variable y la desgloso en ocho digitos, de los cuales en realidad uso seis para mostrar. Mi duda es hay otra forma de realizar esta accion con menos lineas???

Nota: la subrutina funcionan al 100%

void longtodig(unsigned long valor){
  digito[7] = valor /10000000;
  digito[6] = (valor /1000000)-(digito[7]*10);
  digito[5] = (valor /100000)-(digito[7]*100)-(digito[6]*10);
  digito[4] = (valor /10000)-(digito[7]*1000)-(digito[6]*100)-(digito[5]*10);
  digito[3] = (valor /1000)-(digito[7]*10000)-(digito[6]*1000)-(digito[5]*100)-(digito[4]*10);  
  digito[2] = (valor /100)  -(digito[7]*100000)-(digito[6]*10000)-(digito[5]*1000)-(digito[4]*100)-(digito[3]*10);
  digito[1] = (valor /10)-(digito[7]*1000000)-(digito[6]*100000)-(digito[5]*10000)-(digito[4]*1000)-(digito[3]*100)-(digito[2]*10);  
  digito[0] = valor-(digito[7]*10000000)-(digito[6]*1000000)-(digito[5]*100000)-(digito[4]*10000)-(digito[3]*1000)-(digito[2]*100)-(digito[1]*10);
  if (valor < 100000){digito[5]= 15;}
  if (valor < 10000){digito[4]= 15;}
  if (valor < 1000){digito[3]= 15;}
  if (valor < 100){digito[2]= 15;}
  if (valor < 10){digito[1]= 15;}
}

Prueba a ver así:

void longtodig(unsigned long valor){
      for (int i=0;i<6;i++){
            digito[i]=valor%10;
            // si en lugar del valor del dígito queremos el carácter, sustituimos por 
            // digito[i]=valor%10 + '0';
            valor/=10;
      }
}

Noter: esto es lo que necesitaba. Muchas gracias. Funciona muy bien.

En la parte que colocastes digito_=valor%10 + '0'; se puede usar digito*=valor%10 + 0x30?*_

De nada, max_saeta. Si has comprendido el código, verás que con cambiar la comparación del for, puedes obtener más o menos dígitos.
Por supuesto que puedes utilizar 0x30 (también 48, ó B110000). Yo utilizo directamente '0' porque no sabía (ni me hacía falta) el código ascii del cero, y también porque queda más "autoexplicado" lo que estoy sumando al valor del dígito.
Saludos.

Excelente