TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: MRGSoft en 14 de Noviembre de 2005, 01:59:00
-
Me podrías decir que lenguaje genera un código más corto y más rapido de ejecutar, el Basic o el C, ya que imagino que ganara el Asembler.
Un saludo.
-
Hola:
Dependiendo para la aplicacion que la desees, pero el mas rapido y mas amigable es el Basic
-
"amigable" ¬¬
Ami me gusta C
-
ASM para siempre
-
Me quedo con el C
-
Hombre lo mejor siempre asembler. Es el de más bajo nivel. Pero hacer cosas muy complejas es más dificil.
Pero entre basic y c desde luego para pic el C. No conozco las interioridades de ambos compiladores pero C es de más bajo nivel que basic y por tanto más proximo al lenguaje del propio micro por lo que su código siempre será más corto. Pero eso habría que comprobarlo.
Si te da lo mismo usa c.
1 saludo
-
Lo mejor es que mire un poco de todos y te quedes con el que mas te guste ati ...
-
Muchas gracias por vuestras respuestas, normalmente programo en Basic pero genera un código muy extenso, probare con el C, ya que al asembler no acabo de cogerle el truquillo.
Un saludo.
-
C y Basic son lenguajes muy utiles para escribir rutinas q son "estandar" es decir rutinas q manejan tareas generales o especificas hasta cierto grado, el ASM es un lenguaje mas especifico que es util para trabajar con tareas que rekieran gran precision o un control muy estricto sobre todas las operaciones y registros del PIC. Claro esta que el ASM tiene la ventaja de generar un codigo mucho mas pequeno dejando mas espacio para programacion adicional, pero, este ahorro de espacio se traduce como mas tiempo en el PC escribiendo codigo. Mientras, C y Basic son leguajes intuitivos, por ejemplo, para asignar un valor a una variable en C y Basic solo escribiriamos AB = 1, mientras en ASM seria movlw 1 movwf AB. Como es claro, C y Basic poseen versatilidad porq su escritura es mas familiar que las instrucciones en ASM. Sin embargo, C y Basic poseen la desventaja de ser lenguajes que ocupan un valor bastante grande de memoria de programa (con su contra parte de menos tiempo frente al PC).
-
Escrito originalmente por fenix_jn
C y Basic poseen la desventaja de ser lenguajes que ocupan un valor bastante grande de memoria de programa (con su contra parte de menos tiempo frente al PC).
Todo es cierto, ASM es mucho mas preciso sobre todo para un control de tiempo, pero tb lo es, que los compiladores cada vez estan más depurados y no derrochan tanta memoria...
-
Hola:
Tambien es algo justificable los conpiladores Basic y C para micros mas potentes y como los de la serie 18, no? tienen mas memoria y el codigo jenerado se justifica un poco, o estoy mal?
-
bueno tienen razon, el compilador de C y PBP lo probe una sola vez para ver la efectividad de su codigo y bueno ocupaba casi 1.5 veces lo que ocupaba el mismo codigo en ASM y eso fue hace ya como 6 o 7 meses, es muy probable que hayan optimizado estos compiladores para generar codigo mas compacto.
Y la serie 18, es verdad, para algo tan potente ASM podria funcionar pero es algo tedioso y los recursos que posee este chip hacen q la programacion (en tamaño) pueda ser dejada a un lado, pero aun asi, elementos de precision y control aun usan ASM.
-
Hola:
Una consulta ¿A que te referís con elementos de presición y control? ¿Podés dar un ejemplo de ellos?
Saludos
Jorge
-
Bueno la ultima vez que lei el manual de C decia q no se pueden generar retardos menores a 24µS mientras ese mismo tiempo es facil de generar en ASM... dond se puede utilizar un retardo tan insignificante? bueno, podemos trabajar con generacion de pulsos o reloj, señalizacion etc. Ahora esta nota la hago con un manual que lei hace 6 o 7 meses, no se si la gente de CCS ha mejorado este tiempo.
-
Hola:
No he hecho pruebas de generar retardos tan cortos en C,pero en teoría existe una instrucción delay_us que puede tener valor 0 hasta....-
Cuando son aplicaciones realmente "serias" ,quizas realizadas por grandes empresas ,normalmente se programan en C ,ya sea para pic o motorola u otro fabricante de micros. No imagino una RTU programada en asm.-
No quiero decir con esto que el asm no sirva ,pero me parece que hay que ver otros lenguajes ,aunque hay que tener conocimientos de asm para ver como se comporta el micro.-
En mi caso particular uso basic y no me ha interesado mucho el consumo de memoria ,ya que mayormente no he tenido problemas, incluso habiendo escrito codigo bastante extenso.-
Por supuesto que el lenguaje que uno elige es una lucha tal como river-boca o Ford-Chevrolet.-
Al fin uno es el que decide cual le gusta ,pero insisto, cuando son aplicaciones serias o complejas ,casi seguro que en C.-
Saludos
Jorge
-
A ver , dar� mi opinion
Escrito originalmente por MRGSoft
Me podr�as decir que lenguaje genera un c�digo m�s corto y m�s rapido de ejecutar, el Basic o el C, ya que imagino que ganara el Asembler.
Un saludo.
El assembly, en cualquier microprocesador...
Aclaro que no se dice assembler, Assembler es el programa que compila el assembly para hacerlo c�digo m�quina.
Escrito originalmente por LordLafebre
Hola: Dependiendo para la aplicacion que la desees, pero el mas rapido y mas amigable es el Basic
Me parece que preguntaron cual genera el c�digo mas corto y m�s rapido de ejecutar y no que lenguaje es el m�s f�cil para comenzar a programar.
Escrito originalmente por radon
"amigable" �� Ami me gusta C
Idem concepto anterior...
Escrito originalmente por fenix_jn
ASM para siempre
Exacto!.
Escrito originalmente por radon
Me quedo con el C
Lo mejor es que mire un poco de todos y te quedes con el que mas te guste ati
Je, nuevamente fuera de contexto de la pregunta original.
Creo que se hizo muy offtopic , lo cual he notado es comun en el foro.
Tal vez si nos concentraramos mas en la preguunta original podr�amos ayudarnos m�s mutuamente.
Es como preguntar sobre leds, y que te terminen diciendo que uses un monitor de PC.
-
Escrito originalmente por maunix
... original podr�amos ayudarnos m�s mutuamente.

Me parece una buena crítica, estoy de acuerdo ... Permiteme ami otra (sin malos rollos), si configuras el teclado en condiciones seguramente nos cueste menos leerte
-
Hola
yo tambien me uno al hilo... estan muy interesantes los puntos de vista de todos, personalemente uso los 3, aunque como dicen varios prefiero el Assembler. Aca les expongo mi punto de vista:
Assembler: Es el lenguaje universal de programacion de micros, permite optimizar el codigo de manera que no usar mas memoria que la necesaria. Para aplicaciones grandes se hace tedioso, por lo que es necesario en muchos casos migrar a un lenguaje de alto nivel. Por otro lado te permite conocer como funcionan los registros del micro, de manera que siempre vas a saber donde estas parado...
Basic: Es un lenguaje de alto nivel, super amigable y sencillo de programar, para aplicaciones simples es muy bueno, pues puedes trabajar los registros directamente... pero para aplicaciones mas exactas y complejas tiene deficiencias, como por ejemplo: no trabaja en punto flotante (numeros con decimales o a menos que uses el Proton), el uso de las interrupciones no es optimo recien las atiende cuando termina de hacer el ultimo comando (yo lo resolvi haciendo mis interrupciones en Assembler), es dificil hacer funciones o estructuras para determinadas aplicaciones... Por otro lado, el codigo generado no es muy grande, asi que es bueno para determinadas aplicaciones...
C: Es un lenguaje de alto nivel, amigable y no tan sencillo de programar, pues hay que ser estricto en los algoritmos, lo bueno es que para aplicaciones grandes, tiene una base muy solida, por lo que me parece el mejor para este tipo de aplicaciones. Para aplicaciones pequeñas usa mas memoria que otros lenguajes, pues siempre graba la mayoria de sus algoritmos en el micro y muchas veces ni las usamos ( cabe recalcar que es cuando usas librerias).Con C puedes hacer funciones, estructuras, etc... ademas es el lenguaje con el que se soportan todos los programas en nuestras PC"s. Aun sigo aprendiendo a usarlo y me parece excelente.
No se si concordare con todos, pero es mi punto de vista...
Un abrazo a todos
-
Creo q al final el lenguaje q se desee usar depende de los gustos personales de cada kien, a mi me gusta ASM y he desarrollado aplicaciones SERIAS y COMPLEJAS usandolo y bueno es lo q mejor domino asi q me siento comodo trabajando con este lenguaje. Si cada kien le gusta programar en algo particular entonces q lo haga simplemente. Defiendo al ASM de la misma forma que q algunos dfiendn al Basic y al C. Al autor del tema: Cada lenguaje tiene sus pro y sus contras, una idea seria que leas un poco sobre ellos, trates de asimilar su codigo, y al final pienses acerca de cual t parecio mas comodo, rapido y facil de entender. Dependiendo de tus conclusiones entonces decide por cual vas a escribir codigo y entrenate en ese lenguaje. Suerte y felices diseños!
-
Escrito originalmente por Artifox
Hola
yo tambien me uno al hilo... estan muy interesantes los puntos de vista de todos, personalemente uso los 3, aunque como dicen varios prefiero el Assembler. Aca les expongo mi punto de vista:
Assembler: Es el lenguaje universal de programacion de micros, permite optimizar el codigo de manera que no usar mas memoria que la necesaria. Para aplicaciones grandes se hace tedioso, por lo que es necesario en muchos casos migrar a un lenguaje de alto nivel. Por otro lado te permite conocer como funcionan los registros del micro, de manera que siempre vas a saber donde estas parado...
Un abrazo a todos 
Gracias por unirte al hilo, realmente es bueno tener la opinion de todos.
Quisiera hacer una aclaracion. El assembly no es un lenguaje universal de programacion. El assembly es propietario de cada microcontrolador y/o microprocesador.
Muchos upgrades de los microprocesadores conllevan cambios precisamente el assembly. Cada microprocesador Pentium tiene mas instrucciones que su predecesor. Estas nuevas instrucciones no son compatibles en microprocesadores mas viejos, aunque sean de la misma marca.
Universal son los lenguajes de alto nivel como el C, Pascal, Basic. El assembly no lo es.
-
Escrito originalmente por radon
Escrito originalmente por maunix
... original podr�amos ayudarnos m�s mutuamente.

Me parece una buena crítica, estoy de acuerdo ... Permiteme ami otra (sin malos rollos), si configuras el teclado en condiciones seguramente nos cueste menos leerte 
Sabes una cosa, en mi pc me salen bien las letras y caracteres y acentos.
Tengo bien configurado mi teclado, sera algun problema de configuracion de mi perfil en el foro?
Tengo otros mensajes que puse y sin errores.
He notado que al "editar" un mensaje me aparecen esos simbolos raros en los acentos, pero si escribo todo de primera vez los acentos aparecen bien.
Casualmente ese mensaje me lo reboto miarroba por error en la base de datos con un mensaje que reintente nuevamente en 5 minutos (error bastante recurrente) y quedo algo posteado que no me gusto como habia quedado (las citas estaban mal acotadas) asi que edite el mensaje.
Saludos 
-
Escrito originalmente por fenix_jn
Creo q al final el lenguaje q se desee usar depende de los gustos personales de cada kien, a mi me gusta ASM y he desarrollado aplicaciones SERIAS y COMPLEJAS usandolo y bueno es lo q mejor domino asi q me siento comodo trabajando con este lenguaje. Si cada kien le gusta programar en algo particular entonces q lo haga simplemente. Defiendo al ASM de la misma forma que q algunos dfiendn al Basic y al C. Al autor del tema: Cada lenguaje tiene sus pro y sus contras, una idea seria que leas un poco sobre ellos, trates de asimilar su codigo, y al final pienses acerca de cual t parecio mas comodo, rapido y facil de entender. Dependiendo de tus conclusiones entonces decide por cual vas a escribir codigo y entrenate en ese lenguaje. Suerte y felices diseños!
En los Pic, programo en assembly y en C (con los PIC18).
También he hecho programas extensos con uno y otro lenguaje para los microcontroladores.
Creo que las ventajas del assembly es que es muy directo y si se conoce bien al microcontrolador y si se tienen bastantes rutinas ya armadas es muy rápido de usar.
Ahora bien, cuando se manejan extensos datos o cuando la lógica es algo confusa y que requiere cambios y ajustes frecuentes, o cuando se opera con numeros float, el C me resulta mucho más práctico y rápido a la hora de implementar una aplicación.
Entre un PIC16 y un PIC18 en muchos casos solo hay 1 dolar de diferencia en su costo, y realmente las ventajas de los 18 son innumerables al lado de los ya viejitos PIC16...
Mis nuevas aplicaciones son una mezcla del C y del Assembly, y considero que esta (por ahora) es mi mejor opción.
Pero insisto, el posteador original, quería saber cual es el lenguaje más veloz, y este es sin dudas el assembly SIEMPRE.
-
UNA GRANDISIMA PREGUNTA.......

BIEN MIRA YO PROGRAMO EN ASM..
LE CUENTO QUE HACE POCO TERMINE UN PROGRAMA CON 3800 LINEAS DE CODIGO EN ASM UTILIZANDO EL 16F873 4K DE MEMORIA....![Noche Noche]()
PASA LO SIGUIENTE EN ASM ME TOCO PAGINAR EL PROGRAMA Y TRABAJAR CON EL PCL Y EL PCLATH ......AHORA MI PREGUNTA: EN LENGUAGE C TENDRIA QUE HACER LO MISMO .... EJM UN PROGRAMA MUY EXTENSO.... 
GRACIAS
-
Escrito originalmente por hernando2999
UNA GRANDISIMA PREGUNTA.......
BIEN MIRA YO PROGRAMO EN ASM..
LE CUENTO QUE HACE POCO TERMINE UN PROGRAMA CON 3800 LINEAS DE CODIGO EN ASM UTILIZANDO EL 16F873 4K DE MEMORIA....![Noche Noche]()
PASA LO SIGUIENTE EN ASM ME TOCO PAGINAR EL PROGRAMA Y TRABAJAR CON EL PCL Y EL PCLATH ......AHORA MI PREGUNTA: EN LENGUAGE C TENDRIA QUE HACER LO MISMO .... EJM UN PROGRAMA MUY EXTENSO.... 
GRACIAS
NO, en C no hace falta paginar nada, ni memoria de datos ni de programa.
El punto es que si tu programa ocupó casi 4K en assembly... en C para un PIC16 probablemente ocupe 12K o mas! Si, así de triste es la vida, así que tal vez tu software no tenga "traducción" al C y que encima entre en un PIC16...
Para eso están los PIC18.
De todas formas, tal vez no es que tu software tenga que ser tan largo sino que tal vez repites muchas cosas y en ese punto en C es más facil que un novato pueda "reutilizar" código ya que es mas intuitivo el uso de funciones den C que el de subrutinas con parámetros en Assembly.
Saludos