Read state of specific bit (i.ex. of a PORT)
Hi There,
I'm "reading" a 3x4 keypad matrix and want to show the user he is currently pressing a button.
So I light up a LED while any key is pressed and shut if OFF when the key is released and it works fine.
I'm using this piece of code as a debouncer (that keypad must have yo-yo contacts! :D):
Code:
WHILE PORTB.4 = 0 : WEND
WHILE PORTB.5 = 0 : WEND
WHILE PORTB.6 = 0 : WEND
WHILE PORTB.7 = 0 : WEND
Is there a way to make this a little bit better?
I mean, can I read the four ports B and evaluate them at once instead of four lines of code?
I tried several things like
Code:
WHILE PORTB & %11110000 = 0 : WEND
but I can't get it working :frown:
Any idea how to do this please?
Re: Read state of specific bit (i.ex. of a PORT)
if key active high
WHILE PORTB >15 : WEND
or
WHILE (PORTB&$f0) : WEND
or if active low
WHILE (PORTB < 240) : WEND
1 Attachment(s)
Re: Read state of specific bit (i.ex. of a PORT)
Thanks Richard :wink:
Nevertheless, I still don't get it.
Is this statment (version 2013-03-06) really correct?
Re: Read state of specific bit (i.ex. of a PORT)
yes absolutely
result equals the low nibble of portb as read, the high nibble is masked off