Diferencia entre revisiones de «bitRead()»
De ArduWiki
(→Ejemplo) |
(→Ejemplo) |
||
Línea 17: | Línea 17: | ||
Nada. | Nada. | ||
− | == Ejemplo == | + | == Ejemplo 1 == |
Revisar el bit más significativo es una manera alternativa para detectar un valor entero negativo en un numero tipo [[char]]. | Revisar el bit más significativo es una manera alternativa para detectar un valor entero negativo en un numero tipo [[char]]. | ||
Línea 26: | Línea 26: | ||
}else{ | }else{ | ||
Serial.println("Es positivo"); | Serial.println("Es positivo"); | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | == Ejemplo 2 == | ||
+ | En este ejemplo usamos un 74x595 para manejar 7 LED con 3 pines de Arduino. En los LEd se mostraran los numero de 0~255 en binario. | ||
+ | |||
+ | <syntaxhighlight lang="c++"> | ||
+ | void setup(){ | ||
+ | Serial.begin(115200); | ||
+ | pinMode(9, OUTPUT); //STC (12), Latch pin | ||
+ | pinMode(10, OUTPUT); //SHC (11), Shift register | ||
+ | pinMode(11, OUTPUT); //DS (14), Data in | ||
+ | } | ||
+ | void loop(){ | ||
+ | for (byte n=0; n<256; n++){ | ||
+ | Serial.println(n); | ||
+ | for (byte i=0; i<8; i++){ | ||
+ | digitalWrite(11, bitRead(n,i)); //Ingresamos bit uno a uno | ||
+ | digitalWrite(10, HIGH); //Pulso de Shift | ||
+ | digitalWrite(10, LOW); | ||
+ | } | ||
+ | digitalWrite(9, HIGH); //Pulso de Latch | ||
+ | digitalWrite(9, LOW); | ||
+ | delay(500); | ||
+ | } | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> |
Revisión del 16:19 27 jul 2018
Contenido
Descripción
Lee un bit de una variable.
Sintaxis
bitRead(variable, n);
Parámetros
- variable
- variable a evaluar.
- n
- bit a leer.
Retornos
1 o 0 dependiendo del valor de dicho bit
Advertencias
Nada.
Ejemplo 1
Revisar el bit más significativo es una manera alternativa para detectar un valor entero negativo en un numero tipo char.
char c = 200; // Al ser un tipo de dato con signo, 200 se traduce a -56
if (bitRead(c, 7)){
Serial.println("Es negativo");
}else{
Serial.println("Es positivo");
}
Ejemplo 2
En este ejemplo usamos un 74x595 para manejar 7 LED con 3 pines de Arduino. En los LEd se mostraran los numero de 0~255 en binario.
void setup(){
Serial.begin(115200);
pinMode(9, OUTPUT); //STC (12), Latch pin
pinMode(10, OUTPUT); //SHC (11), Shift register
pinMode(11, OUTPUT); //DS (14), Data in
}
void loop(){
for (byte n=0; n<256; n++){
Serial.println(n);
for (byte i=0; i<8; i++){
digitalWrite(11, bitRead(n,i)); //Ingresamos bit uno a uno
digitalWrite(10, HIGH); //Pulso de Shift
digitalWrite(10, LOW);
}
digitalWrite(9, HIGH); //Pulso de Latch
digitalWrite(9, LOW);
delay(500);
}
}