Explicação da lógica de leitura de teclas para switch/case
Sáb Out 19, 2019 5:19 pm
Em vários exercícios de switch / case que usamos o teclado foi usado uma lógica que faz a leitura de tecla, rotação de bits e operação OU entre esses dados. Abaixo mais uma explicação para ajudar a entender como funciona.
tecla = ((!digitalRead(tecla4) << 4) | (!digitalRead(tecla3) << 3) | (!digitalRead(tecla2) << 2) | (!digitalRead(tecla1) << 1));
leitura sem acionar acionado
!digtalRead(tecla1)= 0b00000000 = 0b00000001 = <<1 = 0b00000010 ||
!digtalRead(tecla2)= 0b00000000 = 0b00000001 = <<2 = 0b00000000 ||
!digtalRead(tecla3)= 0b00000000 = 0b00000001 = <<3 = 0b00000000 ||
!digtalRead(tecla4)= 0b00000000 = 0b00000001 = <<4 = 0b00000000 ||
_______________________________________________________________________
________________________________________________________0b00000010
Mais sobre esse tema? Veja o que já postei.
https://roboticalivre.forumeiros.com/t871-exercicio-2-12-3-teclas-para-3-leds#2919
tecla = ((!digitalRead(tecla4) << 4) | (!digitalRead(tecla3) << 3) | (!digitalRead(tecla2) << 2) | (!digitalRead(tecla1) << 1));
leitura sem acionar acionado
!digtalRead(tecla1)= 0b00000000 = 0b00000001 = <<1 = 0b00000010 ||
!digtalRead(tecla2)= 0b00000000 = 0b00000001 = <<2 = 0b00000000 ||
!digtalRead(tecla3)= 0b00000000 = 0b00000001 = <<3 = 0b00000000 ||
!digtalRead(tecla4)= 0b00000000 = 0b00000001 = <<4 = 0b00000000 ||
_______________________________________________________________________
________________________________________________________0b00000010
Mais sobre esse tema? Veja o que já postei.
https://roboticalivre.forumeiros.com/t871-exercicio-2-12-3-teclas-para-3-leds#2919
Permissões neste sub-fórum
Não podes responder a tópicos