Depende de su propósito de usar un microcontrolador, si está utilizando tipos complejos de proyectos con decenas de relés de sensores y otros componentes y desea mantener la velocidad de procesamiento con sus datos en tiempo real, ARM será lo mejor, pero es un poco difícil comience con el brazo y luego con el AVR, ya que es un procesador de 32 bits si comienza con el microcontrolador stm32 ARM.
Los microcontroladores ARM tienen una amplia gama de aplicaciones y luego AVR . Se utilizan en muchos teléfonos inteligentes, computadoras, controles industriales y otras áreas del sistema integrado. Antes de comenzar a aprender ARM, debe tener un buen conocimiento de los sensores, E / S, EEPROM, y debe poder aprender mediante un enfoque esquemático. Lectura de la hoja de datos de componentes específicos y las especificaciones técnicas y después de eso, necesita interactuar y programar esos dispositivos junto con el microcontrolador ARM usando las instrucciones y el código apropiados. Aquí hay un esquema para el parpadeo básico en ARM con código
esquemático
- ¿Nodemcu es un microcontrolador?
- ¿Cómo se implementan los puntos de observación de hardware en gdb?
- ¿Cómo funciona un localizador en un sistema integrado?
- ¿Para qué se utilizan los microcontroladores?
- ¿Puedo comprar hardware de computadora físicamente reconfigurable y programable para experimentación personal?
y el código para el esquema anterior es
#include “stm32f0xx.h”
// Crear función para esperar una cantidad de tiempo especificada
nulo WaitForAMoment (int Moment)
{
volátil int i, j;
para (i = 0; i <Momento; i ++) {
j ++;
}
}
int main (nulo)
{
// Habilite el reloj GPIO para el puerto C usando AHB y RCC
RCC -> AHBENR | = RCC_AHBENR_GPIOCEN;
// Establecer cualquier registro de control para PortC Pin 6
// Moder
GPIOC -> MODER | = GPIO_MODER_MODER6_0;
// OTyper
GPIOC -> OTYPER & = ~ (GPIO_OTYPER_OT_6);
// OSpeedr
GPIO -> OSPEEDR | = GPIO_OSPEEDR_OSPEEDR6;
// PUPDr
GPIOC -> PUPDR & = ~ (GPIO_PUPDR_PUPDR6);
mientras que (1)
{
// Enciende el LED (BSRR)
GPIOC -> BSRR | = GPIO_BSRR_BS_6;
// Espere
WaitForAMoment (200000);
// Apaga el LED (BRR)
GPIOC -> BRR | = GPIO_BRR_BR_6;
// Espere
WaitForAMoment (200000);
}
}
Por otro lado, AVR es fácil de aprender, tenemos que dar instrucciones de 8 bits al microcontrolador, que es un poco más fácil que ARM de 32 o 64 bits. Hay miles de recursos en línea gratuitos para aprender el concepto central de AVR.
Veamos un ejemplo de blinky en AVR
esquemático
y el código para el proyecto anterior es
#include
#include
int main (nulo)
{
DDRA = 0b00000001;
mientras que (1)
{
PORTA = 0b00000001;
_delay_ms (1000);
PORTA = 0b00000000;
_delay_ms (1000);
}
}
Bien, entonces si está haciendo proyectos como proyectos grandes, vaya a través de ARM, pero se recomienda comenzar desde AVR.
Referencia para aprender AVR
Comenzando con AVR atmega16
Proyectos de microcontroladores AVR que utilizan ATmega16 y ATmega32