timer0 programacion para microcontroladores microcontrolador lenguaje leer entradas digitales atmega328 embedded microcontroller

embedded - programacion - AVR o PIC para comenzar a programar el microcontrolador?



timer avr (20)

Voto por la serie MSP430 de TI. He usado PIC de forma extensiva (también chips Atmel un poco) y, por lejos, lo más importante para mí es un IDE de buena depuración. TI ha hecho un trabajo bastante bueno en esto, y su compilador C ++ funciona muy bien. Puede comenzar con una placa eval por menos de $ 100, incluido un depurador IDE + USB. Los PIC tienen periféricos de hardware mejores y más diversos, pero MPLAB es una mierda y el único C ++ IDE para PIC es uno por IAR, que es bastante caro. (más de $ 2K)

¿Qué familia debería empezar a aprender? (Nunca hizo ninguna programación en microcontrolador)


Comencé con un Motorola M68HC11, era bastante simple. Creo que obtendrás la misma experiencia con cualquier controlador de 8 bits.


Mi jefe recogió los conceptos básicos usando AVR dentro de una semana sin experiencia previa.


Hoy AVR y PIC son probablemente los microcontroladores más comunes entre los aficionados. Ambos tienen una amplia gama de variantes de dispositivo y ambos pueden usarse para lograr resultados similares.

Para un principiante sugeriría AVR debido a varias razones:

  • La familia AVR (pequeña, mega) es coherente y fácil de entender. La arquitectura es potente y moderna, y es especialmente adecuada para compiladores de C. Los AVR pueden, por supuesto, programarse en el montaje también.

  • Debido a su arquitectura amigable para C, hay compiladores de calidad C disponibles, tanto comerciales como gratuitos. El GCC omnipresente se transporta a AVR y se llama avr-gcc .

  • Para comenzar, todo lo que realmente necesita es un puñado de componentes básicos, el chip AVR en sí y una placa de prueba . Incluso el cable de programación entre PC y AVR se puede construir esencialmente de forma gratuita (lo que se denomina wiggler). Sin embargo, varios kits de desarrollo comercial están disponibles, principalmente el propio STK500 de Atmel. Un kit de desarrollo comercial es una forma más costosa para comenzar, pero no requiere prácticamente ningún conocimiento previo sobre electrónica. Algunos kits de desarrollo contienen, por ejemplo, pantallas LCD, por lo que es fácil hacer cosas interesantes.

  • Tiene una rica comunidad de aficionados .

PIC es famoso por su peculiar arquitectura. Muchos adoran el PIC por esto, algunos lo odian. AVR es más sencillo y no parece causar tantas opiniones extremas y polares.

Tanto AVR como PIC se usan en muchas aplicaciones comerciales serias. Sin embargo, no son las únicas opciones, por supuesto. Mi microcontrolador favorito para el trabajo hobby y comercial es la familia C8051 de Silicon Laboratories, especialmente C8051 F530 . Existe un excelente compilador y compilador de C libre para la familia C8051 llamado SDCC .

Resumen: hay muchas opciones, pero no dejes que eso te abrume. Solo elige uno y comienza a aprender con él. ¡Los microcontroladores son, realmente, sorprendentemente fáciles de dominar una vez que usted decide ponerse en marcha!


Sugeriría AVR. Ha superado con creces a PIC como la plataforma de microcontroladores preferida para proyectos de aficionados generales. En particular, considere la plataforma Arduino (y otra * duino), que proporciona un AVR de gama alta en un factor de forma fácil de usar y de interfaz.


Si solo quieres saber qué es la programación de MCU, comenzar desde Arduino es una buena idea. Es económico, con un IDE amigable para principiantes (basado en el procesamiento del lenguaje de programación, que tiene una sintaxis similar con C).

Pero esto no respondió a tu pregunta, porque aunque Arduino está basado en AVR, no puedes sentir que hay un MCU AVR detrás de ese IDE moderno. :)



Prefiero el AVR sobre PIC, cuya arquitectura encuentro un poco desordenada. Esto puede ser solo yo, y no te molestará si puedes escribir en un lenguaje de alto nivel, muy probablemente (algún dialecto de) C.

Como usted es nuevo en los microcontroladores, supongo que el rendimiento no será el problema, por lo que buscaría la disponibilidad de herramientas de desarrollo: tableros de prototipos, IDE y herramientas de simulación / depuración. Personalmente, me gustó mucho AVR Studio (entorno de desarrollo libre de Atmel).

Jason menciona el MSP430 de TI, que es un excelente controlador de hecho, especialmente si estás en aplicaciones de muy baja potencia. Pero no lo recomendaría para un novato, ya que la configuración es un poco engorrosa. (Recuerdo que la descripción del oscilador cubría más de 20 páginas en el manual del usuario).


Tuve mucho más éxito con PIC cuando recién comenzaba. Traté de obtener un simple kit de inicio de Arduino y simplemente no pude obtener un buen kit básico sin gastar más de $ 100-200 en níquel y atenuar la configuración. Consiguió un gran kit de iniciación de PIC por alrededor de $ 40 y lo tiene todo: IDE, programador, placa de inicio con circuitos incorporados para demostraciones y tutoriales. Una compra Además, el entorno PIC fue muy fácil de configurar y trabajar. Estaba jugando con eso en una hora.


Una de las mejores características de AVR es la comunidad en los foros en www.avrfreaks.net. Tienes a un grupo de ingenieros electrónicos experimentados pasando el rato, dispuestos a ayudar a los novatos a ponerse en marcha.


Algunas personas comentaron sobre la extraña (y poco amigable) arquitectura del micro PIC. Esto es cierto para los PIC más pequeños, pero los chips de 16 bits (PIC24F, dsPIC30, etc.) tienen arquitecturas muy claras que funcionan muy bien con C.

La línea PIC24F tiene la capacidad de asignar pines a funciones (temporizadores, A / D, E / S en serie) sobre la marcha, por lo que es un poco más fácil de diseñar. El entorno MPLAB para la depuración y el desarrollo es bastante agradable.


Haría mi elección en función de la disponibilidad de un compilador cruzado en C. En el pasado, eso haría que AVR fuera la elección. No estoy seguro de cuál es el estado ahora.

He programado un PIC en ensamblador, y no fue muy divertido. C es mucho más agradable de muchas maneras.


Diría que introduzco el microcontrolador 8051 de la manera más fácil y Atmel ha creado microcontroladores con tantas funciones incorporadas ... pero aún así las personas prefieren usar el AVR ... mi mano aumentaría con la familia 8051 ( si se encuentra cómodo) else el AVR ...


He hecho un poco de programación de PIC, sobre todo porque me gustó la idea de que el chip tuviera solo un dólar o dos. Sin embargo, para un principiante, tomar una decisión exclusivamente sobre el precio es una optimización prematura.

La programación en ensamblador es una experiencia. Básicamente, debes aprender unos 100 conceptos antes de poder parpadear un LED. (Temporizador de vigilancia, pines de reinicio, contadores / desbordamientos de 8 bits, bucles de retardo, hexadecimal, binario, enmascaramiento de bits, interrupciones, solicitudes de servicio de interrupción, puertos IO, etc.) Todo es muy educativo, y una gran sensación de estar tan cerca a la máquina, pero poder codificar algo en C ocultará algo de esta complejidad para que puedas concentrarte en los resultados. Por esta razón, yo diría que vaya con el AVR. (Y creo que los precios ahora están más cerca de los PIC).

Además: si estás interesado en hacer las cosas (y no te importa gastar ~ $ 30) revisa el arduino . Un tipo que los vendía en mi tienda de electrónica local decía que vendía toneladas de ellos a estudiantes de arte. (Utiliza el IDE del proyecto Processing y compila el código con avr-gcc).

Actualización: se corrige el comentario de que Arduino ejecuta el código interpretado. También se actualizó el precio aproximado de Arduino.


Amo AVR. es fácil de programar y los recursos están disponibles. hay pocos trabajos comunitarios como Arduino.


No entiendo cuál es el problema con Arduino, arruinará tu oportunidad de comprender lo que realmente está sucediendo. Programando con AVR y PIC regularmente, básicamente no hay mucha diferencia, no puedo ver de qué se trata el gran alboroto. Sin embargo, para un principiante mantenerse alejado de Arduino, puede ser simple, pero esa es la trampa, no le da ningún concepto de arquitectura de hardware, y no tiene idea de lo que está sucediendo detrás de escena, lo que los principiantes deben aprender a ser un programador efectivo. Cuando era principiante comencé con un ATmega32 un programador USBasp de $ 20, AVR Studio (gratuito) y AVRDude (Viene con WinAVR) y seguí los tutoriales introductorios en AVR Freaks. Eso es todo lo que necesitas, ¡¡¡Hecho !!!

PD: si realmente quieres aprender a programar micros y tener el tiempo para aprender el ensamblador para tu micro y serás 20 veces el programador en C que alguien que comenzó usando arduino.


Mi primera experiencia con microcontroladores fue con un OOPic-R . Me permitió hacer experimentos robóticos simples sin preocuparme demasiado por el código. El flujo de programación orientado a objetos hace que todo funcione rápido y es fácil de programar.

Recientemente, probé otra variedad de PIC, el PICAXE barato. La interfaz de programación incluida es muy fácil de usar. Además, para conectar físicamente el PICAXE, solo necesita un puerto RS-232 para programarlo y dos pines en el chip (no es necesario hacer un cambio de nivel). He incluido el PICAXE en contenedores muy pequeños (chips SMD y DIP disponibles) y funcionó bastante bien.

No tengo experiencia con la programación de microcontroladores en ensamblaje. Si quieres probar eso, el AVR podría ser más adecuado debido a su gran comunidad de usuarios.

Por lo que yo sé, la forma más barata de programar un AVR utilizando las herramientas de ATMEL es ATMEL AVR ISP mkII por 35 $. Puedes encontrar programadores de terceros por 10-15 $.


Yo / nosotros escogimos PIC principalmente porque hay más hardware periférico por el mismo precio. Y más importante aún, ni siquiera puedes encontrar AVR comparables. Escogí una de las versiones gratuitas heredadas (comencé con PIC18, migré a dspic33)

El IDE es gratuito, el compilador (C) es gratuito en la versión para estudiantes (que desactiva la optimización después del primer mes). Los programadores de nivel de entrada también son bastante baratos. Si tiene montones de interrupciones, contadores y temporizadores, existe la posibilidad de que no necesite ninguna optimización. Un programador directo de Microchip cuesta $ 30.

Tenga en cuenta que las observaciones anteriores sobre AVR que atienden más al desarrollo de HLL están ligeramente desactualizadas a menos que realmente vaya por las arquitecturas heredadas como PIC12 y 16.

Uno típicamente programa las arquitecturas PIC18 (8 bits) y 16-bit más modernas (24F, 30F y dspic33 que se basan en el mismo núcleo principal) en C. Los 16 bits incluso usan GCC. También hay 32 bits basados ​​en MIPS ahora, pero compiten más con ARM en la escena de procesamiento de audio / video. Por extraño que parezca, los modernos son a menudo más baratos que los antiguos. Probablemente se producen en un proceso más moderno que tiene mayores rendimientos.

Otra nota: mientras tanto, Microchip / PIC compró Atmel / AVR, pero supongo que durante los primeros años eso no afectará mucho a las líneas de productos.

Estoy ansioso por el 60MIPs ethernet enabled 16-bitter que se lanzará este verano (afaik streetprice justo por encima de EUR 10)


Algo más sobre la superioridad de AVR, en el otro : http://embeddedgurus.com/stack-overflow/2009/04/pic-stack-overflow/

La popularidad de los PIC de 8 bits me desconcierta. Su arquitectura es horrible: la cantidad limitada de llamadas es solo la primera cosa terrible. Agregue la necesidad de paginación y banca junto con el único vector de interrupción y tiene una pesadilla de un modelo de programación. Sería una cosa si esta fuera la norma para dispositivos de 8 bits, pero no lo es. La arquitectura AVR hace volar el PIC, mientras que el HC05 / HC08 también se encuentra en las calles delante del PIC. Dada la elección, creo que incluso tomaría un 8051 por el PIC. No veo ninguna ventaja de costos, ventajas de empaque (Atmel acaba de lanzar un AVR SOT23-6 que es esencialmente un conjunto de instrucciones compatible con sus dispositivos más grandes) o ventajas de conjuntos periféricos. En resumen, ¡no lo entiendo! Incidentalmente, esto no es una acusación formal de Microchip: son una gran compañía y realmente me gustan muchos de sus otros productos, su sitio web, soporte técnico, etc. (¿quizás por eso el PIC es tan utilizado?)


Mi voto va al PIC por la gran variedad de dispositivos disponibles. Pero debo decir que cuando comencé a usar PIC, no eran casi nada más. Tal vez ahora las cosas han cambiado.