¿En qué se diferencia el idioma de Arduino del idioma de Atmel Studio? [cerrado]

7

Veo que en el sitio web oficial de Arduino, la página de referencia contiene las funciones y los valores que usaría para el compilador Arduino.

enlace

¿Qué utilizarías en su lugar, si trabajas con Atmel Studio?

    
pregunta Aleatory

2 respuestas

6

El idioma es el mismo. Puede usar Arduino IDE o Atmel Studio ( enlace ) El libary de Arduino es más que un envoltorio para facilitar las cosas, como digitalWrite , que no tiene por defecto en Atmel Studio (o puede definirlo usted mismo). Con Atmel Studio, podría invertir un poco en un registro para activar el puerto digital. Ahora para el AtMega2560 y el AtMega328 estos registros son diferentes. Por lo tanto, no puede simplemente compilar la misma fuente y esperar que se ejecute en ambas MCU al usar los registros. Una vez más, por supuesto, puede especificar un indicador de compilador que ahora está utilizando AtMega2560 o AtMega328 y definir los registros en su propia función digitalWrite en consecuencia, y eso es exactamente lo que la biblioteca de Arduino está haciendo por usted.

Puede elegir usar la Biblioteca de Arduino mientras trabaja en Atmel Studio, o puede usar las operaciones de registro nativo para alternar bits y demás utilizando el IDE de Arduino. Para que Atmel Studio se ejecute con la biblioteca Arduino y AVR dude se requiere una configuración, pero puede valer la pena, según el tamaño del proyecto de código. Atmel Studio se basa en Microsofts Visual Studio con sugerencia / finalización de código e inteligencia que podría acelerar drásticamente el desarrollo del código.

    
respondido por el Mike de Klerk
2

Algo que está disponible cuando se usa Atmel Studio es el Atmel Software Framework que proporciona cierta abstracción de hardware como las bibliotecas Arduino. . Permite que el mismo código (dentro de lo razonable) se ejecute en varias plataformas Atmel, incluido el AVR y sus productos basados en ARM. Acabo de empezar a usarlo para un nuevo proyecto, pero aquí hay un ejemplo de un código:

#define RADIO_RX IOPORT_CREATE_PIN(PORTA, 0)
ioport_set_pin_dir(RADIO_RX, IOPORT_DIR_INPUT);
data_in = ioport_get_pin_level(RADIO_RX);

Parece que tiene muy buena compatibilidad con periféricos en chip, como USB, SPI, USART, etc., en su rango. También tiene algo de soporte para periféricos externos, como una tarjeta SD con una pila de software FAT y algunas pantallas LCD, aunque en ese sentido parece estar bastante limitada a los dispositivos que usan en sus placas de desarrollo.

Si bien el idioma es el mismo que podría agregarse a la curva de aprendizaje, es probable que encuentre menos códigos de ejemplo y bibliotecas de alto nivel que utilizan ASF, por ejemplo, que se interconectan con un transceptor de RF o un receptor GPS en particular.

A menudo, aunque ese tipo de bibliotecas que intentan ocultar demasiado la capa de hardware puede provocar problemas inesperados cuando no conoce la operación subyacente y cómo funcionarán las cosas juntas. Desde ese punto de vista, creo que ASF ofrece un buen nivel de abstracción para facilitar la lectura y el traslado entre dispositivos Atmel y, al mismo tiempo, ofrece un buen control sobre el hardware.

    
respondido por el PeterJ

Lea otras preguntas en las etiquetas