Que el pic diferencie entre dato racibido decimal,hexa o ascii

Hola que tal a todos;

Tengo una duda y es que me gustaria saber si cuando el pic recibe un dato
puede diferenciar que sea decimal -hexadecimal o ascii
por ejemplo teniendo varios pics en la misma linea de recepcion de datos
un dato hex o ascii habilitaria la recepcion con el que se corresponda
para luego leer los datos decimales que le lleguen
o sea el hexa o ascii que sea para indicarle direccion
y los datos decimales para indicar datos de procesamiento


gracias
mas que nada es una duda de protocolos que no se como estructurar para
diferenciar una cosa u otra
 
realmente es lo mismo, al pic le llegan solo datos binarios 0's y 1's, pero ya depende de ti como lo quieras interpretar, busca en internet "tabla codigo ascci" y veras que cada caracter tiene un numero binario de 8 bits, tambien un numero hex que corresponde a ese caracter. todo depende de como lo necesites.
esto que te pongo a continuacion no es verdadero ya que no recuerdo los valores pero asi funciona:

binario----------ascci----------hex
00110001---------A------------30
00110010---------B------------31

el dato binario es el mismo que ascci y que hex inclusive en octal, decimal, ect. para identificar en que formato va un dato si es que estas creando un protocolo que lo identifique seria necesario agregar dos bits mas para realizar esta operacion.
 
Última edición:
Eso lo tienes que implementar tu.
Hay muchas formas de implementar un protocolo pero se me ocurre que si todos los datos son decimales puedes mandar la dirección como un número mayor.
 
si el tema del codigo binario asci decimal octal se que es el mismo de hecho lo uso a menudo con la calculadora cientifica para convertirlos
pero asi como en visual basic /studio se utilizan funciones para definir el tipo de dato que estoy trabajando y puedo a travas de visual enviar al puerto serie un tipo de dato u otro
la cuestion era, el pic como lo recibe si solo como binario o tambien en otro formato???
porque imagina que yo estoy mandando a churround bytes 1111 1111 como le implemento al pic este byte es un dato y este una direccion si todos son numeros comprendidos entre 0 y 255 y puede que se repitan
por ejemplo si tengo asignado a una direccion de almacenamiento un numero 8ch y me llega un dato de procesamiento con 140 que es el mismo valor como hago para diferencialos ?? que hago me invento un protocolo que me diga el primer dato que recibo es una direccion y los que le siguen son datos de (por ejemplo un sensor), no se la verdad tengo claro esto pero me cuesta un poco el asimilar como implementar un protocolo que diga esto es un dato que refencia a una direccion y esto es un dato que referencia a un proceso
gracias por vuestra ayuda
para haceros una idea os pongo un ejemplo el pc registra puntos en coordenadas x,y y esto lo guarda en una tabla luego cargo los datos al pic y el pc empieza a mandar cada dato a una direccion del pic diferente para que luego al darle run el pic coja cada dato y lo ejecute (por ejemplo en pasos de un motor)si todos son datos entre 0 y 255 como le digo yo al pic ahora el pc te manda una direccion y ahora un dato que debes guardar en esa direccion.....

gracias y espero no marearos mucho con mi pregunta
un saludo
 
Para el pc TODO es binario SIEMPRE.
Como has dicho decimal pensaba que mandabas BCD o algo así.
Hay toda una teoría de protocolos...
Pero básicamente hay dos sistemas:
Cabecera-mensaje-cola

Paquete de longitud fija
Esto es quizás lo mas fácil, si siempre envías paquetes conocidos pues pones siempre mensajes que sean de 8 bytes, el primero la dirección, el segundo yo que se ... y el último un checksum (por ejemplo)
Claro que tienes que establecer muchas mas cosas...
 
Efectivamente.... para el PIC todo es binario, y tu decides por medio del programa que datos seran de que tipo y que tratamiento darle a cada uno, en el caso de la transmision tu defines el protocolo y apartir de alli diseñas el programa de la PC y el programa del PIC para que ambos transmitan usando el protocolo que ya definiste

Algunas veces sabes que siempre enviaras cierto numero de datos fijos, entonces se acosutumbra definir un dato como direccion y el resto como datos, otras veces mandas pares en forma de dato/direccion, o aveces mandas solo direcciones y despues solo datos.... todo depende de tus necesidades especificas...
 
Atrás
Arriba