Mark_S wrote:Look in your manual under "Logical operators" AND exist. Also you can use &&
When used as " IF(A and B ) <>= C then take Action" Is a true or false statement.
Myvariable = %11111111 AND %0000000, this will AND the two variables into myvariable
My 2.6 manual says the result of this test is true or false. No mention of ANDing variables into another variable. Perhaps you've hit on the first real reason to move to 3.0...
Bitwise and Logical are two different things. All versions do support them.
You will use Logical AND or &&, OR or ||, XOR or ^^, ANDNOT, ORNOT, XORNOT in TRUE/FALSE case. If value is 0 then it is treated as FALSE. Any other value is treated as TRU. So, in IF-THEN statement you can check if the values are or are not zero.
Example:
A=2:B=0
IF A AND B THEN C=1
C will be set to 1 if both A and B variables are not zero.
But Bitwise Operators act on each and every bit of the variable using boolean maths.
If you want to isolate bits a variables you want to use the & operand.
If you want to set a bit then | is your operand to use.
Example (from the Book):
B0=B0 & %00000001 'Isolate bit 0 of B0
B0=B0 | %00000001 'Set bit 0 of B0
B0=B0 ^ %00000001 'Reverse state of bit 0 of B0
So Hank, you want to use & in your case.
ADCON0 = ADCON & %00011101
Ioannis
Can you tell me which "Book" this example is from? I'm happy to be corrected - this is exactly what I was looking for - but It's certainly not in my 2.6 Manual.
From 2.4 page 36
From 2.6 page 42
or
From 3.0 pages 70 an 78
Ioannis
You're absolutely right!
If it's any help to anyone else, when I searched for logical AND, the first instance that came up is on page 43. The proper names for the boolean operations (AND, OR, XOR) are not used on P42.
Well, hopefully some good has come from my initial problem (which I've now sorted/worked around by other means)...thanks for your input everyone!
Bookmarks