¿Una guía completa de arranque AVRs (1 / 10 paso)

Paso 1: Operaciones binarias y bit a bit

Antes de profundizar en hojas de datos que necesitamos comprender algunos conceptos de bajo niveles que va a utilizar cada vez que quieres hacer algo interesante con un micro.

Deja comienzo a lo más básico, la broca.
Un bit es la unidad más pequeña de datos a un ordenador, es un '1' o un '0'.
En otras palabras es ya sea encendido o apagado.

Para hacer algo útil en una computadora, un poco solo no es suficiente, por lo que se combinan en bytes.
Un byte es 8 bits juntos, y usando un byte de conteo binario puede o bien almacenar 0-255 (256 números) o -128 a 127 (gracias a Joel en los comentarios para darse cuenta del error).
Por ejemplo:
00000000 = 0
00000001 = 1
00000010 = 2
00000011 = 3
00000100 = 4

Al igual que cuando se cuenta en decimal (base 10, como en los 10 dedos!), cuando vas más allá de 9, te ponen un 1 en el frente y el segundo dígito como 0.
Es lo mismo con binarios, excepto como hay sólo 0 o 1, cuando vas más allá de '1' le puesto un 1 en el frente y un '0' como el segundo dígito.

Las características de un microcontrolador son controladas por los registros. En el caso de un AVR de 8 bits son 8 o 16 pedacitos de largo.
En lugar de todo lo que representa un número sin embargo cada bit determina si cierta característica está activada o desactivada.

Se mira un montón de diferentes registros más adelante, pero por ahora vamos a hacer encima de una imaginaria para que podamos ver cómo manipularlos.

Imaginar que se encuentra un registro en la hoja de datos que conecta con 8 LED ' s llamados LEDREG.
Cada bit en el registro es un 1 o un 0, el LED está en o está apagado.

Podríamos encender el primer LED como tal:
LEDREG = 1; 00000001
2 º LED
LEDREG = 2; 00000010

Pero ¿qué pasa con el LED 3?
Si hicimos esto:
LEDREG = 3; 00000011
No tenemos el LED 3, obtendríamos LED 1 y 2 encendidos para arriba en su lugar!

Con registros no es la cantidad que importa, pero parecen que los bits subyacentes.
3 LED look sería como esto:
LEDREG = 4; 00000100

Si usted deseó dar vuelta a patrones diferentes de LEDs podría trabajar todos 256 combinaciones, pero que sería tedioso.
Hay una mejor manera!

Lógica boleana
Computadoras en el trabajo de nivel más bajo con algo llaman lógica boleana.
Utilizan puertas lógicas para combinar números binarios.
Por ejemplo una puerta y sólo generará un 1 si ambas entradas son 1.
Una puerta OR generará un 1 si cualquiera de sus entradas son 1.

Echa un vistazo aquí:
http://www.Electronics-tutorials.ws/Boolean/bool_6.html

Muestra las 'tablas de verdad' para puertas lógicas comunes.

Así que, ¿para qué sirve todo esto para nosotros?
Podemos hacer uso de estas puertas lógicas utilizando directamente los operadores bit a bit

Operaciones bit a bit

Permite decir que ya tenemos lo 3 LED en:
LEDREG = 4; 00000100

¿Cómo podemos encender el primer LED?
Podríamos poner en el valor de 5 (00000101) pero no queremos tener que averiguar qué combinación cada vez.
En su lugar podemos utilizar un operador o como tal:
LEDREG = LEDREG | 1;
Lo que esto significa es esto
00000100 o
00000001
--------------
00000101

El operador OR se alinea cada poco y si está encendido en cualquiera de los dos bytes, será el en la salida.
Una manera más rápida de escribir "LEDREG = LEDREG | 1;"es:
LEDREG | = 1;

También puede cadena sus operadores como:
LEDREG | = 1 | 2;
Esto va a venir bien cuando nos enteramos de los operadores de cambio.

¿Qué pasa si desea seleccionar todos los LEDs?
Se puede utilizar un operador no:
LEDREG = ~ LEDREG;

Un operador no invierte todos los bits, por lo que se:
00000101 no
--------------
11111010

A continuación veamos un operador AND.
Y se utiliza para enmascarar un valor.
Es decir, se utiliza en blanco hacia fuera secciones de un byte, pero mantener el valor de la sección desenmascarado, así:

11111010 y
00001111
-------------
00001010

Puede utilizar una y apagar toda una serie de LEDs sin cambiar el estado del resto.
En el ejemplo anterior se utilizaría como:
LEDREG & = 15; 00001111

Un operador más útil antes de continuar es el XOR.
XOR es exclusiva o.
Es similar a una puerta OR, sin embargo si ambos bits son en, entonces se apaga.
Por ejemplo:

LEDREG ^ = 15;

00001010 XOR
00001111
-------------
00000101

Ahora, por sí mismos los operadores son limitados, usted todavía necesita convertir de binario el número decimal equivalente.
Aquí es donde los operadores de cambio

Operadores de desplazamiento
Un operador de cambio simplemente cambia todos los dígitos a la izquierda o derecho.

Por ejemplo un cambio izquierdo de 1:
x = 5 << 1;
le da x == 10
en binario es:
00000101 <<
-------------
00001010

Una cambio derecha simplemente mueve los bits hacia la derecha:
00001010 >>
--------------
00000101

Cualquier bit en los extremos está simplemente perdida (o almacenado en un registro de llevar, pero permite que ignorar por ahora!)
Un operador de turno puede utilizarse como una muy rápida multiplicación y división, siempre y cuando usted es feliz con sólo multiplicar / dividir por potencias de 2, por ejemplo:

x << 1 == x * 2
x << 2 == x * 4
x << 3 == x * 8

Cambios se utilizan mucho en los registros de configuración.
Permite volver a nuestro ejemplo de LED.

Si queremos establecer el bit 6, en lugar de trabajar qué número sería y luego o con el registro, podemos utilizar una cambio izquierda como así:
LEDREG | = (1 << 5);

Nota: Es '5', no '6' como sólo tenemos que mover el '1' 5 veces.
En binario sería así:

00000001 <<
-------------
00100000

Que es ORed con el registro como sigue:

00000101 O
00100000
-------------
00100101

En hojas de datos, la posición de un determinado bit generalmente se asigna un nombre como "RXEN" que se utiliza para activar el recibe el modo en el periférico serial y "TXEN" para transmitir.
Juntos vería algo como esto:
UCSRB | = (1 <

Esto debería ser suficiente para empezar, deja pasar algunos ejemplos reales!

Artículos Relacionados

Cómo hacer una espada: una guía completa de

Cómo hacer una espada: una guía completa de

Escribí la mayoría de esto mientras trabajé en el proyecto. Esta introducción servirá como reflexión general y análisis del proceso, así como una introducción completa como se esperaba.Bueno, aquí es. ¿Que siempre quisiste crear tu propia espada? Y n
Android aplicaciones para usar con un iPhone: una guía completa para instalar 3 aplicaciones en Android usar reloj junto con un iPhone

Android aplicaciones para usar con un iPhone: una guía completa para instalar 3 aplicaciones en Android usar reloj junto con un iPhone

¿Poseer un reloj Android usar con un iPhone?Aprenda cómo puede ampliar sus capacidades mediante la instalación de 3 aplicaciones de partido abajo!Relojes inteligentes son grandes. Tienen un montón de otras características útiles que no puede ofrecer
Etiqueta de polímero de litio: Una guía completa al trabajo con LiPo

Etiqueta de polímero de litio: Una guía completa al trabajo con LiPo

en este Instructable voy sobre los conceptos básicos de la correcta carga, descarga, manejo, uso, almacenamiento y el cuidado de las baterías de polímero de litio por lo que se pueden utilizar con seguridad y eficacia en sus proyectos futuros.  Ahora
Una guía completa de airsoft: principiante / nivel de entrada.

Una guía completa de airsoft: principiante / nivel de entrada.

Mirando el sitio, he visto un montón de instructables. "Airsoft: sobrevivir a la guerra. Guía de airsoft. Una guía para airsoft". Algunos de ellos son buenos, y algunos de ellos parecen que son lanzados juntos en un par de minutos. Por lo tanto,
$2 Arduino. El ATMEGA328 como independiente. Fácil, barato y muy pequeño. Una guía completa.

$2 Arduino. El ATMEGA328 como independiente. Fácil, barato y muy pequeño. Una guía completa.

En este instructable usted aprenderá cómo usar el Arduino ATMEGA328 microcontrolador chip como un microcontrolador independiente.Cuestan sólo 2 dólares, puede hacer lo mismo que tu Arduino y hacer tus proyectos muy pequeños.Cómo cubriremos el esquema
Cómo almacenar su K'nex eficaz: Una guía completa de

Cómo almacenar su K'nex eficaz: Una guía completa de

¡ Hola chicos!¿Quieres hacer tu K'nex construye más rápido, más eficientey mantener una cuenta de tus piezas? Bien, aquí es una manera! Tardará un par de horas, pero esto ahorrará días en su trabajo de construcción.Esta guía completa y sobre todo, te
Cómo obtener una versión completa de minecraft con Mineshafter.

Cómo obtener una versión completa de minecraft con Mineshafter.

Esta guía le mostrará una alternativa al gasto 20 $ por una membresía premium de minecraft.  Este es un servicio gratuito que permite a los usuarios el juego la demo antes de hacer la compra en el sitio minecraft.com. Esta versión de minecraft es idé
Una guía completa de motores K'nex

Una guía completa de motores K'nex

¡ Hola chicos! Ha pasado mucho tiempo desde que publiqué algo, así que decidí compilar información sobre motores de K'nex y poner para arriba para que todos pudieran obtener algún conocimiento acerca de ellos! Este será mi primer y solamente la entra
Construir un cobertizo simple: una guía completa de

Construir un cobertizo simple: una guía completa de

Aquí es un sólido derramado poco construí en el patio de mi casa.Es esencialmente un cubo de 8 pies, que es el tamaño ideal para guardar un montón de bicicletas, una cortadora de césped, carretilla y todas mis herramientas de jardinería.El diseño es
Una guía completa a la observación de aves

Una guía completa a la observación de aves

te has preguntado ¿cómo ver aves sin molestar a su hábitat natural? Esta guía le mostrará cómo.Paso 1: Paso uno: aprender sobre las aves Vivo en el país de América del norte, así que tengo un libro de aves en N.A. aves viven en diferentes regiones, a
Una guía completa de puentes a bordo en el kit del Intel Edison para Arduino

Una guía completa de puentes a bordo en el kit del Intel Edison para Arduino

Kit Intel® Edison para Arduino permite el Edison de Intel® compatible con Arduino shields diseñados para el R3 del UNO. La Junta de expansión de Arduino incluye varias cabeceras de jumper para configurar el tablero con diferentes ajustes como niveles
Una guía completa de vídeo para el cultivo de tomate "Pometa": principio a fin!

Una guía completa de vídeo para el cultivo de tomate "Pometa": principio a fin!

Este video muestra la historia de todo crecimiento de una planta de tomate heirloom 'Krim negro'. Se le mostrará:Cómo transplantar tomatesCómo construir jaulas de casa caliente (para la siembra temprana)Cómo podar los chuponesCómo crear una barrera d
Una guía completa para Airsoft

Una guía completa para Airsoft

han estado jugando Airsoft hace unos 2 años y soy adicto a este deporte. Y sí, es considerado un deporte! No hay suficiente gente lo reconoce como uno, así que quiero mantenerla, Sabe usted. Me encanta Airsoft porque es competitivo, hay mucha estrate
El estudio del galpon. Una reconstrucción completa.

El estudio del galpon. Una reconstrucción completa.

Hi.No soy constructor pero he re-construido nuestras tres casas durante un período de treinta años y a un nivel razonable - ish ;-)Un par de años que decidí hacer proyecto de mi vida a la parte superior de la lista de prioridades - no estoy recibiend