Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
A ver si me podéis echar una mano,
Quiero dar el salto definitivo a los micros dsPic, empezaré por la serie 30F por trabajar a 5V, y para ello quiero usar un compilador C completo, potente y fácil de usar. La verdad es que para estos micros uno no encuentra mucha información. Hay pocos libros, pocos tutoriales, poco de todo. Tengo 3 opciones: MPLAB C30, CCS dsPic y MikroC dsPic. El Hi-Tec lo descarto por no tener versión gratuíta. He probado por encima los tres.
* El MPLAB lo veo muy "rudo", trabaja mucho a nivel de registros, no tiene tanta librería de periféricos implementada como los otros dos. Eso haría que al principio tenga que "currarme" muchas librerías de periféricos.
* El CCS es el que más he usado. Es sencillo y fácil de usar. Pero la ayuda está muy anticuada, hay referencias a funciones que ya no existen o que han cambiado segun modelo del micro. Otras casi no están documentadas y cuesta mucho hacerse una idea de como funcionan.
* El MikroC ha sido el último que he probado. Se ve más serio que el CCS, tiene un debugger software con muy buena pinta. La ayuda está bastante bien realizada. He encontrado que falta alguna librería, como por ejemplo la de Input Capture.
No quiero empezar con uno y que en un par de meses, tenga que cambiarme. Cual me recomendaríais?
Estoy incluso barajando la posibilidad de pasarme a "los otros" (AVR), pero ya tengo experiencia con los pic, además de herramientas (programadores, placas de pruebas, samples, etc) por lo que un cambio así quizá no me saldría a cuenta... o sí?
Quizás sea un poco raro, o debido al trabajo, pero las librerías que he probado, excepto una de I2C, casi nunca acaban por hacer lo que yo quiero. Generalmente, en un par de días como mucho, o incluso en menos de una hora (fantástico invento eso de copiar y pegar) tengo adaptadas las rutinillas de inicialización de los periféricos que necesito, así como las ISR's etc. Es más, apenas entiendo el uso de 'librerías para el SPI' o para el USART.
Total, para una comunicación serie, con menos de 50 líneas tengo montado todo lo necesario para controlar completamente el envío del buffer de datos, la recepción del mismo, las posibles notificaciones y cambio de dirección de un ModBus sobre RS-485, incluyendo el temporizador de time-out, etc.
Me resulta siempre más complicado hacer la estructura de un programa para gestionar todas las posibles tareas del mismo, procesar el buffer o query del ModBus, generar posibles fuentes para una pantalla LCD gráfica, etc. En mi humilde opinión, la gestión de los periféricos es 'pecata minuta' en comparación con la parte 'seria' del programa.
Ah, y para que conste en acta, yo soy más de la parte 'hardware' que no de programación, pero probablemente todo esto sea 'deformación profesional'.
Por cierto, para los más avanzados: ¿cuanta RAM necesitan las funciones de sprintf, o de comunicaciones SPI?¿Cuanta Flash?¿Que tiempo tardan?¿La gestión de las interrupciones es transparente?¿Funcionan por polling?¿Son procesos diferidos o bloqueantes?