Rev 339 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed
| Rev 339 | Rev 353 | ||
|---|---|---|---|
| Line 2... | Line 2... | ||
| 2 | * |
2 | * |
| 3 | * Functions for reading ADC |
3 | * Functions for reading ADC |
| 4 | * |
4 | * |
| 5 | ********************************************************************* |
5 | ********************************************************************* |
| 6 | * FileName: $HeadURL: https://svn.auml.se/svn/HomeAutomation/trunk/EmbeddedSoftware/PIC/Include/adc.c $ |
6 | * FileName: $HeadURL: https://svn.auml.se/svn/HomeAutomation/trunk/EmbeddedSoftware/PIC/Include/adc.c $ |
| 7 | * Last changed: $LastChangedDate: 2007- |
7 | * Last changed: $LastChangedDate: 2007-03-03 19:07:14 +0100 (Sat, 03 Mar 2007) $ |
| 8 | * By: $LastChangedBy: johboh $ |
8 | * By: $LastChangedBy: johboh $ |
| 9 | * Revision: $Revision: |
9 | * Revision: $Revision: 353 $ |
| 10 | ********************************************************************/ |
10 | ********************************************************************/ |
| 11 | #include <adc.h> |
11 | #include <adc.h> |
| 12 | 12 | ||
| 13 | #ifdef USE_ADC |
13 | #ifdef USE_ADC |
| 14 | 14 | ||
| 15 |
|
15 | unsigned long TEMP_VALUE; |
| 16 |
|
16 | WORD TEMP_COUNT; |
| 17 | 17 | ||
| 18 | BOOL TEMP_DONE = FALSE; |
18 | BOOL TEMP_DONE = FALSE; |
| 19 | 19 | ||
| 20 | /* |
20 | /* |
| 21 | * Function: adcInit |
21 | * Function: adcInit |
| Line 35... | Line 35... | ||
| 35 | ADCON2 = 0b10101011; |
35 | ADCON2 = 0b10101011; |
| 36 | //useExtRef |
36 | //useExtRef |
| 37 | ADCON0bits.ADON = 1; |
37 | ADCON0bits.ADON = 1; |
| 38 | PIR1bits.ADIF = 0; |
38 | PIR1bits.ADIF = 0; |
| 39 | PIE1bits.ADIE = 1; |
39 | PIE1bits.ADIE = 1; |
| 40 | IPR1bits.ADIP = |
40 | IPR1bits.ADIP = 1; // high priority |
| 41 | } |
41 | } |
| 42 | 42 | ||
| 43 | 43 | ||
| 44 | /* |
44 | /* |
| 45 | * Function: adcISR |
45 | * Function: adcISR |
| Line 50... | Line 50... | ||
| 50 | * Affects: none. |
50 | * Affects: none. |
| 51 | * Depends: none. |
51 | * Depends: none. |
| 52 | */ |
52 | */ |
| 53 | void adcISR(void) |
53 | void adcISR(void) |
| 54 | { |
54 | { |
| 55 | if (PIE1bits.ADIE |
55 | if (PIE1bits.ADIE==1 && PIR1bits.ADIF==1) |
| 56 | { |
56 | { |
| 57 | PIR1bits.ADIF = 0; |
57 | PIR1bits.ADIF = 0; |
| 58 | 58 | ||
| 59 | TEMP_VALUE+=(( |
59 | TEMP_VALUE+=((WORD)ADRESH<<8) | ADRESL; |
| 60 | TEMP_COUNT++; |
60 | TEMP_COUNT++; |
| 61 | 61 | ||
| 62 | if (TEMP_COUNT>=TEMP_SAMPLES) |
62 | if (TEMP_COUNT>=TEMP_SAMPLES) |
| 63 | { |
63 | { |
| 64 | TEMP_VALUE = TEMP_VALUE/TEMP_COUNT; |
64 | TEMP_VALUE = TEMP_VALUE/TEMP_COUNT; |