TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: Lrios2019 en 20 de Febrero de 2020, 20:33:29
-
Buenas tardes compañeros, tengo una duda quiero leer hexadecimales con el PIC, explicandoles un poco lo que trato de hacer es lo siguiente: los hexadecimales representan su valor en decimal por ejemplo recibo 0X10 (aunque transformandolo en decimal valga 16 yo lo quiero usar como 0X10) el 0x20 sera 20, el 0x45 sera 45 en decimal y así sucesivamente, el problema es al llegar a 0x80, ya que este tiene un valor de 128 en decimal y la variable donde lo almaceno es de tipo Char de -127 a 127, aqui es donde el pic comienza a dar numeros sin sentido, mi pregunta es hay una forma de leer estos valores? del 0x80 al 0x99(este vale 255).
Adjunto la recepcion de mis datos, ya cambie la variable de tipo char a int aunque creo que el problema se encuentra en la recepcion getc();.
Muchas gracias
-
una unsigned char , o unsigned int, y listo... ahora va de 0 a 255 el de 8 bits.
Ademas no entiendo porque te queres complicar la vida usando el 0x10 como si fuera un 10 decimal. La representacion es 0x10, 16, 020, 0b0001000 como vos quieras, pero es el mismo numero.
-
gracias killerjc, lo que pasa es que estoy adaptando una tarjeta y la otra no la podria modificar, hice algunas pruebas con esas variables y sale lo mismo, aunque probare un poco con los bits que recido de 7 a 8 y ver si puedo jugar con la paridad
-
Suponiendo que no tenes control sobre los datos a recibir. Si tenes la posibilidad de cambiar el codigo, entonces usa un unsigned char... ¿Por que buscas sobre la paridad?
El valor recibido es el mismo supongamos 0x80 lo vas a recibir igual, el tema es que si pensas que es un unsigned char entonces 0x80 es 128, si es signed es -127, pero sigue estando guardado como 0x80.