TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: meledu en 29 de Septiembre de 2010, 18:58:16
-
Hola amigos resulta que empeze a programar en C y me he dado cuenta que al programar algo tan simple como un HOLA MUNDO en un lcd , el compilador CCS usa casi el doble que el PSI que uasaba anteriormente para programar pic , nose pporque esto ya que seria contradictorio, yo pensaba que al programar en C el uso del micro seria optimo,he leido en varios post que el CCs es solo para sacar de apuro y cosas censillas porque tiene mucho bugs, entonces me pregunto ,que ventajas obtengo al programar en C , pasara lo mismo si pruevo el PICC de Hi Tech,no he podido provar este ultimo [porqe no he encontrado algun libro en español ,
Ojala me puedan responder cosa que no me sigo sumergiendo en este compilador que al final no me dara buenos resultados.
-
Todo depende de como se hagan las librerías, flex LCD te permite usar el pin que se te ocurra, en las posiciones que quieras, y seguramente eso la librería de Basic no lo permite. Y como trabaja cada pin individualmente necesita de más instrucciones para testear el bit de la variable y cargarlo en el pin correspondiente. Y más si usas printf, una función diseñada para formateo de variables.
Si buscas aprovechar al máximo los recursos del PIC, C no es el lenguaje, para ello está asm, pero claro no es lo mismo. Con assembler lograrías la mayor velocidad en la ejecución de una tarea, por su puesto menos tamaño del código. Pero hacer un proyecto un poco complejo puede llevarte mucho tiempo, y ni pensar si en algun momento hay que modificar algo.
En cambio en C, es totalmente portable, una rutina con mínimos cambios lo puedes usar en cualquier arquitectura, un PIC16F, 18F, PIC32, AVR, Freescale, ARM o hasta en una aplicación de PC. Tienes librerías de muchos periféricos u otras, modificar un proyecto puede ser bastante sencillo (También depende del programador)
Pronto te darás cuenta de tantas otras ventajas (y desventajas, claro!) que tiene.
Saludos!
-
Que desventajas tiene con respecto al basic?? lo pregunto porque yo ya empezaba a dominarlo y bueno decidi cambiarme ,creo que el tamaño del codigo se debe al uso de la libreria , justo como tu me dices ,he tratado de reducir una libreria que encontre por alli y me ha servido ahora solo hay una diferencia del 30% del espacio usado, con respecto al basic, pero lo qeu si seria bueno esque huviera alguna manual de como editar las librerias segun nuestra aplicacion y de esa manera poder optimizar el codigo.
-
Si me preguntas personalmente a mi, yo basic no usé nunca, así que no puedo decirte las desventajas/ventajas.
Saludos!
-
Amigo Suky una consulta, me recomiendas que siga aprendiendo CCS (con todos sus bugs, segun leí ) o seria mejor que me cambie a PICC de hitech, esque no se pero pienso que al se de microchip deberia ser mejor y supongo las librerias deberian estar mejor diseñadas.
Por lo pronto estoy tratando de crecer con C de modo que una vez lo domine, hacer los programas que antes hacia en basic y así poder comparar.
Tambien puedo decir que el compilador picbasic del PSI esta muy bueno ya que hace un buen uso de la memoria puesto que lo he podido comparar con CCS almenos, y yo que pensaba que al programar en este lenguaje el codigo me quedaria mas comprimido, ahora solo espero que almenos los tiempos se puedan manejar mejor.
Gracias amigo y bueno disculpa tantas dudas acerca del tema, solo que como te dije ya me estaba volviendo bueno con esto del basic y ahora estoy empezando otra vez.
-
mmm... En los lenguajes de alto nivel es complicado tener pleno control sobre los tiempos en que se ejecutan cada rutina, cuando se precisa tener un control así, si o si hay que recurrir al assembler.
Respecto al compilador, CCS tiene mucha información y en español, muchos ejemplos, librerías de todo tipo, por eso muchos desarrollan en él. Además el código que genera es bastante eficiente. Creo que lo esencial es dominar bien el lenguaje C, después pasar a otros copiladores es más sencillo, solo hay que aprender como trabaja con las particularidades del hardware.
Saludos!