TODOPIC
Otros Microcontroladores / Dispositivos programables => Microcontroladores ARM => Mensaje iniciado por: elgarbe en 10 de Marzo de 2015, 12:29:32
-
Estoy trabajando con la inicializacion de una pantallita TFT, portando cierto código que anda por la red. Estoy haciendo debug de las rutinas porque no funcionan. El tema es que ni siquiera estaba pudiendo hacer que las instrucciones de escrivir en el puerto se ejecuten fisicamente. De hecho me he encontrado con esta incongruencia:
(https://farm8.staticflickr.com/7622/16774727791_e892022b22_z.jpg) (https://flic.kr/p/ryjS9F)
Despues de ejecutar la instruccion LPC_GPIO->PIN[0] |= (0xFF << 16);
en el panel izquierdo veo el valor que toma LPC_GPIO->PIN[0] y LPC_GPIO->PIN[DATA_PORT] (con DATA_PORT definido como 0) y como se ve en la imagen, ambos han cambiado, pero tienen valores diferentes!!!!! como puede ser eso posible?
Saludos!
-
Por lo que veo estas poniendo el valor 0xFF00.0000 con la instruccion del medio y luego
Intentando borrar y ponerlo a 0... lo que no logro distinguir si es un menos " - " o un "~" despues del &= , deberia ser este ultimo. EDIT: Bi la imagen de cerca y esta bien
Ahora por que es distinto no se... eso si que no sabria decirtelo :/
Probaste que un int sin signo ? por las dudas ? o esta en un #define ?
Parece mas un problema de compilador
-
¿ Has compilado con algún nivel de optimización ?, en caso afirmativo, desactiva cualquier optimización, compila y prueba de nuevo.
Yo he visto también muchas cosas raras con los PIC, al hacer Debug a un objeto compilado con optimización.