Desde el punto de vista de codificacion en radio frecuencia lo hacen asi:
Es decir, para enviar un CERO, envian "dos veces" un cero codificado, si quieren enviar un UNO enviar "dos veces" un uno codificado, y si quieren enviar un floating, envian un cero y luego un uno...
Para guardarlo hare lo mismo, usare 2 bits. Si los dos bits son cero, es un cero, si los dos son uno, pues es un uno, y si es un cero y un uno, un floating...
Como decia al principio esta no es una manera optimizada de guardar datos, pero tampoco ando escaso de EEPROM, asi que me lo puedo permitir
Igualmente, si hubiese alguna forma matematica de convertir el numero ternario en binario y viceversa seria interesante aprenderlo.
Salu2
Hola, revisando detenidamente el fragmento de información(¿Datasheet?), que pones, la mejor solución es la de utilizar 2 bits por cada 1 Trit*
(Valla salvajada acabo de poner),
Pues para enviar el código, solo has de hacer una función re-cursiva que lea bit a bit y si es 1 , emita el uno codificado y si es 0 emita el cero, asi durante los n bits de la trama.
Creo que matas dos pájaros de un tiro, emites el código, y te olvidas de la codificación trinaría.
*Trit, unidad imaginaria mínima que puede contener un valor trina-rio.
Mira esta representación de lo que sugiero.
partimos de la situación de que hemos recibido la señal de emitir el código de 10 Trits..
1-> cargamos los bytes necesarios, en este caso 3(1-Byte = 4-Trits.)
2->vamos a la función genérica descodifica código().
3->en esta hay una rutina que se encarga de leer los datos del los 3 bits anteriores, y de proceder a llamar a las rutinas Send_uno() y Send_cero() según corresponda a los bits.
Esto es una idea general, y supongo que te parecerá una burrada, pero yo creo que te serviría bien, pues con simplemente cambiar los 3 parámetros antes de llamar a la función de descodificación, cambiarías el comando a enviar.
Espero no te moleste esta opinión mía, me gustaría saber que opinas al respecto.
Buenos días y saludos a todos.