Paso 5: Programación de puertos
Ventajas del uso de puertos: más rápido que va por el pin, toma menos código para un programa más pequeño
Desventajas: Más difíciles de usar y depurar
Elegí arbitrariamente puerto D como mi puerto.
Algunas cosas básicas a tener en cuenta para el uso de puertos
Variables (X debe sustituirse por la letra de puerto correcto)
DDRX--Registro de dirección de datos-determina qué datos deben fluir de cada pin en el puerto (0 es entrada, 1 salida)
Registro de datos PORTX----sostiene qué datos están siendo entrada y salida a los pines
PINX--registro de pines de entrada
Se arreglan los pernos en el registro de número más bajo = menos pedacito significativo a mayor número - Bit más significativo (así obtener pins 0-3 para igualar 1 0 y 4-7 al igual que sería PORTD = B11110000)
Código de ejemplo
int delayTime = 333; Lo mejor es codificación de estilo para no tener ningún constantes codificadas como en el ejemplo anterior
byte portD_HIGH = B11111000;
byte portD_LOW = B00000000;
void setup()
{
DDRD = DDRD | B11111100; Configura los pines para la salida
un vistazo a lo acabo de hacer
el | símbolo se utiliza como bit a bit o (si cualquiera de los dos bits es 1, resultado es 1)
Esto pasa por el registro, ORing cada pedacito con el binario a la derecha de la |
la B hace que el compilador Lee 11111100 como binario
Así que en Resumen establece pins 2-7 a la salida y las hojas 1 y 2 (que a veces
tienen funciones especiales) solo
}
void loop()
{
PORTD = portD_HIGH; Juegos pin ledPin alta (por lo que el pin 13 se establece en 1)
Delay(delayTime); espera 333ms o ~1/3 seg
PORTD = portD_LOW; Juegos pin ledPin a baja (modo pin 13 ahora es igual a 0)
Delay(delayTime); espera otro ms 333
} //end de la subrutina de bucle, por lo que ahora se vuelve al principio
Los 5 LEDs ahora se deben parpadear feliz lejos.