Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Cuidado, parrafada a continuación.
Hola:
Como muchos sabréis, soy un usuario de AVR que reivindica la calidad de estos micros. Aunque no soy muy 'batallador' ni defiendo de manera enconada, a ciegas dichos micros, sí que reconozco que les tengo cierto aprecio.
Pero hasta la fecha, la mayoría de argumentos eran más bien vagos, subjetivos o de peso relativo, con poca argumentación técnica.
Y eso, señores, parece una riña de patio de colegio.
Por eso, he decidido preparar una serie de argumentos explicados de los puntos fuertes, según mi opinion, de los AVR respecto de otros microcontroladores. En el fondo, en realidad, no es más que una comparativa con los pros y contras de diferentes arquitecturas, no sólo de AVR y PIC.
Y como pretendo ser imparcial, expongo sólo lo que creo que puedo explicar, es decir, las cosas que yo se. Por tanto, después de buscar cómo demostrar las razones por las cuales prefiero a los AVR, creo que no hay nada como un ejemplo.
Así, he escrito un pequeño programa en C (GNUGCC, gratuito) que he compilado, y presentado en ensamblador (con comentarios simples), para ilustrar cómo funciona un AVR por dentro. O mejor dicho, cuales son los argumentos de un sistema multiacumulador.
Pero para estar en igualdad de condiciones, pediría por favor, que alguien que conozca bien los PIC, y los programe tanto en C como en ASM, que hiciese el mismo programa para algunos de los PIC. Como hay diferentes famílias que no son completamente iguales de core (a diferencia de los AVR), quizás sea mejor que haga varios.
Agradecería que fuese lo más optimizado (sin entrar en trucos excesivamente retorcidos), claro y comentado posible.
De esta manera, podríamos comparar en igualdad de condiciones, las prestaciones de cada uno en determinados puntos.
¿Alguien acepta el reto?
PS: No se si este es el foro adecuado, así que por favor, los moderadores lo pongan en el correspondiente.
Hombre... hablar de un programa en C es hablar de cuan bueno es un compilador, y la realidad es que los compiladores comerciales están más avanzados que los de GNU.
También cabe analizar otro tipo de factores, como son las herramientas libres/gratuitas, la comunidad de usuarios, el soporte por parte de la empresa, la facilidad de programación y adquisición, precios, etc...
Un saludo!
Bueno, mi intención no es sólo mostrar la capacidad de un compilador gratuito para los ATmega frente a otros.
Más bien, mi intención era comparar los ensamblados, y demostrar que la arquitectura multiacumulador evita un montón enorme de trasiegos entre el acumulador y la RAM, además de evitar el problema de tener la RAM en bancos.
Si te fijas en el ensamblado que pongo, verás que para sumar 256 bytes, sólo hace 256 accesos de lectura a RAM. Prueba a hacer lo mismo con un cualquier micro con un sólo acumulador (como es el caso de los PIC) con menos de 512 accesos de lectura y 510 accesos de escritura.
La idea general, es comparar cómo hace un mismo proceso sencillo una arquitectura y otra, para poder ver las ventajas e inconvenientes de cada una. Para tal efecto, no hay nada como el ensamblador.
Si añadimos que el código en ensamblador ha sido generado con facilidad con un compilador en C gratuito, entonces sólo estoy añadiendo algunos puntos más, aunque secundarios.
De todas maneras, que conste que estoy abierto a discusiones, y que en ningún momento pienso rebatir tu punto sobre lo bueno de un compilador (aunque últimamente no hay tanta diferencia en los compiladores para AVR), no los temas de facilidad de adquisición, soporte, precios, etc.
Conste que no me inclino ni por uno ni por otro, pues uso ambos además de los Freescale y todos me parecen buenos, quizás no conozca a ninguno tan a fondo como para poder hablar sobre ventajas e inconvenientes de cada uno, simplemente hacía un comentarío para el que se anime a opinar 😉
Saludos!
Para serte sincero, aunque reivindique los AVR, para según que tareas prefiero a unos o a otros, que en estos temas no me caso.
Además, una de las razones más esgrimidas, que no es mala, pero hay que relativizarla un poco, es que´más vale malo conocido que bueno por conocer'. Pero en un mundo donde en pocos años cambia tanto la cosa, conviene aplicar el 'renovarse (de vez en cuando) o morir'. Y como yo conozco los AVR, pues eso.
Claro que para renovarme, prefiero algo tan común como los ARM, que también son multiacumulador.
Además, por 'buenos' no me refiero a calidad, que se presupone que todos cumplen un mínimo.