TODOPIC

Microcontroladores PIC => Primeros pasos - Iniciación a los microcontroladores => Mensaje iniciado por: jfh900 en 26 de Junio de 2006, 19:31:18

Título: Ventajas y desventajas de los compiladores
Publicado por: jfh900 en 26 de Junio de 2006, 19:31:18
De seguro que este hilo va a dar mucho de si, pero es una idea que me biene rondando por la cabeza y que creo es necesaria que la pulamos entre todos. 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. Yo empezare poniendo una tabla con los compiladores que conozco a saber: "C", "ASM" y "BASIC". Quiero recordar que son mis opiniones sobre estos compiladores a lo largo de los años que he utilizado y que por supuesto no es una verdad absoluta.

CompiladorVentajasDesventajas
"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 microsCodigo poco optimizado, programas mas lentos, poco o ningun control sobre el código generado, mas dificil de depurar
"ASM"Código eficiente y rápidoCurva 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 nivelEs 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"

Mi opinión sobre que lenguaje aprender es "C" y cuando se domine este aprender "ASM", utilizar "C" siempre que se pueda y cuando haya que optimizar una función o tengamos poca memoria embeber "ASM".

Bueno, ahora que cada uno aporte sus opiniones, que diferiran de las mias, pero seguro que al final llegaremos a conclusiones interesantes.
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: Arbolito en 26 de Junio de 2006, 19:52:57
La iniciativa es muy buena.
Por mi parte aprendi a programar en asm y despues en C, conclucion coincido con jfh900 aprender primero C y luego asm
El asm me llevo mucho tiempo para terminar utilizandolo muy poco,generalmente ,por no decir siempre programo en C.
Tambien creo para empezar es muy bueno el NIPLE aunque no lo utilizo demaciado me parece muy conveniente iniciar alumnos de colegios tecnicos (donde aun queden :() ademas del C.
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: Mario en 28 de Junio de 2006, 03:18:40
Hola.

Alguna vez alguien preguntó sobre los compiladores en Basic:
http://www.todopic.com.ar/foros/index.php?topic=12099.msg67659#msg67659


Yo coincido con los demas, C es lo mejor pero, para gente como yo (que C no se) es mejor empezar con un poco de arquitectura porque si bien es cierto que C y Basic tienen instrucciones para ejecutar conteos o conversiones A/D y muchas otras cosas, si uno no configura el Hardware, jamás trabajará.

Yo inicié con ensamblador y me pasé a Basic (PBP) y lo único que lamento es que no tenga punto flotante como C.

Bueno, esa es mi opinión. :mrgreen:
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: maunix en 29 de Junio de 2006, 20:21:04
jfh900 lindo tema para hablar aunque no creo que sea todo cuestión de opinión. 

Creo que hay argumentos técnicos que permitirán definir todo esto con mucha precisión aunque bueno,  hagamos un intento :)

Me parece que la opinión está en qué lenguaje decide uno usar,  pero en muchas otras cosas hay parámetros que nos permiten medir bastante bien cuales son los pros y contras de cada lenguaje.

De hecho, coincido contigo en todo excepto en lo siguiente:

Desventajas del Lenguaje C
Codigo poco optimizado, programas mas lentos, poco o ningun control sobre el código generado, mas dificil de depurar

Creo que es muy optimizado, de hecho es el lenguaje más óptimo luego del ensamblador.  En programas grandes su eficiencia es de un 70% vs ensamblador en las PCs.  En los PICs 16F sí, te puedo decir que el tamaño del código termina siendo tremendo pero bueno,  para eso están bastante mejor los 18F,  24F & dsPIC con arquitecturas más adecuadas para ello.

Es fácil de depurar, de hecho mucho más fácil que el ensamblador.  Al menos yo entiendo por 'depurar' al hecho de corregir errores, simplificar código, agrupar rutinas similares.

Los programas es cierto son algo más lentos, pero en rutinas críticas se permite intercalar con el lenguaje ensamblador en una forma bastante bien documentada (al menos en el C18).

La complejidad de anidar muchos "if" es casi imposible de hacer con el ensamblador o realmente lleva tanto tiempo y código como hacerlo en C.



Saludos



Título: Re: Ventajas y desventajas de los compiladores
Publicado por: jfh900 en 29 de Junio de 2006, 20:31:52
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.
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: xocas en 30 de Junio de 2006, 08:06:30
excelente hilo jfh900. porque creo que muchos como yo, que estamos empezando, nos hacemos esa pregunta.

mi opinion -partiendo de que solo conozco el basic y poco- es que el basic es el lenguaje del vicio y el menos apto para aprender. me explico: es facil empezar a hacer cosas en basic pero sin entender lo que esta pasando y por tanto sin aprender. si el primer paso del aprendizaje consiste en encender un led... pues vaya misterio en basic. eso sin hablar del uso y abuso-abuso de sentencias goto y sus primas hermanas.

el ASM creo que es el mas apto para aprender porque uno 'ataca' directamente al pic en todo su rango y con todas sus consecuencias, si bien coincido en que la curva de aprendizaje se las trae... hace años programe algunas cosillas para el 6502 y cuando quise pasarme al 8080 la neurona me dijo que hasta aqui hemos llegado (aun hoy en dia no me lo ha perdonado).

del C la unica referencia que tengo es que es tambien poco 'amigable' aunque muy potente. tambien creo que se recomienda para la gama 18f en adelante pero quiza estoy diciendo una tonteria...

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.

salu2

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
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: maunix en 30 de Junio de 2006, 08:54:53
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.

Ah bien, pues ahora sí te he entendido.  Entonces pensamos lo mismo.

Es cierto que cuando hay errores en un compilador es dificil de depurar, pero eso se soluciona "comprando un buen compilador". 

Es cierto que uno no se irá a fijar como hace el compilador las rutinas en ensamblador pero hay gente que sí lo hace, al menos lo he visto en el foro de Microchip donde algunos se divierten buscandole cositas. 

Realmente uno no tiene tiempo para esos hobbies pero sí es un tema apasionante y muy interesante.  De esa forma por ejemplo terminan concluyendo que es más rápido usar un struct para acceder a cada uno de los 2 bytes de una variable de 16 bits, antes que usar un puntero al primer byte y luego al 2do byte.

Confiando en el compilador, como ocurre con las PCs en que uno ya no se fija si el compilador funciona o no, asume que sí funciona, la depuración de un código en C es más simple que en ensamblador, entendiendo por 'depuración' el corregir errores de la lógica, de los problemas que puedan ocurrir, etc.

En lo personal, trabajo en ensamblador en los 16F y en C/ASM en los 18F.

Saludos

Título: Re: Ventajas y desventajas de los compiladores
Publicado por: maunix en 30 de Junio de 2006, 08:57:34
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

xocas06 opino que en cuestión de gustos puedes decidir usar el Basic, C o ensamblador, pero en cuestión de ser rigurosos técnicamente, no creo que nadie te diga que el BASIC te hace adquirir buenos hábitos de programación.

En mi experiencia, el lenguaje que mejores hábitos permite es el PASCAL, de hecho es el que se ha usado desde los años 70 para explicar los lenguajes estructurados.  El C lo fue reemplazando por ser más versátil y con instrucciones más breves.

Ahora cuando uno pondera 'facilidad de programación' y a que el proyecto que uno está haciendo le permite usar cualquier compilador entonces sí, se puede optar por cualquiera de la variantes.

Saludos
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: Mario en 30 de Junio de 2006, 22:38:22
Hola.

Pues yo estoy de acuerdo con lo que se ha dicho hasta el momento.

Yo uso ensamblador y Basic y, me estoy adentrando en C (C Primer Plus de Prata 5ta edición, muuuuuy bueno si no sabes nada de C).

Como se menciona en el tema, cualquiera es bueno y malo y todo depende de qué tan bueno seas para crear mapas mentales para resolver situaciones.

Quizá los de C digan que es el mejor (y estoy empezando a creer que lo es) pero los de Basic, con todo y sus limitaciones crean programas o estructuras que sobrepasan programas en C (con todas las limitaciones de BASIC). Y los dos se quedan con la boca abierta cuando alguien realiza lo mismo que ellos pero en ensamblador.

Sobre el comentario:
Es cierto que cuando hay errores en un compilador es dificil de depurar, pero eso se soluciona "comprando un buen compilador". 

Es muy cierto pero, ¿cómo saber qué es un buen compilador?
Cuando me decidí a comprar uno le pregunté a mi profesor de µicros que cuál recomendaría y el me contestó que personalmente él no recomienda ninguno porque te limitan a un simple estudio de instrucciones propias del compilador y no sabes cómo realiza lo que le pides.

Le comenté que como no soy muy bueno en ensamblador (crear miles de líneas para un proceso) me ayudaría con un compilador y después de ver la rápida transición en la creación de programas me pidió que le ayudara a enseñar el compilador como un último módulo de programación.

Uso el PBP con el µicroCode Studio Plus para hacer las correcciones en tiempo real (usando su bootloader) asi que con eso puedo saber de una manera mas precisa qué está pasando; como también los hay para CCS y para el mismo ensamblador (ICD de la µicrochip).

Ciertamente el utilizar un compilador te (si no eres cuidadoso) puede restar habilidades puesto que él hará las cosas por ti: los alumnos ya pasan por alto algo tan sencillo como poner en alto un puerto o no pueden leer el AD si no hay instrucciones para eso, quieren conquistar el mundo con un PIC y un compilador.
También es cierto que un compilador te puede salvar en muchas mas ocasiones que el simple y llano ensamblador.

Sobre el comentario de xocas06 acerca de los Basiqueros:
Todos defienden sus ideas.  :mrgreen:

Para terminar:
Lo mejor es aprender un poco de todo :D

Y como alguna vez me dijeron cuando estaba por escoger una escuela profesional "la mejor escuela es donde aprendes"  

Cada quien se adapta a lo que tiene en primera instancia y busca (por lo general) mejores horizontes después que se siente seguro.

Interesante los puntos de vista de todos sin duda alguna.
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: Nocturno en 01 de Julio de 2006, 03:19:15
Entiendo que en este hilo no discutimos las bondades y defectos de los distintos lenguajes, sino de sus compiladores y por tanto, me atrevo a lanzar un argumento que pocas veces utilizamos, pero que considero de vital importancia para desarrollar proyectos más eficientemente:

¿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.
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: maunix en 01 de Julio de 2006, 11:55:41
Difiero en algunos puntos

1) Se habla de las bondades de los compiladores, no de cual nos gusta más.  Creo que técnicamente se puede diferenciar muy bien cual es el mejor o peor, independientemente de los gustos.

2) Basándome en el punto 1, opino que el que haya mucho código para un compilador no lo hace "mejor" técnicamente frente a otros, simplemente lo hace más común,  más conocido,  más popular.  En otra plataforma tendríamos --> VBasic vs Delphi

3) Se puede evaluar un compilador técnicamente frente a otro, lleva tiempo y por supuesto es una tarea tediosa pero técnicamente posible.  De hecho un compilador genera código ensamblador perfectamente legible.


Saludos

Título: Re: Ventajas y desventajas de los compiladores
Publicado por: Nocturno en 01 de Julio de 2006, 12:01:04
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.
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: RedPic en 01 de Julio de 2006, 12:58:19
Cuando decidi programar PIC's en C tuve al final que decidirme entre CCS C y Hitech C, cada uno con sus argumentos en pro y en contra. El argumento que decidió la balanza en favor del CCS C fue el que dice Nocturno.

Como en los partidos de Basket en los que juegan 5 contra 5 y una nube de suplentes, todos son importantes, sin ellos no hay partido, pero hay uno al que nombran Jugador Mas Importante del Partido ... el mío fue su difusión entre mis potenciales servidores de ideas, ejemplos, consultas y respuestas.  :mrgreen:

Título: Re: Ventajas y desventajas de los compiladores
Publicado por: maunix en 01 de Julio de 2006, 13:39:02
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.

Esta bien, tal vez te mal interpreté o tal vez me enfoqué demasiado en lo que a mi parecer el hilo versaba, que es sobre cualidades técnicas de los compiladores más que funcionales o de conseguir cosas.

De todas formas, todas los aportes creo que son muy buenos y hasta se podría convertir en un hilo de referencia para quienes tengan dudas sobre ¿qué lenguaje me conviene usar?.

 :) :)
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: jfh900 en 01 de Julio de 2006, 15:49:40
La verdad es que todos los compiladores aportan algo bueno a la programación y en un momento dado piensas ojala pudiera utilizar tal o cual intrucción de este compilador. Pero si uno quiere andar un camino y no encontrase en la tesitura de tener que dar la vuelta y coger otro camino nos podemos plantear como podriamos evaluar los distintos lenguajes y despues elegir el compilador que mas nos convenga. Si el proyecto es pequeño y su dificultad es baja o mediana, creo que la mayoria de los compiladores nos servirá. Pero que ocurre si tenemos que afrontar un gran diseño, que toque todas las posibilidades, con cantidad de líneas de código, donde en determinadas funciones el tiempo es crítico, etc. Cual es la tendencia en el mundo del software para abordar estos proyectos: la respuesta es uninanime el lenguaje y por lo tanto el compilador mas utilizado es el "C". La inmensa mayoria de los sistemas operativos estan escritos en este lenguaje, embebiendo ASM en aquellas funciones que han de ser eficientes, y permitiendo escribir miles de líneas de código de forma rápida. Bueno hasta Windows no esta escrito en Visual Basic, está escrito en "C" (o tal vez si :mrgreen:).

Un saludo
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: xocas en 01 de Julio de 2006, 21:19:11
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. 

que nos diriais a los novatos vosotros que ya teneis experiencia con uno o mas lenguajes y compiladores?
partiendo de la base de alguien que quiere aprender y quiere hacerlo de forma gradual y asentando conocimientos, que consejos me podeis dar para ello? os pido consejo a vosotros porque he leido suficientes cosas vuestras en este foro para saber que os lo puedo pedir.

llevo muy poco tiempo en el mundillo de los pics y trato de leerme los datasheets, practicar todo lo que puedo, ver codigo y ejemplos aqui y alla y no se hasta donde conseguire llegar en plan autodidacta y sin grandes conocimientos de electronica. pero bueno, mi compañera dice que hay que ver siempre el lado positivo, y el lado positivo de un accidente es que te deja bastante tiempo libre... volvemos a la pregunta del millon?

un saludo
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: jfh900 en 01 de Julio de 2006, 21:24:12
Mi opinión personal es que comiences con "C" y cuando lo domines mas o menos aprendas "ASM".

Un saludo.
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: maunix en 02 de Julio de 2006, 11:43:29
xocas06 creo que depende que tipo de programación quieras hacer.

Usar C o ensamblador no te va a enseñar a "programar".  Con esto quiero decir que saber como organizar un software es un tema que va "aparte" del lenguaje que uno utilice.  Saber como organizarás la información o si un código debe ir en una subrutina o si lo copias y pegas indefinidamente son temas que van mas allá del lenguaje de programación.

Mi consejo es "depende".  Depende del tipo de software que harás y del tipo de mercado al que atacaran tus productos "por mas que hoy por hoy no lo veas de esa forma".

A modo general, yo estudiaría un par de cosas:  C y los módulos del PIC bien en profundo.

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. 

El ensamblador es muy útil cuando tu aplicación es muy orientada al hardware,  es decir a manejar mucho los puertos y a los módulos tal cual como estan.  Capturar datos por un A/D y sacarlos por el puerto serie.  También cuando tu aplicación es 'real time' y no puedes depender de los tiempos que te ponga el código extra de un compilador en C.

Ahora bien si tu aplicación tendrá muchos "condicionales" o "mucha lógica asociada" (condiciones que si pasa esto, que haga aquello) y los tiempos de ejecución no están al límite entonces el C sin duda es mucho más apto para eso. 

Yendo al mundo real si un pic 18F sin EEPROM está en 4,5 dólares por unidad (unos 2.50 u$s por 25) creo que ya quedan pocos argumentos para que comiences tus aplicaciones aprendiendo ensamblador.  Ese pic tiene el doble de memoria que el más grande de los 16F y puede andar al doble de MHz.  Sumado a esto, por más que no tenga eeprom se puede grabar a sí mismo con lo cual no interesa tener/no tener eeprom.

El ensamblador en programas complejos tiene cabida cuando hay que hacer "muchas cosas" , cuando se harán mucha cantidad de dispositivos (miles de ellos) y donde el costo de cada pic es importante en el monto global del dispositivo que uno realizará.  En esos casos incluso se puede lograr que un PIC haga lo que haría otro pic con el software codificado en C con el doble de capacidad (y gralmente un 40% mas de costo) o bien , hubieran sido necesario 2 PICs.   En ese caso y en el caso en que tengas tiempos que sean muy críticos solamente es justificado encarar un proyecto completamente en ensamblador.

Saludos
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: xocas en 02 de Julio de 2006, 14:14:49
muchas gracias a ambos por vuestra respuesta.

tienes toda la razon maunix: usar uno u otro no me enseñara a programar, y me queda claro que sera la necesidad a cubrir la que decida que es mas adecuado en ese caso.
de momento mis trabajos han sido en basic y los pics utilizados ademas del 16f84 son el 12f629 y el 12f675 (como veis lo mas bajo de la gama), y hasta ahora si algo he aprendido ha sido gracias a leerme una y otra vez los datasheet...
seguire vuestro consejo y comenzare poco a poco con c y algo de emsamblador (he visto que hay abundante documentacion en el foro) y ya os ire contando que tal va el tema.

un saludo y gracias de nuevo

pd: ademas de los datasheet, este foro me ha clarificado muchas dudas... pero no lo quiero decir porque parece que siempre estoy haciendo la pelota jeje. un saludo
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: Mario en 02 de Julio de 2006, 17:03:10
Hola.

Pues es como ya se había mencionado, no se discute el lenguaje sino el compilador.

Al parecer todos coincidimos que C es mejor lenguaje para programar PICs, sin embargo lo que dice manuix es muy cierto
Usar C o ensamblador no te va a enseñar a "programar".

No importa el lenguaje que uses, si puedes seguir un diagrama de flujo entonces puedes adaptarlo a tu tipo de lenguaje, lo importante es el algorítmo o pseudocódigo.

Como lo menciona manuix (y también lo comenté)
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. 

Como se había mencionado (y como manuix lo dice) NO TE ESCAPAS de conocer la arquitectura del µicro, tienes y debes saber cómo funciona porque de ahí es donde puedes aprender a "programar".
Para qué usar una instrucción de compilador que cuente por una terminal (PBP=COUNT) si puedes configurar los contadores en hardware.
Por otro lado, para qué hacer rutinas de control de hardware I²C si con una simple instrucción (I2CREAD e I2CWRITE) puedes comunicarte.

Ventajas hay muchas y desventajas las hay y varían de compilador a compilador, de lenguaje a lenguaje. Yo no puedo hacer comparaciones entre varios (CCS, Protón, PBP) porque solo uso uno (PBP) pero puedo concluir que si está uno interesado en aprender con un compilador, solito te vas adentrando a la arquitectura (por curiosidad tal vez) y mientras mas sabes mejor.
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: jfh900 en 02 de Julio de 2006, 17:15:45
Yo daba por entendido que hay que saber la arquitectura y el funcionamiento de los PIC. Pero si entramos en esos detalles, lo primero que hay que aprender antes de la arquitectura de los micros (y no hablo de los PIC, como por ejemplo saber que es una pila o que es el acumulador), es imprescindible tener unos conocimientos minimos de electricidad y electrónica.

Un saludo.
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: xocas en 02 de Julio de 2006, 21:15:55
bueno, no me explique bien o al menos no lo suficiente. yo tambien doy por sentado la importancia de conocer la arquitectura y saber como funcionan el acumulador, la pila y demas. como decia antes, hace años hice pequeñas aplicaciones en ensamblador para el 6502 (o 6510 ya no lo recuerdo bien) que era el micro de los commodore, y llegue a ver algo del 8080 aunque muy poco. de esto hace muchos años y hacia tambien muchos años que dejara de lado el tema de la electronica, al que he vuelto de forma casual.
mis estudios entonces eran de tecnico en radio y posteriormente estudie electronica digital, aunque siempre de forma autodidactica. nunca conte con un profesor y eso me supuso muchas horas de biblioteca y pagar precios desorbitados por ciertos libros -en ingles- como unica fuente de informacion (por ej. sobre ensamblador para el 6502). y lo que es peor, que a pesar del esfuerzo quedaban muchas lagunas, ciertas cosas ahi se quedaron sin que jamas llegara a entenderlas.

desde el finales de los 80 me gano la vida como tecnico informatico y en este tiempo he trabajado de programador, profesor, tecnico... es decir un poco de todo, y nunca he dejado de estudiar (el mercado esta duro) y llevado a mi campo podria decir que:
-. si alguien me pregunta que si mac que si pc le diria que si es informatico seguramente se encontrara mas a gusto cacharreando con un pc, pero si es un mero usuario que no quiere complicaciones sin duda seria el mac mi consejo.
-. si la pregunta es windows o linux la respuesta seria similar a la de este hilo: que uso tendra? si se trata de un servidor web la respuesta seria linux, y no por una cuestion de preferencias, sino por haber trabajado con ambos y conocer las diferencias.
-. podriamos seguir con otros ejemplos pero creo que todos estamos diciendo lo mismo al final. bueno, falta la version de quien conoce bien un etorno determinado y lo defiende enfrentandolo a todos los demas, pero basicamente porque se siente a gusto con lo suyo y no ve la necesidad de cambiar.

como veis creo que la cuestion no seria muy diferente a las opiniones que se puedan dar sobre lenguajes o compiladores

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.

un saludo
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: maunix en 02 de Julio de 2006, 22:40:18
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.

xocas06 usa el C, no te va a defraudar.  Vas a tener que leer de la arquitectura para cualquier lenguaje y no creo que a priori debas saber si unn pic tiene 2 bancos o 4... Usando el C tal vez solo debas saber de "cuanta memoria de programa" y "cuanta memoria de datos" dispones.

Con el tiempo, si "necesitas" depurar el código para hacerlo algo más pequeño, ahí si podrás adentarte más en detalles finos,  pero no lo veo prioritario a la hora de arrancar.

Saludos
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: xocas en 03 de Julio de 2006, 14:34:26
no le demos mas vueltas entonces y que sea el c el elegido.

en el foro hay bastantes ejemplos para el 16f648 y en la web encontre tambien para el 16f628 de manera que ya tengo trabajo -o distraccion, segun se mire- por delante para empezar.

un saludo a todos y de nuevo las gracias por vuestro tiempo
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: freshdesing en 24 de Septiembre de 2007, 08:57:49
Yo comencé por ASM, me sirvió para aprender como es el PIC "por dentro", ver sus registros, configuración etc... Ahora estoy con C (CCS) y la verdad es que a veces, pongo una línea para configurar algo,  y pienso... ¿Estará configurado todo como yo quiero? Realmente es más fácil C, para programar. Mi recomendación es aprender un poco en ASM para ver como van los registros y la arquitectura interna del PIC y después pasarse a C con programas más complejos.

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.

Un saludo.
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: Leon Pic en 03 de Octubre de 2007, 20:00:01
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.  :-/ :-/
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: maunix en 05 de Octubre de 2007, 17:37:10
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.  :-/ :-/

Leon, los programadores simplemente leen los bits del .HEX y lo mandan al microcontrolador.  El programador (ICPROG; WINPIC, etc) en realidad no saben nada de la instrucción.  Ahora si le agregas una función de desensamblar lo mostrarán en ensamblador del micro original pero eso no significa que haya que saber de ensamblador para hacer estas cosas.

Hay una relación directa e unívoca entre el mnemónico del ensamblador y lo que guarda el .HEX o lo que sería equivalente a su equivalente HEXA pero ya teniendo en cuenta la posición de memoria que ocupará en el micro destino.

Saludos

Título: Re: Ventajas y desventajas de los compiladores
Publicado por: Leon Pic en 05 de Octubre de 2007, 23:09:42
Hola maunix.

Lo se, talvez no me hise entender. Lo que quería decir, es que, hay mas compiladores que pasan de hex a asm, que de hex a c (al menos eso lo experimente yo, al no encontrar compiladores que pasen a c, vale decir que si núnca encontre, no quiere decir que no existan)

Saludos.  :-/ :-/
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: RedPic en 06 de Octubre de 2007, 05:34:14
Uffff ... vamos a ver si puedo exponer en pocas palabras y mas o menos claro un par de ideas.

Un fichero .hex es una representación ASCII de qué byte va en qué dirección de memoria escrito según un acuerdo en la forma de colocar esa información en dicho fichero.

El cómo se guarda esto en un fichero .hex lo dijo Intel en su momento, y los que quieren escribir un fichero .hex se atienen a esas normas (Formato HEX de Intel (http://perseo.cs.buap.mx/~inge/index.php?gadget=blog&action=single_view&id=7)). Existen otros formatos de ficheros que representan bytes en posiciones de memoria, por el ejemplo el .s19 que es el que inventó Motorola (Formato S19 de Motorola (http://home.earthlink.net/~tdickens/68hc11/docs/s19_file_format.html)). Es lo mismo aunque no es igual.

La información guardada en un .hex puede representar un programa o no: puede ser el contenido de una memoria EEPROM por ejemplo. El .hex no es mas que un paso intermedio entre quien lo genera y quien ha de recibirlo, un microprocesador, una memoria FLASH o una EPROM ...

Para generar un fichero .hex no hace falta ni un compilador, ni un ensamblador ni nada mas que un editor de texto estilo notepad, vi o emacs. Escribes qué byte quieres en que address siguiendo la norma .hex, guardas y ya lo tienes.

Los programas del estilo de ICProg o WinPic800 "saben" abrir un fichero de texto .hex y enviar al PIC o a la   memoria EPROM su contenido dependiendo de quien sea su receptor diciéndolo qué byte tiene que ir en qué dirección.

Una de las infinitas formas posibles de escribir un .hex es escribir un source en idioma ensamblador y diciéndole a un programa ensamblador que lo traduzca a .hex: su contenido será en este caso una serie de bytes que serán la traducción correspondiente de tu source a un programa ejecutable.

Otra forma es hacer lo mismo pero escribiendo un source en idioma C y diciéndole a un programa compilador de C que lo traduzca igualmente. Su contenido también será en este segundo caso una serie de bytes que serán la traducción correspondiente de tu source en C a un programa ejecutable, que podemos llegar a conseguir que sea idéntico al anterior.

Partiendo de dos sources distintos puedes obtener el mismo .hex que a su vez representa el mismo programa. El que el segundo utilice como paso intermedio un fuente en ensamblador es indiferente, puede ser o no.

Estos bytes generados no son ensamblador. Son código máquina puro y duro. Especiales y particulares para cada tipo de procesador. Al igual que distintos compiladores de C, distintos ensambladores pueden generar el mismo código máquina.

Cuando hacemos ingeniería inversa lo que hacemos es procesar al revés el contenido de un fichero .hex traduciendo los bytes en su posición a los nemónicos, direcciones y registros que escribiríamos en un source ensamblador sin utilizar ningún tipo de instrucciones de pre-procesado. Es lo que conocemos como desensamblar o usar un desensamblador.

Cada byte de instrucción es exactamente traducido por un nemonico de ensamblador, cada dirección es exactamente una dirección no una etiqueta ni una variable. Como dice Maunix hay una relación directa, exacta y univoca entre cada byte de instrucción y su nemonico correspondiente.

De todas formas el desensamblado de un .hex genera un fuente ensamblador que es muy difícil de leer y mas aún de interpretar correctamente. Lo se por experiencia directa.

Y un compilador es infinitamente mas complejo que un ensamblador, con instrucciones de control de flujo anidadas, enlazadas, supeditadas o excluyentes. Con estructuras de datos complejas, superpuestas o compartidas. Con sentencias distintas que son en realidad sucesivas acumulaciones de otras mas sencillas ...   o acaso ¿no es lo mismo un While que un For? y ¿ambos no son mas que If complejos?.

.... hacer ingeniería inversa para obtener su fuente en C es una verdadera locura. Un único progama máquina debe generar un único código ensamblador o algunas docenas de miles de códigos C, dependiendo de cómo interprete o implemente tal o cual bloque de instrucciones el creador de "descompilador".

El creador de un desensamblador solo tiene un camino, el del descompilador los tiene todos y todos ellos abiertos al mismo tiempo.

De ahí que hacia atrás solo se llegue hasta el ensamblador. Antes que ir mas arriba es preferible dedicarse a otra cosa.

Ea, mas novelas para no dormir.  :mrgreen:
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: Nocturno en 06 de Octubre de 2007, 08:24:11
a ver si puedo exponer en pocas palabras
Te perdiste varios episodios de Barrio Sésamo
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: jfh900 en 06 de Octubre de 2007, 08:43:54
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.

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.

Por otra parte es curioso como la gente que empieza con el ASM aconseja que se empiece por ASM, cuando la curva de aprendizaje del "C" es mucho mas suave que la del ASM a la par que mas portable, ya que el "C" de los micros es muy similar, mientras que el ASM es muy dispar. Cuando uno pasa de programar en un pic16f84 a un dsPic, en "C" es bastante facil, mientras que en ASM es mucho mas complicado.

Un saludo
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: RedPic en 06 de Octubre de 2007, 09:05:09
Te perdiste varios episodios de Barrio Sésamo

... a ver si puedo exponer en pocas 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
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: Leon Pic en 06 de Octubre de 2007, 20:00:43
Hola a todos.

La verdad es que tienes razón RedPic. Leer un desamblador es muy dificil y poco utilizado, pero es una herramienta más que uno posee, que en algún momento, lo puede llegar a usar.

Hay otro punto que se esta pasando por alto y es que algunas personas le es más facil utilizar un leguaje que otro, por eso, cuando aconsejan que lenjuage utilizar, cada uno lo hace desde el que le resulta más facil. Y el que recibe los consejos, deberá estudiar bien la situación, en especial aquellos que no saben ningún lenguaje (como fue en mi caso, que empeze a programar con los Pic)

Saludos.  :-/ :-/
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: maunix en 08 de Octubre de 2007, 09:20:03
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.

Es cierto Jesús que se aprenden usando el datasheet pero usando el assembler se aprenden cositas, limitaciones que no son tan obvias leyendo solamente el datasheet, en eso si coincido con freshdesing.

Te perdiste varios episodios de Barrio Sésamo

... a ver si puedo exponer en pocas palabras ...

Jiji, cuando leí pensaba en la afirmacion de la primer frase de 'en pocas palabras'.  Y no tuve más que pensar... ¿cómo será explicarlo en muchas palabras? Se viene el RedPic ilustrado?  :) :)

En realidad creo que a veces para explicar claro hace falta no ser breve, me pasa a menudo que por ser breve peco de no explicar bien y por ahí suena a que no quiero ayudar  :shock: :shock:  pedagogía que me falta supongo  :-) :-)

Por suerte vienen los posts tuyos o de reinier (ojo, solo por citar los que más recuerdo como grandes explayadores de conceptos) que no escatiman palabra y nos muestran como se puede explicar escribiendo mucho jijiji.

Una cosa es saber y otra saber explicar.

Título: Re: Ventajas y desventajas de los compiladores
Publicado por: LABmouse en 08 de Octubre de 2007, 11:12:22
Las interioridades de un PIC no se aprenden con ASM, se aprenden leyendo el Datasheet.

Pues para mi lo seira.

ASM el lenguaje que te obliga a conocer mas a fondo el microcontrolador, ya que si quieres encender un LED, debes saber de antemano que el Existe algo llamao TRIS, Que para modificarlo debes cambiar de banco, que colocar un 1 en los bits del trs ese pin sera entrada y 0 sera salida, que ......

EN C solo dices output_high(pin_b4); y se acabo todo.....

En ASM debes saber que la arquitectura del PIC es Harvard, y que un Motorola es Von Newman.... En C...pasar de PICs a FREESCALE programando en C no es mayor dolor de cabeza,

En ASM es otro mundo distinto. Pasar de RISC del PIC a las ciento y pico de freescale....   :z)

Por eso digo que ASM no es un indicador de que la persona sabe la arquitectura interna de un PIC, pero si es el lenguaje que lo pide.

SALUDOS!!

PD: Pa redactar soy malisimo... Perdonen ese desastre juajuajua :D
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: J1M en 08 de Octubre de 2007, 11:25:51
Siento que no voy a aportar nada a este post... solo venía a expresar las risas que me han sacado el dúo Diego-Manolo :D Tengo que robar un coche y ponerme ya en viaje para conoceros en persona! menudo par de figuras :)

un saludo a todos!
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: maunix en 08 de Octubre de 2007, 11:49:13
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)
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: jfh900 en 08 de Octubre de 2007, 13:43:51
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)

Efectivamente cuando el programa empieza a crecer de forma desmesurada el programador tiene que olvidarse de esos pequeños detalles que le complican la vida y que no aportan nada a la programación. Un ejemplo puede ser como ya he dicho el cambio de banco de memoria, ¿realmente es tan importante saber en ASM que hay que cambiar de banco? o ¿es mejor dejar que CCS se ocupe de esos detalles y centrarnos en el procesado de la información por ejemplo?. De todas formas lo que defiendo es que la curva de aprendizaje del "C" es mucho mas suave que la del ASM y una persona que empieza desde cero es más facil de entender "C" (por algo se aproxima más a un lenguaje de alto nivel) que ASM.

Otro grave error que cometen muchas personas es olvidarse de la electrónica, y pensar solo en ASM ó en "C", de que sirve saber que es un registro TRIS cuando no se sabe lo que es un registro o un buffer o un multiplexado, etc, cuando sabe programar y activar un relé pero no sabe que tiene que poner entre medias para que funcione correctamente.

En los procesos de enseñanza hay un camino lógico que no se debe de saltar si no se quiere adquirir malos hábitos o tener serios problemas en sus primeros proyectos. Tal vez antes de empezar a programar se deberia repasar los tutoriales sobre electrónica y adquirir los conocimientos mínimos para medir y comprobar circuitos electrónicos.

Bueno al final me he enrrollado un poco (se conoce que Diego me lo ha pegado), aunque lo aquí expresado es solo una reflexión en alto, de la cual cada uno puede discrepar lo que quiera.

Un saludo.
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: Leon Pic en 08 de Octubre de 2007, 13:58:46
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)

Yo tube un problema en la etapa de aprendisaje (lo se, aún sigo aprendiendo) me refiero cuando empezé por primera vez, y tengan en cuenta que de programación cero literalmente. Aprendí a programar con un libro que compré en una tienda de revista, es Argentina (no voy a dar nombre, pero el que lo conoce se va a dar cuenta con lo siguiente, núnca ponen nada nuevo, repiten la misma información una y otra vez en nuevas revistas y siempre incompleta) en ese momento no sabía nada de la revista, si no, no lo hubiera comprado. En fin, ese libro tenía varios errores, y no podía encontrar la falla, hasta que probando y revisando cada momento, todos los registro del PIC, me di cuenta del error y tan solo era un error en los banco de memoria, entiendo que con el lenguaje C esto no me hubiera pasado, pero gracias a ese error aprendí muchas cosas.

Saludos.  :-/ :-/
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: LABmouse en 08 de Octubre de 2007, 14:09:40
Ojo, eso solo es con el CCS, con el C18 también tienes que darle al TRIS y demases  :) :)  .   

Si si, es cierto, es mas cuando yo decido dejar el ASM atras y pasarme a C, el primero que llego a mis manos fue Hitech....  :z)

Busque ayudas por todos lados, tutoriales.... nada de nada. Miraba la ayuda del compilador, y decia poco o nada.

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.


¿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.
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: PalitroqueZ en 08 de Octubre de 2007, 15:29:23
cuando tengo un problema con un programa en C, que no puedo solucionar, termino mirando el listado en asm, para ver el origen.

Título: Re: Ventajas y desventajas de los compiladores
Publicado por: MGLSOFT en 08 de Octubre de 2007, 15:58:23
Te perdiste varios episodios de Barrio Sésamo

... a ver si puedo exponer en pocas 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

Heyy !!
Diego !! :-/

La proxima vez que escribas en pocas palabras tomate un atajo y escribe asi:

Voyaescribirenpocaspalabras...

y se cuenta como una sola!! :D :D
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: LABmouse en 08 de Octubre de 2007, 17:00:56
juajuajuajua  :D :D
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: maunix en 08 de Octubre de 2007, 17:05:25
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.

Es cierto , coincido con lo que dice Manolo en que para CCS está lleno de ejemplos. 

De todas formas, una pequeña reflexión es que a los que usan los otros compiladores de C no son de los que precisamente les gusta compartir sus hallazgos ... he probado CCS, C18 y hitech, por ahora el hitech lo estoy aprendiendo pero me parece que el C18 y el CCS tienen bastantes diferencias a favor del C18.  Si , no hay ejemplos para comenzar pero realmente lo que se aprende en CCS, costará mucho pasarlo a otro micro.  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.

Tampoco es cuestión de hablar de verdades absolutas, solo vertir opiniones así que tomen lo mío como una opinión tan buena o  mala como la de otro.


La proxima vez que escribas en pocas palabras tomate un atajo y escribe asi:

Voyaescribirenpocaspalabras...

y se cuenta como una sola!! :D :D

 :mrgreen: :D :mrgreen: :D
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: Leon Pic en 08 de Octubre de 2007, 17:07:55
Yo he notado que en la página de microchips, venden el Mplab C30. ¿Este lenjuage es mucho mejor que CCS y/o C18?

Saludos.  :-/ :-/
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: jfh900 en 08 de Octubre de 2007, 17:11:11
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.

Totalmente de acuerdo, los dos grandes problemas de CCS son su inestabilidad (entiendase cambio de versión o bugs), como su poca portabilidad.

Un saludo
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: LABmouse en 08 de Octubre de 2007, 17:36:14
Leon Pic, MICROCHIP vende los compiladores de esta forma.

C18-> Sirve solo para todos los PCs de la linea 18F
C30-> Sirve para los PICS de 16 bits 24H y para los dsPICs

Con eso veras que C30 es distinto a C18.... CCS Ya tiene en el mercado el Compilador PCWHD que programa desde PICs 10F hasta los dsPICs y PICs24H. Y el precio... Bueno CCS gana por goleada tambien.. Comprar una licencia de C30 o C18 sale por un OJO de la cara. CCS es mas barato. Otro punto a favor  :mrgreen:

SALUDO!!
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: Leon Pic en 08 de Octubre de 2007, 18:28:02
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.  :-/ :-/
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: maunix en 09 de Octubre de 2007, 08:12:52
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.  :-/ :-/

Ten presente que pasarte de CCS al C18 o Hitech puede llegar a ser una pesadilla, son bastante diferentes.

Los cambios entre C18 y Hitech no lo son tanto.

Si tu objetivo final es usar C18/C30 o Hitech te recomiendo que comiences directamente por ellos.  Al principio te será más duro pero lo aprendido no lo deberás descartar.

Título: Re: Ventajas y desventajas de los compiladores
Publicado por: Leon Pic en 09 de Octubre de 2007, 08:48:38
Hola maunix. Mi objetivo no era aprender C18 y/o Hitech, pero viendo lo comentado, tendré que aprenderlo. 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é.

Saludos.  :-/ :-/
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: maunix en 10 de Octubre de 2007, 11:03:39
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:

A fin de cuentas no me enriquezco si usas C18, hitech o ccs.  :D :D

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é.

Bien, pensé que recién empezabas, de allí mi sugerencia.  8)
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: Leon Pic en 10 de Octubre de 2007, 14:20:39
Hola maunix. Jamás me sentí obligado por tí a empezar a trabajar con C18 y/o Hitech.

A fin de cuentas no me enriquezco si usas C18, hitech o ccs.  :D :D

Que lástima ¿No?  :D :D

Saludos.  :-/ :-/
Título: Re: Ventajas y desventajas de los compiladores
Publicado por: MGLSOFT en 11 de Octubre de 2007, 08:33:48
Hay realmente buenas alternativas para el CCS, sin tener que ir a PIC18 o Hitech, que como dice Maunix realmente son traumaticos para alguien que sale del CCS.

Una de ellas es el MikroC, que tambien tiene librerias muy potentes y es mas ANSI que el CCS, y a precios bastante accesibles!! :-/