Paso 2: Leer y escribir registros
Manipulación de AVR registra mientras se está ejecutando
Para obtener una lista de todos los registros conocidos en el Arduino, escriba:
y obtendrá un listado como este...
Para ver cómo se fijan los bits individuales en cualquier registro, utilice el comando echo o gato :
Aquí estoy pidiendo el intérprete de comandos para mostrar o eco, el contenido de la General propósito entrada-salida registro #0. Tenga en cuenta el signo de porcentaje (%) delante del nombre del registro. Usted necesita esto a indican al shell que es una palabra clave reservada identificar un registro. La típica salida de un comando echo se ve así:
La salida muestra el nombre del registro, el valor hexadecimal en el registro y la representación binaria del registro (mostrando cada bit como un 1 o 0). Para establecer un poco particular en cualquier registro, utilice el "índice de" operador []. Por ejemplo, supongamos que quiero el 3 º bit a 1.
y el shell le dará una respuesta indicando su acción y el resultado:
Dont' olvidar firma el por ciento a la shell está trabajando con un registro. También tenga en cuenta que estableciendo el bit 3, que es 4 pedacitos porque nuestro AVR utiliza un índice basado en cero. En otras palabras, contar hasta el 3 º bit cuenta 0, 1, 2, 3, que es el 4 º lugar, pero el bit 3. Para borrar un poco de la misma forma estableciendo un poco a cero.
Estableciendo los bits como este puede cambiar el funcionamiento de la AVR sobre la marcha. Por ejemplo, al cambiar el temporizador CTC coincide con valor que se encuentra en OCR1A. También le permite dar un vistazo a la configuración particular que usted tendría que comprobar mediante programación en el código, como el valor UBBR para la velocidad en baudios.
Trabajar con DDRn, PORTn y PINn
Los pines de I/O también se asignan a los registros y pueden ajustarse en la misma forma, pero una sintaxis especial ha sido creada para trabajar con estos tipos de registros.
En el código, hay un proceso normal, decir, encender un LED u otro dispositivo que requiere un digital alta o baja. Requiere establecer el registro de dirección de datos para indicar que el pin es para la salida y luego escribir un 1 o 0 en el bit particular en el puerto correcto. Suponiendo que tenemos un LED conectado a digital pin 13 (PB5) y queremos encenderlo, aquí está cómo hacerlo mientras se está ejecutando el AVR:
La salida, además de ser capaces de ver el LED enciende, sería como este:
La "raíz es prompt de la shell que indica que está listo para aceptar comandos de usted. Para apagar el LED, simplemente escribes un poco al pin. Si quieres leer la entrada de un pin digital, utilice el comando de lectura. Utilizando el ejemplo anterior:
Por otra parte, sólo echo el registro de pin que controla pines del puerto. Por ejemplo, si tenemos dip switch conectado al pin digital 7 y 8 (PD7 PD8), podría enviar el comando:
y la cáscara mostrará el contenido de ese registro, que muestra todos los Estados de entrada y salida de los dispositivos conectados y si el estado del interruptor de encendido o apagado.