WillyP dijo:
Hola a todos, creo personalmente que el ensamblador no es nada dificil y complicado si se conocen y entienden las intrucciones del microcontrolador y los bloques internos del pic. Ayuda muchisimo tener conocimiento de electrónica digital, de lo contrario ahí si se complica programar en ensamblador. El C permite programar un micro con exito aunque no se tenga conocimiento de electrónica y pienso que es una de las razones por las que se hizo tan popular ultimamente. Ademas de tener una serie de librerias que solo se copian se compilan y listo. Personalmente prefiero el ensamblador, pero hay cosas muy interesantes en C, por ejemplo la facilidad que brinda programar con estructuras. Por otro lado el C y me refiero al C18 que es el que estoy usando, permite mezclar ensamblador y C invocandolo de forma externa y de esta forma se puede compilar todo un programa escrito en ensamblador junto con C.
Este comentario te lo discuto. Para programar en C se necesitan los mismos conocimientos de electronica q necesitas para programar en assembler. Es decir muy pocos.
Todo compilador en C que sea ESTANDARD te permite mezclar codigo en assembler. Es la razon por la que es POPULAR C, (Que por cierto ya es popular desde los 70). En otras palabras, C no es popular por ser un lenguaje facil, sino por que es uno de los pocos lenguajes de alto nivel que te permite descender hasta "Tocar" el hardware subyacente (es decir programar en assembler).
Si tengo que programar un artefacto, digamos el control de una tostadora, en donde debo no solo programar el protocolo de comunicacion con el computador, sino tambien el manejo de los sensores, el control del display LCD, la senal PWM para control de temperatura, la interrupcion del boton de panico, el control PID del expulsor para que el pan no salte al ser expulsado, agradezco poder tener librerias que se encargan de lo basico y asi poder dedicarme a lo que en realidad me interesa, tener el prototipo funcionando rapido para q entre en produccion, y luego poder ir haciendo las optimizaciones en el codigo (usando assembler en las secciones que lo merezcan por velocidad) en las futuras revisiones. Pero claro, si mi proyecto se limita a hacer parpadear un LED, o a lo mucho mostrar un mensaje en un Display, caramba se lo puede hacer en assembler lo suficientemente rapido.
Javier Rambaldo dijo:
No estamos hablando de computadoras... solo de PIC!
Les parece difícil 35 instrucciones?
Para pics de hasta 4k basta con asembler. Sobre todo si ya tienes muchas macros y librerías hechas y funcionando.
Lo bueno de los PICs es que puedes hacer grandes cosas en poco tamaño y bajo costo, pero si usas C puedes excederte en tamaño y seguramente te excedereas en tiempo de ejecución.
No son solo pics. Si no te has dado cuenta, evolucionan con velocidad vertiginosa. Tal vez en unos anios, la arquitectura de 8 bits sea algo q solo encuentres en el museo, y el micro menos sofisticado que encuentres sea de 16 o 32 bits.
No obstante, tienes razon. Con tan poca memoria para programa, tal vez C no se justifiq.
Salu2.