Tip 5
De ArduWiki
Descripción
Cuando tenemos que manejar muchos pines, es mejor adecuar nuestros requerimientos a bancos completos y manejar el banco directamente porque es mucho mas rápido en Arduino.
Ejemplo
En este ejemplo queremos poner como salidas los pines D2 a D13, del D2 a D10 en LOW y D11 a D13 en HIGH.
Tip: No debemos cambiar los pines 0 (Rx) y 1 (Tx) o no funcionara el puerto serie.
void setup() {
byte pin;
for (pin=2; pin<=13; ++pin) {
pinMode(pin, OUTPUT);
}
for (pin=2; pin<=10; ++pin) {
digitalWrite(pin, LOW);
}
for (pin=11; pin<=13; ++pin) {
digitalWrite(pin, HIGH);
}
}
Este código hace lo mismo pero mucho mas rapido.
void setup(){
//Pines D7..D1 (Tx) como salida y D0 (Rx) como entrada
DDRD = B11111110; //Pines digitales: 7,6,5,4,3,2,1,0
//Pines D13..D8 como salidas
DDRB = B00111111; //Pines digitales: -,-,13,12,11,10,9,8
//Pines D7..D2 en LOW
PORTD &= B00000011; //Apaga: 2..7; deja tan cual 0 y 1.
//Pines D13..D11 en HIGH y D10..D8 en LOW
PORTB = B00111000; //Prende: 13,12,11; apaga: 10,9,8.
}
Vea también
Referencia externa
- Bit Math - Playgroung Arduino