Diferencia entre revisiones de «bitRead()»

De ArduWiki
Saltar a: navegación, buscar
(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 12:19 27 jul 2018

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);  
   }
}

Vea también

Referencias