Atmel Inicio 3: Binky uno – puerto, PIN, DDR y LED (9 / 12 paso)

Paso 9: Blinky-significado de las declaraciones de codificación

Las referencias ofrecen algunos muy buenos libros y artículos para aprender C y C++ para los microcontroladores de Atmel [5-8, 11]. Los artículos a continuación esencialmente siguen el orden encontrado en el programa uno de Binky.

  1. #include: una directiva del compilador para incluir un archivo de encabezado en el código con los métodos y funciones especificadas. La mayoría de los archivos de encabezado se puede ver colocando el cursor del ratón sobre el nombre y clic derecho y seleccionar 'ir a la aplicación'.

  • AVR/IO.h: se compone de otros archivos de encabezado (es decir, extensiones .h) para el MCU específico [17]. Los archivos de encabezado son palabras clave como DDRB, PORTB, PB0, TIMSK TCNT0. Al parecer no puede considerarse io.h con 'ir a la aplicación' se describe en el artículo 1.

  • util/Delay.h: métodos para retrasar la ejecución del programa. Incluye milisegundos de retraso y otro de microsegundos.

  • #define x y: A Directiva de compilación para sustituir el texto y cada vez que el texto x es encuentro en el programa. A menudo se utilizan las definiciones del compilador para que el programa puede ser cambiado fácilmente sin buscar a través de todo el código para todos los lugares para cambiar un parámetro cuando sea necesario.

  • #define F_CPU 8000000UL: el compilador sustituirá a 8000000UL para el texto 'F_CPU' cuando encontró en el código. Nota: el archivo de encabezado delay.h requiere la F_CPU ser definido antes de importar delay.h desde el archivo delay.h utiliza el F_CPU. La 8000000UL se refiere a la velocidad de reloj. En nuestro caso, estamos utilizando 8MHz seleccionado por los fusibles. Sin embargo, F_CPU de 16000000 sería correcto para un cristal de 16MHz por ejemplo. La UL al final se refiere a tiempo valores enteros sin signo.

  • int Main: main es una función que deben incorporar todos los programas C y C++. La ejecución del programa comienza en la función 'principal'. La palabra clave 'int' indica que 'principal' puede devolver un entero (16bits). Funciones tienen argumentos en paréntesis (). En este caso, 'void' indica que la función no utiliza un parámetro. Si tuviéramos el vacío de la palabra clave precede el nombre de función como por ejemplo en 'void main' entonces la función no devolvía un valor - sería una subrutina.

  • Llaves {}: El rango de código de definición de la función 'main' es dentro de {}. De hecho, las estructuras de codificación más de C y C++ (por ejemplo, 'cambiar' y 'si') uso llaves {} para indicar que su ámbito de aplicación. No se olvide de incluirlos!

  • Punto y coma: Declaraciones de codificación son terminadas por el ';'. La declaración puede ejecutar a través de varias líneas de texto según sea necesario.

  • _delay_ms(x): un método (es decir, función) definido en delay.h que retrasa la ejecución del programa por x milisegundos. En nuestro caso, x = 1000 y así el retardo es de 1000mS, que es 1 segundo. Aviso tha el paréntesis rodean el parámetro x.

  • DDRB = 0b00000001: registro de dirección de datos para el puerto B. B0 será una salida y el resto serán entradas. Para el ATTiny 2313A, el B0 es Pin12.

  • PORTB = 0b1: B0 Sets a 1, que se traduce en Vcc en la física del perno (12) correspondiente a B0. Una manera más simple y preferida para escribir esta declaración es PORTB = 1; o PORTB = 0 x 01;

  • PORTB = 0 X 00; B0 se establece en 0, que se traduce en 0v en el pin físico (12), correspondiente a B0. Esto también se podría escribir como PORTB = 0;

  • while(x): el MCU se ejecute las instrucciones entre los dos subsiguientes correspondientes llaves {} siempre que la declaración es verdadera x. La x podría cuestionar si dos variables a y b son iguales como un == b (Nótese el doble igual). En nuestro caso, queremos que el LED parpadee continuamente para que las declaraciones entre las abrazaderas deben ejecutar continuamente. Podríamos escribir ' while(true == true)' donde '==' es el operador de C/C++ control de igualdad lógica (un medio único de '=' para asignar algo a una variable como por ejemplo en z = 3). La instrucción 'while(true==true)' causaría el bucle infinito siempre es cierto que queremos desde 'true'. En nuestro caso, 1 se toma para ser un 'verdadero'. Tan 'while(1)' hará que el bucle infinito porque es el atajo para escribir 'mientras' que es un atajo para escribir 'while(true=true)'.

  • Artículos Relacionados

    Atmel Inicio 5: Lifeline

    Atmel Inicio 5: Lifeline

    M. A. Parker c2015La vida es un circuito simple basado en el microcontrolador de Atmel ATTiny2313A unidad (MCU) que funciona como una fuente de reloj sustituto para un objetivo MCU inoperante de fusibles reloj incorrecto. El proyecto, destinado a ser
    Atmel Inicio 4: Dos Blinky, interruptores, resistencias pull-up y poco Ops

    Atmel Inicio 4: Dos Blinky, interruptores, resistencias pull-up y poco Ops

    Figura 1: Interruptores de ejemplo que pueden utilizar resistentes a las tracción MCU, delantero: foto resistor, transistor de la foto, botón; Parte posterior: ejemplo clave los cojines.M. A. Parker c2015Dos Blinky demuestra cómo el MCU puede leer fá
    Atmel Inicio 2: Fusibles y circuitos de microcontroladores

    Atmel Inicio 2: Fusibles y circuitos de microcontroladores

    M. A. Parker c2015Fusibles y circuitos crea un circuito simple pero importante en protoboard de un experimentador que se utilizará como plataforma básica para muchos proyectos de microcontrolador y los parámetros del microcontrolador (es decir, fusib
    Partir de Arduino (puertos, Pins y programación)

    Partir de Arduino (puertos, Pins y programación)

    todos los derechos, por lo que estoy aprendiendo el arte de Arduinoing y pensamiento te llevo a lo largo del paseo...En este tutorial:Pins - los agujeros en su Arduino y cómo utilizarlosPuertos--colecciones de pinsProgramación - Basic de programación
    Cómo utilizar mBlock software para control de tablero de Arduino UNO - potenciómetro con luz LED

    Cómo utilizar mBlock software para control de tablero de Arduino UNO - potenciómetro con luz LED

    Comienzo a utilizar el software mBlock ya tengo mi kit de la robusteza de mBot . mBlock es un software de programación gráfico que está diseñado en base a Scratch 2.0 y compaible con Arduino UNO, mega 2560, leonardo y etc., más hardware se apoyará en
    9-Charlieplexor (9-pines para 72 LEDs)

    9-Charlieplexor (9-pines para 72 LEDs)

    Este Instructable muestra cómo cablear una 9-Charlieplexor. (Formalmente se trata de un "circuito de Charlieplexing con 9 nodos" capaz de controlar 72 LEDs o menos.) Un método general podría tomarse de este diseño para Charlieplexors más grande.
    Utilice un Linkit uno para Control de un LED de Color en la nube

    Utilice un Linkit uno para Control de un LED de Color en la nube

    Este es el primero de espero que muchos proyectos. Este ha sido un aprendizaje para mí y espero integrar lo que he aprendido aquí en futuros proyectos. Este proyecto supone que ya configuró arduino para trabajar con el One de Linkit.Paso 1: Herramien
    Atmel arranque 1: Estudio de Atmel y programador

    Atmel arranque 1: Estudio de Atmel y programador

    M. A. Parker c2015Estudio instalación de Atmel (AS) y un programador representan los primeros pasos [0] en el camino al uso de una unidad individual de Atmel AVR microcontrolador MCU [1] en contraposición a la MCU-en-una-junta como Arduino [2]. Aquí
    La caja del tesoro Arduino Knock-Knock

    La caja del tesoro Arduino Knock-Knock

    Este es mi primer proyecto de Arduino y Instructable. Que hice para mis tres nietos jóvenes que han disfrutado mucho. Compré el cuadro de la tela de Jo-Ann y tienda de artesanía y había instalado un sistema Arduino. Pongo dulces en la caja y el progr
    Subir bocetos a Arduino Mini Pro uso de Arduino UNO (sin quitar el Atmel Chip)

    Subir bocetos a Arduino Mini Pro uso de Arduino UNO (sin quitar el Atmel Chip)

    Esto describe un procedimiento para hacer uso de USB incorporado de Arduino UNO a Serial(TTL) subir bocetos a tablero de Arduino Mini Pro sin necesidad de quitar la viruta de regulador micro Atmel de UNO. Esto es útil para aquellos empezando con plac
    Cómo hacer la placa Arduino Uno más fácil... SIEMPRE! -El Breduino! (Y cómo subir bocetos directamente a él!) With Additional Hardware Options - UPDATED - JULY 2013

    Cómo hacer la placa Arduino Uno más fácil... SIEMPRE! -El Breduino! (Y cómo subir bocetos directamente a él!) With Additional Hardware Options - UPDATED - JULY 2013

    Paso 1: Sección 1 - construcción de la fuente de alimentación regulada de 5 voltios. Okay now before i start, something about my notes for my step-by-step PICTURE instructables that i Love to create:"solía etiquetar todas mis fotos en mi instructable
    Sistema Ambilight para cada entrada conectado a su televisor. WS2812B Arduino UNO frambuesa Pi

    Sistema Ambilight para cada entrada conectado a su televisor. WS2812B Arduino UNO frambuesa Pi

    Siempre he querido agregar ambilight a mi TV. Se ve tan genial! Finalmente lo hice y no me decepcionó!He visto muchos videos y muchos tutoriales sobre la creación de un sistema Ambilight para tu TV pero nunca he encontrado un tutorial completo para m
    Música disco con LinkIt uno

    Música disco con LinkIt uno

    Ahora que tienes tu LinkIt una tabla de desarrollo, ¿qué puede hacer con él?Para empezar, la oferta de conectividad que vienen con esta placa es increíblemente diversa, así que ¿por qué no hacer algo que puede disfrutar de una comunidad? En este Inst
    Cómo programar ATtiny85 con la placa de Arduino uno

    Cómo programar ATtiny85 con la placa de Arduino uno

    En este tutorial vamos a utilizar una placa de Arduino como programador ATtiny.Para ello vamos a utilizar una tarjeta Arduino UNO como un ISP (programador) y un micro-controlador de ATtiny85.Vamos a utilizar Codebender - IDE de Arduino en línea.Con e