Rev 146 | Rev 154 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 146 | Rev 147 | ||
---|---|---|---|
Line 55... | Line 55... | ||
55 | // + POSSIBILITY OF SUCH DAMAGE. |
55 | // + POSSIBILITY OF SUCH DAMAGE. |
56 | // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
56 | // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
57 | #include "91x_lib.h" |
57 | #include "91x_lib.h" |
58 | #include "uart1.h" |
58 | #include "uart1.h" |
59 | #include "analog.h" |
59 | #include "analog.h" |
- | 60 | #include "timer1.h" |
|
60 | #include "config.h" |
61 | #include "config.h" |
Line 61... | Line 62... | ||
61 | 62 | ||
62 | AnalogData_t AnalogData; |
- | |
Line 63... | Line 63... | ||
63 | u8 ADReady = 0; |
63 | AnalogData_t AnalogData; |
64 | 64 | ||
65 | void ADC_IRQHandler(void) |
65 | void ADC_IRQHandler(void) |
66 | { |
66 | { |
Line 73... | Line 73... | ||
73 | AnalogData.Ch5 = ADC_GetConversionValue(ADC_Channel_5); |
73 | AnalogData.Ch5 = ADC_GetConversionValue(ADC_Channel_5); |
74 | AnalogData.Ch6 = ADC_GetConversionValue(ADC_Channel_6); |
74 | AnalogData.Ch6 = ADC_GetConversionValue(ADC_Channel_6); |
75 | AnalogData.Ch7 = ADC_GetConversionValue(ADC_Channel_7); |
75 | AnalogData.Ch7 = ADC_GetConversionValue(ADC_Channel_7); |
76 | DebugOut.Analog[4] = AnalogData.Ch1; |
76 | DebugOut.Analog[4] = AnalogData.Ch1; |
77 | ADC_ClearFlag(ADC_FLAG_ECV); |
77 | ADC_ClearFlag(ADC_FLAG_ECV); |
78 | ADReady = 1; |
- | |
79 | } |
78 | } |
80 | VIC0->VAR = 0xFF; |
79 | VIC0->VAR = 0xFF; |
81 | } |
80 | } |
Line 82... | Line 81... | ||
82 | 81 | ||
Line 114... | Line 113... | ||
114 | ADC_InitStructure.ADC_Conversion_Mode = ADC_Single_Mode; |
113 | ADC_InitStructure.ADC_Conversion_Mode = ADC_Single_Mode; |
115 | ADC_Init(&ADC_InitStructure); |
114 | ADC_Init(&ADC_InitStructure); |
Line 116... | Line 115... | ||
116 | 115 | ||
117 | ADC_PrescalerConfig(255); // PCLK/255 (24MHz/255 = 94.1kHZ ) |
116 | ADC_PrescalerConfig(255); // PCLK/255 (24MHz/255 = 94.1kHZ ) |
118 | ADC_ITConfig(ADC_IT_ECV, ENABLE); // enable end of conversion IRQ |
117 | ADC_ITConfig(ADC_IT_ECV, ENABLE); // enable end of conversion IRQ |
119 | - | ||
120 | // initiate first update |
- | |
121 | ADReady = 0; |
- | |
122 | ADC_ConversionCmd(ADC_Conversion_Start); |
- | |
123 | 118 | ||
124 | VIC_Config(ADC_ITLine, VIC_IRQ, PRIORITY_ADC); |
119 | VIC_Config(ADC_ITLine, VIC_IRQ, PRIORITY_ADC); |
Line 125... | Line 120... | ||
125 | VIC_ITCmd(ADC_ITLine, ENABLE); |
120 | VIC_ITCmd(ADC_ITLine, ENABLE); |
126 | 121 | ||
Line 136... | Line 131... | ||
136 | ADC_DeInit(); // reset register to default values |
131 | ADC_DeInit(); // reset register to default values |
137 | } |
132 | } |
Line 138... | Line 133... | ||
138 | 133 | ||
139 | void Analog_Update(void) |
134 | void Analog_Update(void) |
- | 135 | { |
|
- | 136 | static u32 AnalogTimer = 0; |
|
140 | { |
137 | |
- | 138 | if(CheckDelay(AnalogTimer)) |
|
141 | if(!ADReady) return; |
139 | { |
142 | ADReady = 0; |
140 | AnalogTimer = SetDelay(25); |
- | 141 | ADC_ConversionCmd(ADC_Conversion_Start); |
|
143 | ADC_ConversionCmd(ADC_Conversion_Start); |
142 | } |