Manipulación de registro del microcontrolador (4 / 6 paso)

Paso 4: Arduino Microcontrollers con chips ATMEL

Como se mencionó anteriormente, los idiomas de la Asamblea de fondo usado para programar los chips PIC32 y ATMEL son diferentes. Si usted entonces salta a la conclusión de que el registro de los nombres son diferentes, sería correcto.

No entraré en la explicación de la lógica aquí, pero hay algunas diferencias importantes que usted debe tener en cuenta. Consulte el paso anterior para la profundidad en la explicación de la lógica.

En primer lugar, el registro de dirección que establece el estado de I/O del perno se llama DDRx, donde x designa el registro (pinMode() establece DDRx). Para configurar el pin como salida, necesita escribir un 1 en el bit correspondiente en DDRx. escritura que 0 a DDRx establecerá el pin como entrada. El siguiente es el registro PORTx, que determina si un pin establecido como una salida es HIGH (1) o bajo (0) (digitalWrite() establece PORTx). El último es PINx, que le permite leer datos presentan en el pin se encuentra como insumo (digitalRead() Lee PINx). Un '1' en el registro PINx indica que hay una señal presente en ese pin.

Mirando el Arduino UNO (ver .pdf abajo, fuente aquí), decidí usar 4 LEDs en 4→7 alfileres que registrar D, 4→7 de bits. Hemos creado registro D4→7 como salidas por ORing con 0b1111 0000, ajuste los cuatro bits de 1. Me puse 4 interruptores 8→11 clavijas, que registro B, brocas 0→3. Hemos creado registro B0→3 como entradas por ANDing 0b1111 0000, ajuste los cuatro bits como 0. El siguiente código va en la declaración de() de configuración:

DDRD = DDRD | 0xF0; 0b1111 0000

DDRB = DDRB & 0xF0; 0b1111 0000

Mirando los bits de registro otra vez, vemos que los interruptores se asignan a los LEDs para 4→7 bits y bits 0→3. Si sólo nos asigna el estado de PINB directamente a PORTD, nos marquen PORTD bits 0→3, no bits 4 -> 7 y los LEDs no encienden. Solucionarlo con un desplazamiento bit a bit a la izquierda por cuatro espacios. El código de nuestra declaración de bucle() se ve así:

PORTD = PINB << 4;

Aquí está el código completo:

Más de 10 líneas de código y sólo 3 hacer algo. Eso es todo.

Esta compilación con MPIDE tiene sólo 470 bytes de memoria, una reducción de 604 bytes desde la versión más corta en el paso 2 que costo 1074 bytes pinMode(), digitalWrite() y digitalRead().

Artículos Relacionados

Cómo conducir una gran cantidad de LEDs de unos pines del microcontrolador.

Cómo conducir una gran cantidad de LEDs de unos pines del microcontrolador.

Con el hecho de que muchos pines del microcontrolador tienen tres Estados (+ V, GND, o"alta impedancia", coche N*(N-1) LEDs de pines N. Así que el pequeño 8microcontrolador de PIN como un PIC12Fxxx o un ATtiny11 puede conducir 20 LEDs ensus cinc
Principio microcontroladores parte 11: Temporizadores, contadores y el reloj del microcontrolador

Principio microcontroladores parte 11: Temporizadores, contadores y el reloj del microcontrolador

Temporizadores y contadores son tan esenciales que usted verá muchos ejemplos que a lo largo de esta serie. Como el nombre lo dice, se utilizan temporizadores para tiempo y contando. Cuenta y el tiempo le permite hacer algunas cosas muy prolijo como
El registro del cambio del 74HC164 y su Arduino

El registro del cambio del 74HC164 y su Arduino

registros de desplazamiento son una parte muy importante de la lógica digital, actúan como pegamento entre los mundos paralelos y en serie. Reducir cuentas de alambre, perno uso e incluso ayudar a tomar la carga de tu cpu por ser capaces de almacenar
Introducción a la depuración del microcontrolador (y un cronómetro Pomodoro)

Introducción a la depuración del microcontrolador (y un cronómetro Pomodoro)

Lectores de Hola Hack-A-Day y prototipos peligroso!  Por favor voten por mí en la uC de Sparkfun concurso!  (Si votas por mí puede todavía votar para otros proyectos así)  El botón de votación es justo arriba e izquierda de aquí... hay que ir... más.
Cómo crear números de registro del barco

Cómo crear números de registro del barco

lo hice en TechShop Menlo Park. http://www.techshop.comEn el proceso de pintar un barco que consiguieran raspar las cifras de registro para una limpieza suave mirar. Sin estos el barco es ilegal estar en el agua. Se trata de cómo crearlas:Paso 1: Gua
Conceptos básicos del microcontrolador mbed para el brazo

Conceptos básicos del microcontrolador mbed para el brazo

mientras que visita a una feria de Brsitol Pi, recogí una placa de microcontrolador de brazo gratis (normalmente cuesta £30 +). Hubo dos juntas siendo regalados, que eran nuevos en el modelo de LPC1768 tiempo. Lo tengo porque en el momento había esta
STATSulator: Registro del entrenamiento

STATSulator: Registro del entrenamiento

el STATSulator es un php/mysql de la aplicación y bs2 escritorio pantalla lcd que realiza un seguimiento de tu entrenamiento. Le permite ver lo que sus compañeros de entrenamiento también están poniendo en, horas de raws, no los detalles para su acti
Registro del corte del laser

Registro del corte del laser

Paso 7: Haga su propio Puede convertir sus archivos de audio en trazados de corte vectoriales en diez pasos:1. descargar el procesamiento.2. Descargar Python 2.5.4.3. Descargar Audacity.4. descargar el código en GitHub (se puede descargar el archivo
DIY Laser Tag sistema (versión de prueba del microcontrolador)

DIY Laser Tag sistema (versión de prueba del microcontrolador)

aquí está el esperada etiqueta sistema microcontrolador setup! Si usted tiene tener un microcontrolador con entradas múltiples, entonces esto le dirá cómo utilizarlo para crear y programar un sistema de etiquetas láser de su cuenta con una personaliz
Araña y registro del bosque negro

Araña y registro del bosque negro

Utilice estos pasos para hacerte un registro con una araña y los huevos directamente de la selva negra!INGREDIENTESReceta de pastel de chocolate-blanco 1 taza de azúcar-1 taza de harina-6 cucharadas cacao en polvo sin azúcar-3/4 cucharaditas polvo de
FUENTE de alimentación del microcontrolador de PIC

FUENTE de alimentación del microcontrolador de PIC

Hola todo el mundo,Mi nombre es Atanas, de MACEDONIAEn primer lugar, quiero que todo el mundo para ver mi YouTube video.Mi video para este proyecto.Volveré pronto a publicar el esquema y el código de este proyecto.Gracias.
Gran pantalla de LED de desplazamiento

Gran pantalla de LED de desplazamiento

Este es un instructivo para crear una pantalla de LED desplazamiento grande (600 mm x 400 mm).Este fue un proyecto en Hackspace de Nottingham en el Reino Unido junto a Instructables. Instructables enviado el hackspace cientos de grandes (10mm) LEDs p
¿$ 15,00 informática básica? ¿

¿$ 15,00 informática básica? ¿

Imaginar un microcontrolador que se puede conectar un terminal de serie hasta para obtener un prompt ok? ¿Qué pasaría si se cambia uno de los registros de control puedo ver el efecto inmediato? ¿Es realmente posible descargar programas en este chip d
Construir y una bobina de Tesla Musical de MONSTER con un microcontrolador del código

Construir y una bobina de Tesla Musical de MONSTER con un microcontrolador del código

visita mi página de youtube para más proyectos: http://www.youtube.com/channel/UCksEFn8xaLP0z4rsiHa9zcA?feature=mheeComo suben los meses de invierno, muchos se obligado a permanecer en el interior... Para muchos, esto significa jugar scrabble con la