How do I use 10 bit A/D on 8 bit Pic? 12F675

# Thread: How do I use 10 bit A/D on 8 bit Pic? 12F675

1. ## How do I use 10 bit A/D on 8 bit Pic? 12F675

How do I input the 10 bit A/D value, do math on it and use the value in the program or output it to debug?
All the examples I've seen only use 8 bits.
Does it have to be split into 2- 8 bit bytes then ...?

2. Yup, needs split.
A couple of the hard to find examples.... can be found here

http://www.melabs.com/resources/samples.htm

and here is one on the forum

3. You don't need to split it. Just save it in a WORD variable. Yes, the PIC is an 8-bit device, but can easily work on number 16 bits long.

4. Ok so if I read that right I can store the highbyte & lowbyte A/D value in a word variable (adval) then I can do math on the entire 10 bits of the word?
For example:
Code:
```

Debug "A/D Value: ",dec adval,10,13 'Send decimal value out```

5. Yes, that should work. Just watch that the math does not over flow the word size var.

6. Originally Posted by mackrackit
Yes, that should work. Just watch that the math does not over flow the word size var.
So I can actually do 16 bit math?
Cool!
Thanks

7. And if you use an 18F part with PBP2.5 or greater you can do 32 bit math.
http://www.melabs.com/resources/articles/longs.pdf

8. ## Re: How do I use 10 bit A/D on 8 bit Pic? 12F675

Can anyone tell me what I am doing wrong? This code just returns " 0 0 " with 3 volts on gpio.0

CMCON = 7
ANSEL = %00000001
TRISIO = %00000001
over:
pause 1000
goto over
Last edited by n0yox; - 1st April 2020 at 16:58.

9. ## Re: How do I use 10 bit A/D on 8 bit Pic? 12F675

I got it fixed it was a hardware issue. Thank you!

#### Posting Permissions

• You may not post new threads
• You may not post replies
• You may not post attachments
• You may not edit your posts