Pasé años escribiendo código para microprocesadores PIC en C usando el compilador CCS. Este último está diseñado específicamente para los dispositivos PIC, con excelente manejo de bits, soporte para los módulos de hardware, etc.
La razón por la que el hardware te está tropezando es probablemente porque no estás leyendo las hojas de datos con suficiente cuidado. A menudo, en un PIC, los módulos de hardware, que, por supuesto, están cableados, se superponen entre sí si no tiene cuidado.
Piense en C como una buena manera de escribir lenguaje ensamblador. Escríbalo de la manera más clara y simple que pueda, con un pensamiento por línea y con nombres de variables claros y explícitos. Nunca use punteros a menos que sea absolutamente necesario. No use ningún concepto avanzado a menos que deba hacerlo; es mucho más probable que se equivoque que el compilador y el procesador. Preste mucha atención al uso de memoria y nunca use la asignación dinámica de memoria. ¡Nunca use malloc ()! No use las matemáticas de coma flotante a menos que tenga mucho tiempo y espacio.
- ¿Cuáles son las diferencias de detalle entre el microcontrolador ATmega 16 y 8051, cuál de estos dos es mejor?
- ¿Qué sugiere PORTB ^ = 1 << PINB0 en el microcontrolador AVR?
- ¿Cuál es el mejor instituto para sistemas integrados en India que también ofrece ofertas de trabajo?
- ¿Puede el titular de un diploma ECE convertirse en ingeniero de sistemas integrados también?
- ¿Debo unirme al entrenamiento de verano RCPL para sistemas integrados?
Además, escriba el código para que pueda ver fácilmente dónde se encuentra cuando lo depura. Esto significa, por ejemplo, no use macros como expresiones, sino que escriba cada instrucción de hardware en su propia línea. Y no ponga expresiones dentro de otras expresiones, como printf (figure_something_out); descúbrelo primero, luego imprime el resultado. De esa manera puedes depurarlo.
Finalmente, mire la lista de ensamblaje cuando la haya compilado. Probablemente tendrá que ahorrar todo el espacio que pueda, y es instructivo ver qué partes de su código están ocupando la sala.
Espero domo si esto ayuda!