TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: squallmx en 25 de Marzo de 2005, 11:55:00

Título: Cual es el mejor lenguaje
Publicado por: squallmx en 25 de Marzo de 2005, 11:55:00
Hola a todos, mi pregunta es: para uds cual es el mejor lenguaje para programar los pics y porque, yo uso el ensamblador yo se que es muy antiguo pero de lo que e visto nadie le gana, ya que al usar c genera mucho codigo que con ensamblador te lo resuelve en 4 o 5 lineas de codigo y el c te genera como 10 asi que al hacer programas muy grandes tendrias que emigrar a un pic de 4k y con ensamblador de 2k entonces realmente que lenguaje combiene mas. De antemano muchas gracias, a ya que estamos en esto que libro de pics avanzados o intermedios me recomendarian porque el ra-ma y los de angulo son muy basicos muy buenos pero muy basicos.
Título: RE: Cual es el mejor lenguaje
Publicado por: Nocturno en 25 de Marzo de 2005, 12:06:00
Creo que te vendría bien leer este debate:
http://miarroba.com/foros/ver.php?foroid=6510&temaid=113728
Título: RE: Cual es el mejor lenguaje
Publicado por: Micom en 25 de Marzo de 2005, 21:48:00
De hecho el esamblador es el mejor lenguaje que existe ya que puedes optimizar tus programas controlando con suma presicion los tiempos de ejecucion,  y para los píc de gama baja y mediana  es el mas adecuado por contar estos con poca memoria y pocas instrucciones que aprender (RISC), pero sucede que los pics de gama alta (como los 18f y los DS )incluyen ya muchas instrucciones (CISC) y se hace muy dificil escribir programas en asambler, claro que si tu quieres aprender el asambler para los pics de gama alta adelante, pero si quieres ver resultados pronto mejor aprende el lenguaje C ,que es el mas recomendado para esta gama alta aunque existen otros lenguajes el C resulta ser el mas comodo. Bueno espero haberte aclarado el panorama. Hasta pronto   Flash
Título: RE: Cual es el mejor lenguaje
Publicado por: squallmx en 25 de Marzo de 2005, 22:58:00
Muchas gracias micom y nocturno, y ya vi las encuestas parece que la tendencia si va para C pero el ensamblador realmente es como se dice mucho mas fino, y si quiero meterme a los pic18 e visto algunos datasheets y le pegan a los AVR que tambien llegue a programar pues creo que es inevitable empesare a ver como se programa en C muchas gracias
Título: RE: Cual es el mejor lenguaje
Publicado por: mirazulado en 26 de Marzo de 2005, 08:53:00
Tene encuenta que el C es un lenguaje estandar por lo que con algunas pequeñas modificaciones deberia compilar en cualquier compilador de cualquier CPU..
Claro que no siempre son tan pequeñas las modificaciones que se hacen para que compilen en diferentes marcas, pero basicamente la sintaxis del C es estandar por lo que un programa "sin funciones especificas" de cada controlador compila tanto en un compilador para PIC como para Atmel o Motorola, ni hablar que si estas trabajando con PIC en CCS puedes transportar tu programa en casi todo la familia PIC sin importar el core y con solo algunas modificaciones de memoria, salidas o dispositivos (siempre que den los recursos minimos)..
Seguro que esto ofuscara a mas de uno que intento migrar de PIC a quien sabe que otro controlador y no pudo y me esta odiando por el comentario, pero estemos de acuerdo que migrar de marca o core si uno solo programa en asembler es una tarea mas que compleja.
un abrazo Mariano...
Título: RE: Cual es el mejor lenguaje
Publicado por: migsantiago en 26 de Marzo de 2005, 12:00:00
Pues yo voto por C.

Y sí, si quieres pasar código de un PIC a otro, nadamás le cambias el include y ya.

Además hay cosas que estaría de flojera programar en ensamblador, por ejemplo: protocolo I2C o RS232. En C ya hay instrucciones hechas para emularlos sin que el PIC traiga módulo I2C o RS232.
Título: RE: Cual es el mejor lenguaje
Publicado por: squallmx en 26 de Marzo de 2005, 18:57:00
a muchas gracias a todos, migs y mir no sabia que C ya trajera esas instrucciones conrazon habia leido otros comentarios que hicieran la usart por C o el I2C etc, si hacer un protocolo para transmitir datos de un pic a otro pic que no tenga su I2C es pesado en ensamblador ya me imagino una usart o algo mas complejo creo que definitivamente voy a empesar a pegarle al C, y como e leido tambien puedes meter codigo ensamblador en C pues ya esta, ahora solo falta buscar el compilador en C y algo de info muchas gracias
Título: RE: Cual es el mejor lenguaje
Publicado por: fer_zone en 26 de Marzo de 2005, 19:05:00
Veo que todos tiran por el C, y si realmente es un lenguaje maravillozo, pero creo que si hablamos estrictamente de lenguaje, no hay nada que supere a un buen programa en ensamblador.

Por eso cuando se habla de lenguaje C, no se puede comparar, solo se puede debatir sobre cúal es el mejor "compilador".

En resumen, creo que el C permite una rapidez importante (a costa de memoria), pero no puede nunca reemplazar al ensamblador.

El debate debe ser sobre el compilador y no sobre el lenguaje.
Título: RE: Cual es el mejor lenguaje
Publicado por: Nocturno en 27 de Marzo de 2005, 00:24:00
Uff, Fer_zone, si hacemos caso de tus argumentos no podríamos debatir acerca de los distintos lenguajes, porque todos son compiladores que acaban en ensamblador.
Está claro que al final, el PIC lo único que entiende es el lenguaje binario, que es conversión directa desde el ensamblador, pero parece normal que a las distintas versiones de C, de Basic, de Pascal o hasta de Niple podamos llamarles "lenguajes de programación" sin menoscabo de que finalmente tengan que pasar por un compilador para traducirse en ensamblador.
Título: RE: Cual es el mejor lenguaje
Publicado por: squallmx en 27 de Marzo de 2005, 19:28:00
Gracias a todos por sus respuestas me e puesto a ver algo del CCS tengo el 3.212 ya hice unos programas sencillos y pues se ve bien lo malo es que nunca imagine la cantidad de basura que te genera en codigo ensamblador lo que tu programando en ensamblador haces con 5 lineas de codigo si es verdad que tu visualmente en c ves una linea de codigo pero ves el asm que genera y son mas de 15 lineas de codigo, mmmm eso me hace decidirme por el ensamblador aunque por cultura general voy a seguir checando C.
Gracias nuevamente a todos
Título: RE: Cual es el mejor lenguaje
Publicado por: fer_zone en 27 de Marzo de 2005, 19:32:00
Hola, parece que no has entendido "mis argumentos".

Imagina que exita un debate sobre lenguje C para PICs, en el un participante pregunta porqué no puede hacer un puntero a constante "EN C", inmediatamente alguien le dice que esta equivocado, pero otro lo defiende y como decimos por mi tierra termina ardiendo troya.

Otra suposición, existe un debate sobre el CCS, un debate sobre el C18, un debate sobre PBASIC, etc, las cosas serian diferentes.
Quizas pienses que es ridiculo, total tu tienes tanta experiencia que eso no lo necesitas, pero en un foro como este donde hay gente con mucha experincia y al mismo tiempo novatos, creo que es bueno que vean la diferencia entre hablar de lenguaje C y hablar de algun compilador basado en este.

Si entras a mirar el subforo sobre C veras que en más de un debate existen problemas por esta diferencia, ¿de qué compilador hablas? y asi por el estilo.

Espero haberte aclarado a qué me refiero con mis argumentos. (es solo un poquito de empatía por los novatos, espero que no ofenda a los expertos).
Título: RE: Cual es el mejor lenguaje
Publicado por: Nocturno en 28 de Marzo de 2005, 00:57:00
¿Pero porqué te mosqueas Fer_zone?, si no estoy más que abriendo el debate a un ámbito más amplio. Eres tú el que sólo quería llamar lenguaje al asm y denominar al resto compiladores.
Además, en el fondo estamos de acuerdo. Quizás lo que he querido decir no se ha entendido.
Y por el resto, mejor no discutir, ¿mi experiencia?, ¿empatía con los novatos?, ¿ofensa a los expertos?,..., jajaja, mejor me río.
Título: RE: Cual es el mejor lenguaje
Publicado por: tornar en 28 de Marzo de 2005, 04:52:00
Codigo:
En resumen, creo que el C permite una rapidez importante (a costa de memoria), pero no puede nunca reemplazar al ensamblador.


Pues fer_zone si lees un poco sobre los PIC"s 18F y sucesivos que han ido saliendo al mercado, veras que C ya ha reemplazado a ensamblador, y ensamblador solo se usa para partes del codigo en las que necesites trabajar a muy bajo nivel.

Utilizar solo ensamblador solo podria ser aplicable para proyectos de muy pekeña envergadura sobre PIC"s 16F o inferiores, de lo contrario creo que su uso no esta justificado.

Es como decir a los programadores de hoy en dia que trabajen en ensamblador, y hagan los juegos, programas, S.O., etc. en ensamblador pq asi ahorrarian algo de memoria y los programas correrian mas rapido en nuestros PC"s.
Título: RE: Cual es el mejor lenguaje
Publicado por: manex_1987 en 28 de Marzo de 2005, 05:56:00
Estoy totalmente de acuerdo con tornar...  hoy en dia cualquier empresa realizando sus productos en ensamblador puro y duro, está sacrificando productividad (a costa de tiempo de codigo, y ni hablemos del tiempo de depuracion...), y hoy en dia eso es algo que no se perdona, y menos por 200-300 words de codigo más que te vaya a ocupar en el micro el "pecado" de haber elegido C como (lenguaje/compilador).

Y si miramos los datas de los pics mas recientes, y de los DSPics, veremos que su arquitectura está optimizada... para C! Veis que los maxotes de microchip tambien han espabilado...

En los tiempos que corren, el ensamblador ha quedado a la altura de fines puramente didacticos... y sino, id a cien empresas electronicas de los alrededores, y apostaria a que casi todas prescindieron del ensamblador como lenguaje (excepto en casos aislados que es necesario).

salu2

PD: Jaja tornar, yo desde luego no me imagino el doom 3 escrito integramente en ensamblador... seguro que despues de ello, la compañia se asemejaria mas a un hogar de retiro de programadores...
Título: RE: Cual es el mejor lenguaje
Publicado por: fenix_jn en 28 de Marzo de 2005, 19:50:00
Yo creo q todos los lenguajes son buenos, tienen sus pro y sus contras a la hora de implementarlos, sin embargo, a pesar de q los lenguajes grandes (C y PBP) poseen una forma abreviada de una palabra q en ASM serian unas 20 o 30 lineas, pienso q una persona puede desarrollar todo un programa en el lenguaje q le guste, pero a la hora de hacer controles de precision de tiempo o controles con los pines q sean bastante especificos tiene q recurrir a ASM para complementar el programa.
Título: RE: Cual es el mejor lenguaje
Publicado por: Mazinger_bcn en 30 de Marzo de 2005, 04:59:00
Lo idoneo es utilizar el lenguaje que mejor se adapte a las necesidades del proyecto, y los conocimientos que tenga cada uno je,je je! Para mi todos los lenguajes son buenos y tienen sus pros y sus contras.

Saludos!!!

ZX81 forever!
Título: RE: Cual es el mejor lenguaje
Publicado por: fer_zone en 31 de Marzo de 2005, 11:47:00
hey, no confundan las cosas, yo no ataco al C, lo uso todo el tiempo y me parece un excelente lenguaje, solo digo que el que un lenguaje sea muy bueno (o mejor que otro) depende más del compilador que del lenguaje en si. (cosa que no ocurre con el ensamblador, ahi mi observación)

No se olviden del asunto: Cual es el mejor lenguaje, por eso solo dije que lo mejor es pensar en concepto de "mejor compilador" que de lenguaje.

Esto que digo solo lo veo aplicable a los micros, si estamos hablando de PC, no cave ninguna duda que el C es el "lenguaje" por excelencia, gracias a algo que no todos tienen en cuenta: esta regulado por normas ANSI. En los pics no siempre ocurre lo mismo y cada empresa hace lo que quiere o puede.

Programo los 18fxxx en C desde hace bastante tiempo y no se me ocurriria hacer todo un programa (de algo complejo) en ensamblador, pero siempre (sana costumbre incluso entre los programadores PC) realizo las rutinas de I/O en ensamblador.

Para finalizar, no es educado reirce de una observación sincera.