#include "config.h"#include "ADC_task.h"Include dependency graph for ADC_task.c:

Go to the source code of this file.
Functions | |
| void | ADC_Init (void) |
ADC_Init routine: Set-up ADC to acquire speed set value Set-up ADC with following:
| |
| void | ADC_task (void) |
| ADC_task manages Current, desired speed and Vbat measurements Schedules all acquisitions. When an acquisition is complete, get the result and start next one. | |
| unsigned int | adc_get_speed (void) |
| get_speed Returns desired speed value | |
| unsigned int | adc_get_current (void) |
| get_current Returns measured current | |
| unsigned int | adc_get_V_bat (void) |
| get_V_bat Returns measured supply voltage | |
Variables | |
| unsigned int | Speed_set |
| ADC conversion result. | |
| unsigned int | current |
| Measured current value (Vshunt signal). | |
| unsigned int | V_bat |
| Battery supply voltage measurement. | |
| void ADC_Init | ( | void | ) |
ADC_Init routine: Set-up ADC to acquire speed set value Set-up ADC with following:
Definition at line 65 of file ADC_task.c.
Referenced by main().
00066 { 00067 /* init ADC */ 00068 ADMUX |= (1 << REFS0); // conversion result right ajusted in ADC, AVCC with external capacitor at AREF pin, ADC0 selected 00069 ADCSRA |= (1<<ADEN) | (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0); // enable ADC, division factor : clk/128 00070 DIDR0 |= (1<<ADC0D); // Disable ADC0 digital input buffer 00071 }
| void ADC_task | ( | void | ) |
ADC_task manages Current, desired speed and Vbat measurements Schedules all acquisitions. When an acquisition is complete, get the result and start next one.
Definition at line 78 of file ADC_task.c.
References ADC0, ADC6, ADC7, ADC_clear_end_conv_flag, ADC_data_reg, ADC_end_conv, ADC_INIT_TASK, ADC_start_conv, ADC_WAIT_CURRENT_MEAS, ADC_WAIT_SPEED_SET_MEAS, ADC_WAIT_VBAT_MEAS, current, Set_ADC_Channel, Speed_set, and V_bat.
Referenced by main().
00079 { 00080 static ADC_state_t ADC_state = ADC_INIT_TASK; // ADC state machine init 00081 00082 switch(ADC_state) 00083 { 00084 case ADC_INIT_TASK: // Start current measurement 00085 Set_ADC_Channel(ADC0); // Select ADC0, Vshunt signal 00086 ADC_start_conv(); // Start conversion 00087 ADC_state = ADC_WAIT_CURRENT_MEAS; 00088 break; 00089 00090 //---------------------------------------------------------------------------- 00091 case ADC_WAIT_CURRENT_MEAS: // Wait current measurement aquisition 00092 if(ADC_end_conv()) // When ADC conversion is completed 00093 { 00094 ADC_clear_end_conv_flag(); // Clear end conv interrupt flag 00095 current = ADC_data_reg(); // Get Current in ADC data register 00096 00097 Set_ADC_Channel(ADC7); // Select ADC7, Potentiometer speed signal 00098 ADC_start_conv(); // Start conversion 00099 ADC_state = ADC_WAIT_SPEED_SET_MEAS; 00100 } 00101 break; 00102 //---------------------------------------------------------------------------- 00103 00104 case ADC_WAIT_SPEED_SET_MEAS: // Wait desired speed measurement aquisition 00105 if(ADC_end_conv()) // When ADC conversion is completed 00106 { 00107 ADC_clear_end_conv_flag(); // Clear end conv interrupt flag 00108 Speed_set = ADC_data_reg(); // Get Speed in ADC data register 00109 00110 Set_ADC_Channel(ADC6); // Select ADC6, Vbat measure signal 00111 ADC_start_conv(); // Start conversion 00112 ADC_state = ADC_WAIT_VBAT_MEAS; 00113 } 00114 break; 00115 //---------------------------------------------------------------------------- 00116 00117 case ADC_WAIT_VBAT_MEAS: 00118 if(ADC_end_conv()) // When ADC conversion is completed 00119 { 00120 ADC_clear_end_conv_flag(); // Clear end conv interrupt flag 00121 V_bat = ADC_data_reg(); // Get Speed in ADC data register 00122 00123 Set_ADC_Channel(ADC0); // Select ADC0, Vshunt (current) signal 00124 ADC_start_conv(); // Start conversion 00125 ADC_state = ADC_WAIT_CURRENT_MEAS; 00126 } 00127 break; 00128 //---------------------------------------------------------------------------- 00129 default: 00130 ADC_state = ADC_INIT_TASK; 00131 break; 00132 //---------------------------------------------------------------------------- 00133 } 00134 }
| unsigned int adc_get_speed | ( | void | ) |
get_speed Returns desired speed value
Definition at line 138 of file ADC_task.c.
References Speed_set.
Referenced by main().
00139 { 00140 return Speed_set; 00141 }
| unsigned int adc_get_current | ( | void | ) |
get_current Returns measured current
Definition at line 145 of file ADC_task.c.
References current.
00146 { 00147 return current; 00148 }
| unsigned int adc_get_V_bat | ( | void | ) |
get_V_bat Returns measured supply voltage
Definition at line 152 of file ADC_task.c.
References V_bat.
00153 { 00154 return V_bat; 00155 }
| unsigned int Speed_set |
ADC conversion result.
Definition at line 45 of file ADC_task.c.
Referenced by adc_get_speed(), and ADC_task().
| unsigned int current |
Measured current value (Vshunt signal).
Definition at line 46 of file ADC_task.c.
Referenced by adc_get_current(), and ADC_task().
| unsigned int V_bat |
Battery supply voltage measurement.
Definition at line 47 of file ADC_task.c.
Referenced by adc_get_V_bat(), and ADC_task().
1.4.7