Rev 795 | Rev 853 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed
| Rev 795 | Rev 796 | ||
|---|---|---|---|
| Line 4... | Line 4... | ||
| 4 | * ---------------------------------------------*/ |
4 | * ---------------------------------------------*/ |
| 5 | #include <avr/io.h> |
5 | #include <avr/io.h> |
| 6 | #include <stdio.h> |
6 | #include <stdio.h> |
| 7 | #include <stdlib.h> |
7 | #include <stdlib.h> |
| 8 | 8 | ||
| 9 | #include "adc.h" |
- | |
| 10 | #include <config.h> |
9 | #include <config.h> |
| - | 10 | #include "adc.h" |
|
| 11 | /*---------------------------------------------- |
11 | /*---------------------------------------------- |
| 12 | * Functions |
12 | * Functions |
| 13 | * --------------------------------------------*/ |
13 | * --------------------------------------------*/ |
| 14 | 14 | ||
| 15 | static uint8_t currentChannel; //Used to keep the channel of the last measurement. This is used to determine if the channel needs to be changed. |
15 | static uint8_t currentChannel; //Used to keep the channel of the last measurement. This is used to determine if the channel needs to be changed. |
| Line 42... | Line 42... | ||
| 42 | 42 | ||
| 43 | if (currentChannel != channel) //Did we use this channel the last time? |
43 | if (currentChannel != channel) //Did we use this channel the last time? |
| 44 | { |
44 | { |
| 45 | switch(channel)//If not, let's switch the admux |
45 | switch(channel)//If not, let's switch the admux |
| 46 | { |
46 | { |
| - | 47 | #if ADCHAN0!=0 |
|
| 47 | case 0: |
48 | case 0: |
| 48 | /* Enable ADC0 */ |
49 | /* Enable ADC0 */ |
| 49 | ADMUX &= ~((1<<MUX0)|(1<<MUX1)|(1<<MUX2)|(1<<MUX3)); |
50 | ADMUX &= ~((1<<MUX0)|(1<<MUX1)|(1<<MUX2)|(1<<MUX3)); |
| 50 | break; |
51 | break; |
| - | 52 | #endif |
|
| - | 53 | #if ADCHAN1!=0 |
|
| 51 | case 1: |
54 | case 1: |
| 52 | /* Enable ADC1 */ |
55 | /* Enable ADC1 */ |
| 53 | ADMUX |= (1<<MUX0); |
56 | ADMUX |= (1<<MUX0); |
| 54 | ADMUX &= ~((1<<MUX1)|(1<<MUX2)|(1<<MUX3)); |
57 | ADMUX &= ~((1<<MUX1)|(1<<MUX2)|(1<<MUX3)); |
| 55 | break; |
58 | break; |
| - | 59 | #endif |
|
| - | 60 | #if ADCHAN2!=0 |
|
| 56 | case 2: |
61 | case 2: |
| 57 | /* Enable ADC2 */ |
62 | /* Enable ADC2 */ |
| 58 | ADMUX |= (1<<MUX1); |
63 | ADMUX |= (1<<MUX1); |
| 59 | ADMUX &= ~((1<<MUX0)|(1<<MUX2)|(1<<MUX3)); |
64 | ADMUX &= ~((1<<MUX0)|(1<<MUX2)|(1<<MUX3)); |
| 60 | break; |
65 | break; |
| - | 66 | #endif |
|
| - | 67 | #if ADCHAN3!=0 |
|
| 61 | case 3: |
68 | case 3: |
| 62 | /* Enable ADC3 */ |
69 | /* Enable ADC3 */ |
| 63 | ADMUX |= (1<<MUX0)|(1<<MUX1); |
70 | ADMUX |= (1<<MUX0)|(1<<MUX1); |
| 64 | ADMUX &= ~((1<<MUX2)|(1<<MUX3)); |
71 | ADMUX &= ~((1<<MUX2)|(1<<MUX3)); |
| 65 | break; |
72 | break; |
| - | 73 | #endif |
|
| - | 74 | #if ADCHAN4!=0 |
|
| 66 | case 4: |
75 | case 4: |
| 67 | /* Enable ADC4 */ |
76 | /* Enable ADC4 */ |
| 68 | ADMUX |= (1<<MUX2); |
77 | ADMUX |= (1<<MUX2); |
| 69 | ADMUX &= ~((1<<MUX0)|(1<<MUX1)|(1<<MUX3)); |
78 | ADMUX &= ~((1<<MUX0)|(1<<MUX1)|(1<<MUX3)); |
| 70 | break; |
79 | break; |
| - | 80 | #endif |
|
| - | 81 | #if ADCHAN5!=0 |
|
| 71 | case 5: |
82 | case 5: |
| 72 | /* Enable ADC5 */ |
83 | /* Enable ADC5 */ |
| 73 | ADMUX |= (1<<MUX0)|(1<<MUX2); |
84 | ADMUX |= (1<<MUX0)|(1<<MUX2); |
| 74 | ADMUX &= ~((1<<MUX1)|(1<<MUX3)); |
85 | ADMUX &= ~((1<<MUX1)|(1<<MUX3)); |
| 75 | break; |
86 | break; |
| - | 87 | #endif |
|
| - | 88 | #if ADCHAN6!=0 |
|
| 76 | case 6: |
89 | case 6: |
| 77 | /* Enable ADC6 */ |
90 | /* Enable ADC6 (only for TQFP&MLF package) */ |
| 78 | ADMUX |= (1<<MUX1)|(1<<MUX2); |
91 | ADMUX |= (1<<MUX1)|(1<<MUX2); |
| 79 | ADMUX &= ~((1<<MUX0)|(1<<MUX3)); |
92 | ADMUX &= ~((1<<MUX0)|(1<<MUX3)); |
| 80 | break; |
93 | break; |
| - | 94 | #endif |
|
| - | 95 | #if ADCHAN7!=0 |
|
| 81 | case 7: |
96 | case 7: |
| 82 | /* Enable ADC7 (only for TQFP package) */ |
97 | /* Enable ADC7 (only for TQFP&MLF package) */ |
| 83 | ADMUX |= (1<<MUX0)|(1<<MUX1)|(1<<MUX2); |
98 | ADMUX |= (1<<MUX0)|(1<<MUX1)|(1<<MUX2); |
| 84 | ADMUX &= ~(1<<MUX3); |
99 | ADMUX &= ~(1<<MUX3); |
| 85 | break; |
100 | break; |
| - | 101 | #endif |
|
| 86 | default: |
102 | default: |
| 87 | break; |
103 | break; |
| 88 | //Some kind of error message? |
104 | //Some kind of error message? |
| 89 | } |
105 | } |
| 90 | 106 | ||