| Compilador | Ventajas | Desventajas |
| "C" | Facil de aprender, compacto, gran productividad, permite incorporar ASM dentro del código, gran cantidad de librerias, facil manejo de operaciones matemáticas, dismunución del número de errores, más facil memorizar, lenguaje mas cercano al humano, independencia de las distintas familias de micros | Codigo poco optimizado, programas mas lentos, poco o ningun control sobre el código generado, mas dificil de depurar |
| "ASM" | Código eficiente y rápido | Curva de aprendizaje alta, facil equivocación, hay que escribir mucho código, necesidad de utlizar macros que complican el programa, no se puede embeber otro lenguaje, si no se conoce se pueden crear programas mas largos, lenguaje mas alejado del humano, lenguaje específico de las distintas familias de los micros |
| "BASIC" | Tiene algunas de las características del "C" por ser un lenguaje de mediano nivel | Es un lenguage no estructurado que puede crear malos hábitos de programación, no tienen tantas librerias como otros lenguajes, es menos eficiente que el "C" y el "ASM" |
Desventajas del Lenguaje C
Codigo poco optimizado, programas mas lentos, poco o ningun control sobre el código generado, mas dificil de depurar
Bueno maunix no hay tanta diferencia en lo que pensamos. Básicamente diferimos en el tema de depuración (que no es tal, si no diferencia de interpretación). Por ello tratare de explicarme: Cuando comento la dificultad de depuración me refiero a dos echos que se pueden constatar, el primero es que si depuramos el programa con un depurador terminamos en ASM (ejemplo Proteus) y por cada instrucción de "C" tenemos una o varias líneas de ensamblador que pueden ser un poco farragosas de seguir. En segundo lugar si el compilador de "C" comete un error o tiene un bug hast que se llega a la solución se puede sudar sangre dejando los dedos en el teclado haciendo pruebas. En ASM la conversión es csi inmediata, correspondiendole a cada nemonico su traducción inmediata en hexadecimal, mientras en "C" lw corresponden varias instrucciones que hay que analizar. Si el error es de sintaxis o de estructura, indudablemente es mucho mas sencillo de correguir en "C" que en "ASM", para ello solo basta con comparar un programa en "C" y su mismo equivalente en "ASM". El primero con tres lineas esta solucionado, el segundo seguir el hilo de las instrucciones es mas complejo y por consiguiente mas dificil de depurar.
Espero que se entienda lo que quiero transmitir.
Un saludo.
mi intencion es ir abandonando poco a poco el basic o quiza dejar este para cosas muy sencillas donde los tiempos, las interrupciones, las comunicaciones y otras cosas del estilo no sean importantes e ir viendo algunas cosas -tambien sencillas- de ASM para, como decia antes, aprender un poco mejor como funciona y pasarme en serio al C.
este es mi parecer y creo que al igual que con los colores cada uno tendra sus opiniones y preferencias. tambien hablo desde el punto de vista de quien empieza y tiene poca o muy poca experiencia, porque la opinion de los profesionales, al ser fundamentada, es algo mas que una mera opinion. este es un hilo que efectivamente dara que hablar.
pd: releyendo el texto caigo en la cuenta de que maestros del basic como lordlafebre y otros seguro que tienen mil argumentos para contradecir el mio. vayan mis respetos a todos ellos
Es cierto que cuando hay errores en un compilador es dificil de depurar, pero eso se soluciona "comprando un buen compilador".
Pero no te estaba contradiciendo Maunix, sólo quería añadir un argumento más a la evaluación de los compiladores.
Estoy de acuerdo contigo en que un compilador no es mejor que otro por el hecho de ser más común. Pero sí es un argumento de peso lo fácil que resulte encontrar ejemplos y documentación para un determinado compilador, frente a otro en el que puedes estar más desamparado.
La pregunta del millon es cuales son las ventajas y desventajas de los distintos compiladores que utilizamos. Serán interesantes los resultados a los que llegemos, sobre todo para los novatos que no saben por que lenguaje decantarse.
Usar C o ensamblador no te va a enseñar a "programar".
xocas06 Saber usar los módulos del PIC bien en profundo te permitirá saber qué es lo que hace el C cuando los configura. Además no te puedes escapar de saber cómo funcionan.
perdonar si he sido un poco pesado con el tema de aprender, yo en principio no estoy pensando en ganarme la vida con ello -ya con 47 años creo que la informatica seguira siendo mi fuente de ingresos- sino que es un tema que me gusta y que querria conocer lo mejor posible, y creo que lo conocere mejor utilizando un lenguaje que me obligue minimamente a saber que el pic dispone de 2 o de 4 bancos de memoria o de que existe un bit de acarreo que he de tener en cuenta para segun que operaciones y no usando un lenguaje que hace todo eso sin que yo tenga ni que saberlo.
Hola. Yo empecé con ASM y ahora estoy tratando de programar en C (CCS) y la verdad es que me cuesta un montón. Pero seguro debe ser porque es algo nuevo para mí. Yo coincido en que primero se debe comenzar en ASM para luego pasar a C y por el echo de que casi todos los programadores como el ICPROG, estos pasan del hex a ensamblador.
Saludos. :-/ :-/
a ver si puedo exponer en pocas palabrasTe perdiste varios episodios de Barrio Sésamo
Yo comencé por ASM, me sirvió para aprender como es el PIC "por dentro", ver sus registros, configuración etc...
Ahora si lo que se quiere es empezar a programar... pues C directamente, pero creo que es útil conocer un poco el funcionamiento del PIC con ASM.
Te perdiste varios episodios de Barrio Sésamo
Las interioridades de un PIC no se aprenden con ASM, se aprenden leyendo el Datasheet. Es un error frecuente pensar que por que se programa en ASM ya se conoce el pic y es totalmente erroneo, solo se conoce la parte correspondiente a la interacción entre el pic y asm (puertos, registros, etc), pero no todo. De echo en este foro hay cantidad de mensajes de gente que pregunta por que sucede una cosa y es por que no se ha leido el datasheet (un ejemplo claro es en la gama baja el cambio de banco). Por ello no confundir una cosa con la otra.
Te perdiste varios episodios de Barrio Sésamo
... a ver si puedo exponer enpocas palabras...
Las interioridades de un PIC no se aprenden con ASM, se aprenden leyendo el Datasheet.
EN C solo dices output_high(pin_b4); y se acabo todo.....
EN C solo dices output_high(pin_b4); y se acabo todo.....
Ojo, eso solo es con el CCS, con el C18 también tienes que darle al TRIS y demases :) :) . Esa es una de las cosas que más me gusta el C18, su código en C pero además la posibilidad de tener control siempre sobre el microcontrolador.
Pero como dije antes, opino que sí es cierto que todo se aprende leyendo el datasheet pero con el ASM se profundizan muchas cosas y se comprende realmente muchos conceptos que tal vez no son tan obvios en el datasheet.
8) 8)
opino que sí es cierto que todo se aprende leyendo el datasheet pero con el ASM se profundizan muchas cosas y se comprende realmente muchos conceptos que tal vez no son tan obvios en el datasheet.
8) 8)
Ojo, eso solo es con el CCS, con el C18 también tienes que darle al TRIS y demases :) :) .
¿CUÁNTO HAY PUBLICADO EN INTERNET EN EL MISMO COMPILADOR QUE TÚ USAS?
Creo que, hoy por hoy, en esto gana CCS por goleada. Y es realmente una gozada poder buscar cosas y encontrarlas hechas para adaptarlas a tu código, o simplemente para aprender como funcionan y cuál es el truco de cada cual.
No sólo te ahorra tiempo de desarrollo, sino que te enseña planteamientos que jamás se te habrían ocurrido, y te aporta riqueza de soluciones.
Te perdiste varios episodios de Barrio Sésamo
... a ver si puedo exponer enpocas palabras...
Corregido. :mrgreen: :mrgreen: :mrgreen:
P.D.: El problema es que la primera frase la escribo antes que la última, y entonces pasa lo que pasa, que hay afirmaciones que son falsas en cuanto me abandono en una explicación de las mías. :D :D :D
Pensaba que los compiladores de C los cerraban solo para empresas. Despues encontre CCS, y si miras la ayuda que tre el compilador es mas que suficiente para aprender. La cantidad de ejempos, librerias, proyectos que trae se hace muy facil aprender a manejarlo. Y si buscamos por Internet PUFFF saltan mas de 5 hojas de google con ejemplos y ayudas. Por eso me identifico con lo dicho por Manolo.
La proxima vez que escribas en pocas palabras tomate un atajo y escribe asi:
Voyaescribirenpocaspalabras...
y se cuenta como una sola!! :D :D
El C18 es más ANSI C y muchas de las cosas allí vertidas se pueden usar incluso en un lenguaje C para PC con poco o nada de cambios.
Muchas gracias Picmouse. Yo estoy empezando en C (CCS) y e alegra la noticia. Ahora no me convende eso lo de la inestabilidad. Bueno, Una vez que entienda CCS seguiré con otro mas estable. Voy a ir uno por vez, porque si hago todo junto, no voy a lograr nada.
Saludos. :-/ :-/
Hola maunix. Mi objetivo no era aprender C18 y/o Hitech, pero viendo lo comentado, tendré que aprenderlo.Oh, cada decisión es personal eh? yo solo vierto mi opinión tratando de ser lo más objetivo posible, no te obligo a que lo hagas. :mrgreen: :mrgreen:
Pero como ya estoy bastante avanzado en CCS, no lo quiero dejar, sería una lástima y tirar todo por la borda. De todas manera, el foro está lleno de programas en CCS, así que aún voy a continuar aprendiendo este lenguaje. Después, veré.
A fin de cuentas no me enriquezco si usas C18, hitech o ccs. :D :D