Bom dia a todos,
gostaria da ajuda de vocês para fazer um trabalho da faculdade :
o programa precisa ficar em um laço de repetição monitorando 5 sensores
de presença, para cada sensor deverá ser feita uma leitura do status dos mesmos
na forma de um byte, sendo que os bits de 1 a 5 representam o status de cada sensor
(0 sem pfresença-1 com presença)…meu proble maior esta em definir essas variaveis
e como vou dar entrada dos bytes…
a principio eu estava fazendo assim para teste…
#define sensor1 0x80
#define sensor2 0x40
#define sensor3 0x20
#define sensor4 0x10
#define sensor5 0x08
mas isso é em hexa
se alguem puder me ajudar…agradeço
preciso saber como defino os sensores como bites
como um byte é composto por 8 bits , o programa recebe
um byte e do byte 1 a 5 sera feita a leitura pra sabber o status de cada sensor
Para testar se um determinado bit de um byte está ligado, use mascaras de bits.
Vamos supor que você queira saber se o ante-penúltimo bit está ligado. Isso em binário é 0000 0100, concorda? (todos desligados, antepenultimo ligado).
Esse número binário (100) representa o decimal 4.
Agora, vc recebeu do sensor o byte contendo o valor 241. Isso em binário é: 11110001
Como saber que o penultimo bit está ligado? Fazendo um &. Esse operador fará a operação binária E, bit-a-bit.
if (241 & 4 == 0)
Está desligado.
else
O penultimo bit está ligado
Por que:
11110001 - 241 &
00000100 - 4
00000000 => 0
Se o número fosse 245:
11110101 - 245 &
00000100 - 4
00000100 => 4, está ligado.
humm…esclareceu minha duvida , muito obrigado
e descyulpe o incomodo