TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: velaki en 14 de Abril de 2007, 17:08:55

Título: ASM ó C++ EN PIC
Publicado por: velaki en 14 de Abril de 2007, 17:08:55
SALUDOS COMPAÑEROS, Resulta que de nuevo estoy dandole caña al mundillo de los pics, hace tiempo utilizaba el ASM, y bueno, aunque al principio me costó un poco pillarlo, al final, hice mis pinitos, pero ahora tras mirar en varios foros, veo que normalmente la gente usa C o C++ (aunque no se exactamente la diferencia entre ambos) se que el lenguaje C es mas conocido y para micros mas grandes como el 8051 de intel, es mas manejable, pues bien, akimi  duda, SIGO CON ASM, O MEJOR ME PASO A C o C++?? , Espero que me recomendeis uno de los dos (C o C++) o si es mejor seguir con ASM, aunque luego me resulte mas complicado.  En principio me gustaria aprender para hacer mis proyectitos y mis inventillos, THANKS  FOR ALL.....
Título: Re: ASM ó C++ EN PIC
Publicado por: manuelroin24 en 14 de Abril de 2007, 17:15:12
Un fanático del Assembler te recomienda que te pases al C pero q no dejes de lado el assembler ya que siempre desde C puedes ingresar pequeñas porciones de Código en Assembler cosa q no se puede cuando trabajas directamente en Assembler

Otra cosa, el C te servira para afrontar los pic de gama alta como los 18f y los DSPIC asi q no hay mas que decir , suerte!!!
Título: Re: ASM ó C++ EN PIC
Publicado por: Mario87 en 14 de Abril de 2007, 21:12:20
Siempre es bueno tener unas nociones de ASM ya que además de poder acoplarlo en C a veces puede ser necesario para optimizar o tener un control más preciso.
De todas maneras pienso que es mejor adaptarse casi por completo al C, con apenas unas pocas líneas de código consigues hacer lo mismo que en ensamblador, y además es mucho más cercano al programador, y dispone de librerias para que manejar periféricos sea coser y cantar :mrgreen:
Además, si tienes un programa excesivamente largo (cosa que pocas veces habrá, por otra parte) se hace muchísimo mas sencillo de localizar un problema.
Título: Re: ASM ó C++ EN PIC
Publicado por: vszener en 15 de Abril de 2007, 09:19:50
Te recomiendo que te pases al C, depende del compilador que uses, verás que la forma de actuar con los registros en C y ASM no es tan diferente, eso sí, el C te permite hacer bucles en un par de lineas.

El ASM es bueno para cosas precias, aunque el C mi opinión personal, es que con el C ya se puede hacer 'casi' de todo.


Suerte!!! ;)
Título: Re: ASM ó C++ EN PIC
Publicado por: deox en 19 de Abril de 2007, 14:41:44
Esta claro para todos que la diferencia entre C y ASM es muy grande, si tenes un pic chico y pensas hacer un programa muy basico usar ASM es considerable, ahora que si tenes un PIC grande con mucha memoria y tu programa es muy complejo, yo diria que los puntos a favor del C son muchos.
Estan quienes defienden el ASM y el C, incluso el basic, pero lo cierto es que la madurez de los compiladores C ha alcanzado un punto tal que hoy en dia incluso los pics mas chicos se pueden programar en C sin problemas.
Título: Re: ASM ó C++ EN PIC
Publicado por: maunix en 19 de Abril de 2007, 16:29:19
Estan quienes defienden el ASM y el C

El que defienda el ASSEMBLER vs el C, lo hará en un contexto determinado.  Me ha tocado hacer alguna que otra aplicación en tiempo real y de bajo costo, que no imagino haberla hecho en C porque en assembler ocupaba la totalidad de la memoria de programa del micro en cuestión. 

Hubo solo una persona que he conocido en este foro que defendía al ASM vs el C en todos los casos... aunque sus argumentos se quedaban vacíos cuando alguien le mostraba otro punto de vista... pero bueno, hay para todos los gustos.
Título: Re: ASM ó C++ EN PIC
Publicado por: pollastre en 22 de Abril de 2007, 15:30:08
Personalmente, yo soy un enamorado del assembler y del control preciso y absoluto que proporciona sobre el PIC. Para mí, cosas como saber en qué preciso momento un flanco va a subir, de forma tal que tengo que echar una instrucción dos ciclos más alante o más atrás para que funcione correctamente.... para mí, eso no tiene precio  :mrgreen:

Eso sí, reconozco que sólo he trabajado con la familia 16X. Dicen por ahí que la 18 ya es suficientemente complicada como para no merecer la pena trabajarla en assembler (???). Yo supongo que lo que en realidad quieren decir es que "tienen suficiente RAM como para poder permitirte el lujo de NO usar el assembler".

Para mí, y esto es sólo una opinión personal.... el hecho de irnos a un lenguaje de alto nivel como C/C++ con los PIC, es algo así como quitarle la "magia" al asunto, como degradarlo a algo mundano. Para alto nivel ya tenemos miles de situaciones cotidianas, desde programar en un PC, pasando por PHP/ASP... hoy en día, donde incluso al programador experimentado le son escondidos todos los detalles de un sistema operativo moderno, los PIC proporcionan una oportunidad única de volver a los buenos tiempos de la década de los 80, cuando los hombres eran hombres y no existía tal cosa como eso del  "alto nivel"  :mrgreen:

En fin, no sé, como decía el torero : "tiene que haber gente pa tó"  :mrgreen:
Título: Re: ASM ó C++ EN PIC
Publicado por: maunix en 23 de Abril de 2007, 07:39:35
pollastre, está muy ligado al tipo de aplicaciones que desarrolles.   Como dije antes, si solo controlarás pulsos y contaras cosas, y la lógica del código está bastante contenida, el assembler no tiene precio (y aquí tienes a otro fan del assembler).

De todas formas, el desarrollo de "otro tipo" de aplicaciones me obligó a irme al C.

Te doy un ejemplo, fíjate como hacer una conexión UDP o un server TCP todo hecho en assembler... controlando un integrado como un RTL8019AS o similar.  Lo mismo el uso del USB todo en assembler... con encima algunos cambios "sobre la marcha" en el protocolo de alto nivel que uses! Puedes estar meses en assembler.  Y te habla alguien que hace uso de stack por software en assembler, paso de parámetros a subrutinas en assembler, uso de subrutinas reubicables en assembler y demás yerbas.  osea, no hago todo con equ y esas cosas, y aún así te digo que lleva "mucho" tiempo hacerlo en assembler y además que no se justifica, para esos casos, claro está.

Otro ejemplo, cuando tienes un PID que debes ajustar, sus constantes y fórmula de cálculo cambian frecuentemente, te imaginas haciendo todo eso en assembler? aún teniendo rutinas para multiplicar, dividir y operar en generar con números float?

Repito, a mi entender, todo está en el tipo de aplicaciones que desarrolles...

Título: Re: ASM ó C++ EN PIC
Publicado por: Expo3871 en 23 de Abril de 2007, 11:43:42
Saludos, te escribo por que comentaste algo de un server TCP controlando un integrado RTL8019AS para ver si tenias alguna informacion buena sobre eso que me puedas pasar ya que me ha tocado desarrollar un proyecto relacionado con eso...
Título: Re: ASM ó C++ EN PIC
Publicado por: maunix en 23 de Abril de 2007, 12:10:17
Saludos, te escribo por que comentaste algo de un server TCP controlando un integrado RTL8019AS para ver si tenias alguna informacion buena sobre eso que me puedas pasar ya que me ha tocado desarrollar un proyecto relacionado con eso...

El stack tcp/ip de microchip versa sobre eso.

Título: Re: ASM ó C++ EN PIC
Publicado por: Nocturno en 24 de Abril de 2007, 15:23:22
Es un viejo debate en el foro: ¿bajo nivel o alto nivel, ser o no ser?

Obviamente si los argumentos son velocidad de proceso y tamaño de programa gana el ASM, como de sobra están argumentado aquí algunos compañeros.

Si en el otro lado de la balanza poner parámetros como Tiempo de desarrollo, dificultad de desarrollo o incluso "lo hago en C porque no tengo ni pajolera idea de ASM y mi neurona sólo me da para aprender C mientras me tomo un ron", quizás esté más equilibrada o incluso se vuelque a este lado.