Paso 1: ¿Qué es un registro?
Espera, ¿qué es un registro que pides? En definitiva, es un trozo de memoria generalmente consisten en cualquier lugar de 8 a 64 bits de datos. Cada bit se le asigna un valor de 1 o 0, y el valor de cada bit en los muchos registros diferentes en un microcontrolador decirle al resto del sistema lo que debe hacer y cuándo hacerlo. La mayoría de los registros en el chip de ATMEGA328P en Arduino son 8-16 bits. Las tarjetas chipKIT utilizan procesadores PIC, y generalmente son registros de 16-32 bit. Hay mucho más podría entrar en relación con los registros, pero mejor se deja para otro día. Wikipedia tiene una buena explicación así.
Usted puede pensar de un registro como lo hace una matriz cuando escribes un pedazo de código en su favorito codificación de idioma, excepto que cada elemento es un poco sola, no una colección de bits que componen el int o char que definido. También, al igual que los arreglos de discos, la cuenta empieza en 0, no 1. Así, un registro de 8 bits (vamos a llamarlo myRegister para patadas) tiene 8 bits en total, numerados del 0 al 7. Así que si vemos un pin de nuestro microcontrolador asignada a bits myRegister [6], sabemos que el bit 7 deth (en segundo lugar al último) es la que necesitamos para manipular. Puede ser difícil de seguir recto, pero es importante. Probaré y aclarar más más adelante, probablemente hasta el punto de overkill.
Algunas cosas a tener en cuenta- Mientras que la manipulación del registro es una opción perfectamente viable de programación, no realmente lo recomiendo a menos que usted está muy confiado en sus habilidades y está totalmente fuera de la memoria en el chip o necesita liberar algunos ciclos de reloj adicionales. A menudo hay un montón de controles que en el fondo cuando se utilizan las librerías y funciones estándar para asignar la dirección de I/O y los valores a los pernos. Puede conseguir difícil mantener todas esas cosas directamente y no puede ser vale la pena el tiempo y esfuerzo lleva a re-escribir el código utilizando registros. Dicho esto, los ejemplos que se muestran que son simple y básico en el extremo, por lo que cualquier persona puede usarlos, independientemente de la experiencia. Definitivamente tomarán menos memoria y un proceso más rápido que si tuviera que utilizar las funciones estándar. Pero debe ser extremadamente cuidadoso al manipular directamente los registros y cuádruples Compruebe sus declaraciones. Sería difícil de dañar los chips manipular incorrectamente los registros, pero puede ser mucho más difícil de depurar cuando no funciona bien, más a menudo porque escribió el valor incorrecto para el registro incorrecto o poco. Las librerías y funciones estándar están allí por una razón. Tener más memoria y tiempo de procesamiento, pero usualmente son más fácil de usar. Última cosa, no te olvides que los parámetros de rendimiento para cada perno no cambian (e.g. actual origen/hundido, tensiones, etc.) al utilizar los registros. No culpes cuando tratas y conducir un motor de 2A de pin 10 y fuma su chip. Que está en usted porque usted debe saber mejor de todos modos.