Diferencia entre revisiones de «Tip 5»

De ArduWiki
Saltar a: navegación, buscar
(Referencia externa)
(Referencia externa)
 
Línea 40: Línea 40:
  
 
== Referencia externa ==  
 
== Referencia externa ==  
* [https://playground.arduino.cc/Code/BitMath/] - Playgroung Arduino
+
* [https://playground.arduino.cc/Code/BitMath/ Bit Math] - Playgroung Arduino
  
 
[[Category:Tips]]
 
[[Category:Tips]]

Revisión actual del 13:00 26 sep 2019

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

Tips


Referencia externa