how can i access to every bit of ADRESH

Status
Not open for further replies.

Jiadong Yao

Member level 1
Joined
Mar 19, 2014
Messages
40
Helped
0
Reputation
0
Reaction score
0
Trophy points
6
Visit site
Activity points
278
Using the ADC
I want to display the result on RB0 to RB5 and RA2 to RA3.

How can i get every single bit in the ADRESH register then assign them to every port?

Thanks
 

Is your ADC result right justified or left justified ? If right justified then ADRESH only contains 2 bits (lower 2 bits of ADRESH) of data, other higher bits are cleared. Did you mean to say ADRES that is ADRESH and ADRESL ?

See if this works.


Code C - [expand]
1
2
3
LATB = (LATB & 0xC0) | (ADRESH & 0x3F)
LATAbits.LATA2 = ((ADREH & 0x40) >> 6)
LATAbits.LATA3 = ((ADREH & 0x80) >> 7)

 


Hi, nice to see you.
Well actually i dont understand your code. could you explain me what "|" and ">>" mean?
why you use LAT rather than PORT? is there any difference?? i am always confused about these two.

thank you
 

| means ORing and >> means right shift the bits. If you use PIC18F then you have to use LATx for output port.
 

| means ORing and >> means right shift the bits. If you use PIC18F then you have to use LATx for output port.

But i always write code in this way: e.g. PORTB = ADRESH;
Then the 8 bits will be shown on all RBs.
isn't it correct?

by the way, can i add you on facebook? if you don't mind, you can add me. my name is jiadong yao.
 

Yes, if you are assigning 8 bits of ADRESH to 8 bits of PORTB then it is correct but if you are using 18F devices then use LATB.
 

Yes, if you are assigning 8 bits of ADRESH to 8 bits of PORTB then it is correct but if you are using 18F devices then use LATB.

I am using 18F device. but when i assign, i still use PORTB rather than LAT. it seems that everything works fine.
what is the problem?? i really dont know.
 

In most cases both will work. PORTx is the same as on other PIC families, the LAT (LATch) instruction writes to a latched output pin and avoids the potential 'read modify write' problem. As LAT is always safe to use, it is the preferred method.

Brian.
 


I google the "read modify write" problem.
Now i completely understand. Thank you very much.
 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…