Subversion Repositories HomeAutomation

Rev

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