/
ADC.inc
45 lines (35 loc) · 916 Bytes
/
ADC.inc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Copyright (c) 2013 Manolis Agkopian and Yiannis Chaldeos ;
;See the file LICENCE for copying permission. ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;ADC INIT PROC
;
ADC_INIT:
MOVWF TMP
BSF STATUS, 5 ;SELECT BANK 01
;RIGHT JUSTIFIED RESULT, +VREF=VDD, -VREF=VSS, AN0-AN7=ANALOG
MOVLW B'10000000'
MOVWF ADCON1
BCF STATUS, 5 ;SELECT BANK 00
;FOSC/8, ADON=1
MOVF TMP, W
MOVWF ADCON0
RETURN
;
;ADC READ PROC
;
ADC_READ:
BCF STATUS, 5 ;SELECT BANK 00
BSF ADCON0, 2 ;START CONVERTION PROCESS (WE SET THE GO BIT)
WAIT:
BTFSC ADCON0, 2
GOTO WAIT ;WAIT FOR CONVERTION TO FINISH (WAIT FOR GO BIT TO CLEAR)
MOVF ADRESH, W
ANDLW B'00000011' ;JUST IN CASE WE CLEAR BIT 7 TO BIT 2
MOVWF CONVRESH
BSF STATUS, RP0 ;SELECT BANK 01
MOVF ADRESL, W
BCF STATUS, RP0 ;SELECT BANK 00
MOVWF CONVRESL
RETURN