Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Más de una vez me he encontrado discusiones de páginas y páginas sobre si hacer ciertas cosas 'a pelo' o 'con ayuda'. Cosas tales como si programas webs con Dreamwaever o a palo (me decanto por a palo en este caso), si hacer ciertas cosas en VBasic o C y así un largo etc, mi respuesta a estas preguntas sule ser 'depende de que y para que'.
Mi pregunta viene a ser parecida. Yo hasta ahora siempre he programado los PICS con ensamblador y me preguntaba si debía dar el salto o no. Las dudas que me surgen son:
1) Merece la pena
2) Se gana mucho en tiempo de desarrollo y claridad
3) Se piede mucho en eficiencia en la compilacion
4) Existen compiladores buenos y libres
Repito que no pretendo abrir una discusión sobre el tema, si no más bien, un poco de horientación...
Gracias
Hola,
Como tú dices "depende".
Yo he desarrollado mucho SW en ensamblador y en C y todo depende de qué herramientas tengas. Todos sabemos que los compiladores de C "gratuitos" suelen ser en el mejor de los caso mediocres, porque el bueno cuesta dinero, yo recientemente he comprado un compilador C para Pics por 200€ ( todos sabemos lo que cuesta uno "profesional" ) y estoy muy contento con él, genera código bastante eficiente ( no ocupa el doble que en ensamblador ) y , si tienes un buen nivel de C puedes hacer todo lo que necesites, en la mitad de tiempo, pero tambien hay veces que en ensamblador acabas antes. En el Robot que estoy desarrando ( CS-EMA ) el control de sensores está implementado con un 18F4431 y solo tengo ocupado el 30% de programa ( todo en C ) y te aseguro que el programa no son "cuatro cosillas".
La verdad...
Primero hazlo en C y luego revisas el código en Ensamblador. Si tienes mucha mano con Ensamblador puedes fabricarte "funciones" en este lenguaje que únicamente has de incluir.
Para programas cortos yo utilizo directamente ASM, para largos y complicados lo que te he dicho (primero en C y luego en ASM).
S2
Ranganok Schahzaman
Yo también soy de la opinión del "depende". Está claro que disponemos de muchas herramientas para programar micros (quiza unas mas asequibles que otras) pero al fin y al cabo somo nosotros quienes hacemos la programación definitiva (nadie mas que nosotros sabemos que es exactamente lo que queremos que haga el micro).
Seria casi tan descabellado programar un pic12f en C como hacerlo en ensambladro puro y duro un pic dsf30f. ¿Que quiero decir con esto? que tenemos que valorar los recursos que disponemos. En primer lugar la tan restringida y necesitada memoria de programa, y claro, por otro lado el volumen de código hex que genere el compilador.
Como dice Ranganok, si tu nivel de ensamblador es alto, una vez el compilador te haya dado el hex, revisalo y reduce lo que creas oportuno, la cuestión es que el trabajo "gordo" lo ha hecho el compilador dandote mas abstracción del hardware.
Como ejemplo se me ocurre que quieras implementar una red CAN con pics 18f; es muy probable que las comunicaciones sean mas faciles de programar en C, pero el control de hardware periferico en ensamblador. Teniendo las 2 herramientas en tu mano, puedes hacer uso de las 2.
Saludos.
Al final por lo que veo me animais a que me lance al "alto nivel", y dentro de este, alguna recomendacion ... Sobre todo a nivel de compilador más que de lenguaje, porque ya puesto me da un poco igual aprende c o basic u otro, hombre tengo más base de c que de otra cosa pero no me preocupa.
Gracias por vuestras repuestas y un saludo