Diferencia entre revisiones de «Tip 5»
De ArduWiki
(Página creada con «== Descripcion == Cuando tenemos que manejar muchos pines, es mejor adecuar nuestros requerimientos a bancos completos y manejar el banco directamente porque es mucho mas r...») |
(→Referencia externa) |
||
(No se muestran 3 ediciones intermedias del mismo usuario) | |||
Línea 1: | Línea 1: | ||
− | == | + | == 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. En este ejemplo queremos poner como salidas los pines D2 a D13, del D2 a D10 en LOW y D11 a D13 en HIGH. | + | 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.}} | {{Tip|No debemos cambiar los pines 0 (Rx) y 1 (Tx) o no funcionara el puerto serie.}} | ||
− | |||
<syntaxhighlight lang="c++"> | <syntaxhighlight lang="c++"> | ||
void setup() { | void setup() { | ||
Línea 20: | Línea 22: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | Este código hace lo mismo pero mucho mas rapido. | ||
<syntaxhighlight lang="c++"> | <syntaxhighlight lang="c++"> | ||
void setup(){ | void setup(){ | ||
Línea 37: | Línea 40: | ||
== Referencia externa == | == Referencia externa == | ||
+ | * [https://playground.arduino.cc/Code/BitMath/ Bit Math] - Playgroung Arduino | ||
+ | |||
[[Category:Tips]] | [[Category:Tips]] |
Revisión actual del 17: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
Referencia externa
- Bit Math - Playgroung Arduino