Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Hola soy nuevo por aqui asi que un saludo a todos.
Bueno el caso es que empezé a aprender C con los ATmega pero de la misma me meti con los Xmega por que tenian buenisima pinta y dicen que te acercan mas a los micros ARM (algun dia muy lejano..jajaj)
Pues despues de un tiempo veo este link " http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=103269 " en el que ponen a parir al Xmega.
Asi que queria saber si mejor aprendo con los ATmega y ya algun dia pasar a los ARM, o este es un salto demasiado grande? no se como hacer para no dar muchas vueltas hasta llegar a los ARM..
En fin, que bajon!!
Si no te interesa meterte en HW, entonces mi sincera recomendación, es meterse en C# y usar un PC, o una Beagleboard o lo que sea, pero dejar al microcontrolador lo que es del microcontrolador (es decir, tiempo real), y al PC lo que es el PC (es decir, flexibilidad de programación, facilidad de depuración, poténcia de cálculo, y nada de tiempo real).
Acabas de matar a VxWorks...
Acabas de matar a VxWorks...
Hoy en día te sale más a cuenta hacerlo con una FPGA que con un PC con VxWorks.
Volviendo al tema principal puedes empezar desde bajo nivel o desde alto nivel. Si empiezas desde bajo nivel te recomendaría:
1.- Electrónica analógica y electrónica digital básica.
3.- ASM (elige marca)
4.- C
5.- C++
6.- JAVA / C#
Si empiezas desde alto nivel es al revés.
S2
Ranganok Schahzaman
Muchas gracias a todos, me han servido de mucho los comentarios.
Bueno lo de el ASM con los Pic 16F ya hice, asi que un paso menos jejej
Tambien esta bien eso que habeis dicho de aprender bien un micro de 8 bits sencillo para
usar en los proyectos mas sencillos.
el arduino no me gusta porque es como lento el codigo no?
beamspot, el link lo lei hasta la mitad y como era del 2011, pues pense mal, gracias por el aviso
mira si me gusta saber como funcionan las cosas que empezé a hacer un miniCnc, y acabe queriendo
hacer el servocontrol de un motor jaj. Y claro ahora toca esto, asi que si que me hace falta tiempo real de ese
creo que mirare un poco el ASM de AVR (que perezaa!!) y luego un libro de C para ATmega16 y de mientras ojeando el Xmega. Otra cosa, los micros usan C y no C++, no? que no se la diferencia entre ellos pero bueno...
bueno 1 saludo
Yo tampoco tengo muy claro exactamente, a nivel de ensamblador, la diferencia entre C y C++. Sí que entiendo los conceptos de POO, y hay programadores de micros que defienden en guerra santa tanto uno como el otro. Incluso también el ASM.
Pero una cosa sí está clara: existe el C++ 'adaptado' a uC, el llamado Embedded C++. En un principio, un buen uso del msimo (eso implica conocer bien el resultado de la compilación), no dispara el uso de RAM respecto de hacer lo mismo con C, aunque queda más elevado de todas todas, y también suele ser un poco más lento al usar los punteros con asiduidad, y por tanto tener que mover de memoria a/desde registros para acceder a más memoria o datos.
La contrapartida, aka, reusabilidad y escalabilidad del código, hace que tenga muchos adeptos, especialmente si se usan micros sobrados de RAM, potencia de cálculo, y registros. Usease, ARM's. Esto, junto con los RTOSes hace que éstos últimos esten tan de moda (bueno, el bajo precio y la relación potencia/precio tambien dicen mucho).
Por cierto, cualquier procesador que use memoria virtual y caché tiene 'dificultades' para ser tiempo real, por mucho VxWorks que se utilice. FPGA es, cada vez más, el camino al RTOS real (y el más bestia).
Si el compidador fuese bueno la diferencia entre C y C++ en el ensamblado sería mínima (por no decir 0). Ahora bien a la hora de programar la diferencia es brutal:
- C es lenguaje estructurado
- C++ es lenguaje orientado a objetos
Esto implica muchísimas cosas (que no explicaré aquí: te recomiendo que busques en la web "Aprenda C++ como si estuviera en primero" y "Aprenda ANSI C como si estuviera en primero"), pero sobretodo implica un cambio de mentalidad a la hora de programar... NUNCA, y digo NUNCA, se te ocurra programar en C++ como si estuvieras en C con objetos, so pena de que algún alma caritativa te clave un gancho en los tendones de los tobillos y te cuelge boca abajo hasta que te desangres (se nota que lo estoy sufriendo, no?...)... es más, no aprendas a programar en C++ hasta que no domines la programación en JAVA o en C#.
S2
Ranganok Schahzaman