Pues yo estoy usando estas para un DS1678. La de BCD a binario es de producción propia. La otra está sacada de la librería que hay en CCS. No fuistes tu el que me paso unos ejemplos donde venían estas librerías??
Bueno, ahí van:
Codigo:
/*******************************************************************/
/*************** RUTINA DE CONVERSIÓN BINARIO A BCD ****************/
/***** Convierte un valor BINARIO de 8bits a otro BCD de 8bits *****/
/************* El rango de entrada debe ser de 00 a 99 *************/
/*******************************************************************/
byte bin2bcd(byte valor_binario){
byte temp;
byte retval;
temp = valor_binario;
retval = 0;
while(1){
if(temp >= 10){
temp -= 10;
retval += 0x10;
}
else{
retval += temp;
break;
}
}
return(retval);
}
/*******************************************************************/
/*************** RUTINA DE CONVERSIÓN BCD A BINARIO ****************/
/***** Convierte un valor BCD de 8bits a otro Binario de 8bits *****/
/************* El rango de entrada debe ser de 00 a 99 *************/
/*******************************************************************/
byte bcd2bin (byte valor_bcd){
byte valor_bin;
valor_bin=valor_bcd-(swap(valor_bcd&0xF0)*6);
return(valor_bin);
}