¿Es mejor pasar al estudio AVR (o alguna otra alternativa mejor?) Sobre el IDE de Arduino. Siente que es tan simple e infantil. Necesito conocer la idea y la elección de los expertos.
¿Es mejor pasar al estudio AVR (o alguna otra alternativa mejor?) Sobre el IDE de Arduino. Siente que es tan simple e infantil. Necesito conocer la idea y la elección de los expertos.
Respuestas:
Una gran ventaja de usar, por ejemplo, AVR Studio es la capacidad de usar todas las bibliotecas creadas para ATmega168 / 328 antes del amanecer de Arduino. Las bibliotecas FFT, las bibliotecas para usar algunos CI oscuros que ha comprado, filtros digitales rudimentarios, y muchos más se pueden encontrar en AVRfreaks y cientos de otros sitios de pasatiempos.
También puede escribir código más eficiente si aprende a utilizar las bibliotecas AVR estándar y estudia la hoja de datos (o tutoriales) del microcontrolador. Para aplicaciones simples, el código arduino es fácil de escribir y depurar. Sin embargo, a veces desea controlar el tiempo de manera más eficiente. AnalogRead()
necesita 100 µs para ejecutarse. Eso corresponde a 10ksps (miles de muestras por segundo). Puede bombear fácilmente eso a 70ksps si accede al código de bajo nivel para el ATmega168 / 328. Puede hacer todo eso en el IDE de Arduino, por supuesto, pero en algún momento sus proyectos pueden volverse demasiado complejos y querrá escribir sus propias bibliotecas con funciones más rápidas. AVR Studio podría ser más adecuado para eso.
Además, si alguna vez desea programar un chip AVR distinto de los ofrecidos por Arduino, necesitará un programador y un IDE diferente. Pequeños proyectos que usan 1kB de código se pueden hacer en un ATtiny. Puede comprar una docena de esos por el precio de un solo ATmega328. Esos chips son baratos y tienen la mayoría de las capacidades de Arduino: I2C, SPI, ADC. ¡Incluso puede encontrar bibliotecas que agreguen una interfaz USB HID! ¡Sin controladores en serie ni nada!
Personalmente, primero escribo código en Arduino IDE, sin optimización de código. Si funciona, ese código puede transcribirse fácilmente en bibliotecas estándar de C ++ y hacerse más eficiente.
Es simple porque tiene que ser accesible para todos , y eso funciona: todos y su hermana pequeña pueden programar Arduino.
Si cree que puede manejar algo más como la programación real , sin duda lo haría. Tendrás que escribir más código, pero también tendrás más control. Un punto importante: la biblioteca Arduino es terriblemente ineficiente: funciona como DigitalWrite
y DigitalRead
se puede hacer hasta 50 veces más rápido .
DigitalRead/Write
. Nunca lo supe ..
La mayoría de las respuestas se han centrado en usar la placa Arduino como una placa AVR estándar. Pero también puede usar un IDE más avanzado y aún aprovechar la simplicidad de la codificación Arduino y las bibliotecas integradas (junto con las desventajas mencionadas anteriormente). EngBlaze acaba de hacer un tutorial sobre esto: Tutorial: Uso de Atmel Studio 6 con proyectos Arduino
El IDE de Arduino cambia la eficiencia del código por conveniencia y velocidad de desarrollo para proyectos pequeños . Debido a que los expertos también tienen plazos , es perfectamente aceptable usar el IDE de Arduino para una prueba rápida de concepto o para ayudar a depurar otro proyecto.
Si desea especializarse en el desarrollo de software integrado, debe poder utilizar herramientas de desarrollo más potentes, como AVR Studio o avr-gcc y su IDE preferido.
Ir más allá de dominar las herramientas de desarrollo, aprender el funcionamiento interno de un microcontrolador y conocer algo de ensamblaje es definitivamente una ventaja si tiene la intención de trabajar en sistemas con poca memoria y / o requisitos de baja potencia y / o alto rendimiento.
so
códigos de ensamblaje complejos. Aunque eso parece un poco difícil, puede aprender exactamente cómo se comporta el microcontrolador. Creo que muchos encontrarán útil esta respuesta. Espero que obtengas más votos: D .. (y esta es tu primera respuesta, ¿eh?).