lowByte()
lowByte(x)
Quando você tem um valor de 16 bits (como um int ou word) e precisa só da metade de baixo, o lowByte() devolve os 8 bits mais à direita empacotados num byte. É muito usado pra separar um número grande em duas partes antes de mandar por serial, I2C ou SPI.
Sintaxe
lowByte(x);
Parâmetros
- x: o valor de onde extrair o byte (qualquer tipo inteiro, ex.:
int,word,long).
Retorno
Um byte com os 8 bits menos significativos de x.
Exemplo
void setup() {
Serial.begin(9600);
word valor = 0xABCD; // 43981 em decimal
byte baixo = lowByte(valor); // pega 0xCD
byte alto = highByte(valor); // pega 0xAB
Serial.println(baixo, HEX); // imprime CD
Serial.println(alto, HEX); // imprime AB
}
void loop() {
}
Notas e cuidados
- O resultado sempre cabe num
byte(0 a 255); nada de sinal aqui. - Combine com
highByte()pra quebrar um valor de 16 bits em dois pedaços e depois remontar com deslocamentos ((alto << 8) | baixo).