[SOLVED] Individual bit access MikroC

Status
Not open for further replies.
Possibly but a more universal way would be to use:
if(TEMP & 0x08)
using 0x08 as the value represented by the bit you are checking. You can use a variable as well as a constant.
Brian.
 
Reactions: M.Rehan

    M.Rehan

    Points: 2
    Helpful Answer Positive Rating
Yes, you can access bit of a PORT or regiset or a 1 byte variable using below format.

Code:
unsigned char myVar = 0;

TRISA.F0 = 1;

myVar.B0 = 1;

ANSELA.B0 = 1;

PORTB.B0 = 0;
 
Reactions: M.Rehan

    M.Rehan

    Points: 2
    Helpful Answer Positive Rating
Possibly but a more universal way would be to use:
Code:
if(TEMP & 0x08)

The PIC16F’s instruction set provides (individual) bit mapped access to I/O ports, so the code in post #1 could reach the same result, but I fully agree with you that in order to turn the whole code portable to other cores without this feature, if the sacrifice of some cycles is not any issue, I would prefer your suggestion.
 

If TEMP.F4 and TEMP & (1<<4) means the same, then it will never be equal to 1.
So, if(TEMP.F4 ==1) is incorrect. Have to be if(TEMP.F4)
 

TEMP.F4 or TEMP.B4 is referring to only 4th bit of TEMP variable

while TEMP & (1<<4) is comparing all zero too(left and right side)

but i think results will be same
 
Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…