00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 00015 //_____ I N C L U D E S ___________________________________________________ 00016 00017 #include "config.h" 00018 00019 #include "mc_drv.h" 00020 #include "mc_interface.h" 00021 #include "mc_control.h" 00022 00023 #include "stdio.h" 00024 00025 00026 U8 count = 1; // variable "count" is use for calculate the "average" speed on 'n' samples 00027 U16 average = 0; 00028 U8 ovf_timer = 0; // variable "ovf_timer" is use to simulate a 16 bits timer with 8 bits timer 00029 00030 Bool inrush_mask_flag = FALSE; 00031 U16 inrush_delay = 0; 00032 00033 Bool g_mc_read_enable = FALSE; // the speed can be read 00034 Bool g_tick = FALSE; 00035 00036 Bool current_EOC = FALSE; //End Of Conversion Flag 00037 00038 char State = CONV_INIT; // State of the ADC scheduler 00039 char ADC_State = FREE; // ADC State : running = BUSY not running = FREE 00040 extern U8 PWMxB; 00041 00042 /******************************************************************************/ 00043 /******************************************************************************/ 00044 /* Hardware Initialization */ 00045 /******************************************************************************/ 00046 /******************************************************************************/ 00047 00053 void mc_init_HW(void) 00054 00055 { 00056 00057 } 00058 00064 void init_amplifier_1(void) 00065 { 00066 } 00067 00068 // PSC initialization depend on the PSC mode 00069 // 0- One ramp Mode 00070 // 1- Two ramp Mode 00071 // 2- Four ramp Mode 00072 // 3- Center Aligned Mode 00073 00077 void PSC0_Init ( unsigned int OCRnRB, 00078 unsigned int OCRnSB, 00079 unsigned int OCRnRA, 00080 unsigned int OCRnSA) 00081 { 00082 } 00083 00087 void PSC1_Init ( unsigned int OCRnRB, 00088 unsigned int OCRnSB, 00089 unsigned int OCRnRA, 00090 unsigned int OCRnSA) 00091 { 00092 } 00093 00094 00098 void PSC2_Init ( unsigned int OCRnRB, 00099 unsigned int OCRnSB, 00100 unsigned int OCRnRA, 00101 unsigned int OCRnSA) 00102 { 00103 } 00104 00105 00106 /***************************************************************************/ 00107 /***************************************************************************/ 00108 /* All functions for motor's phases commutation */ 00109 /***************************************************************************/ 00110 /***************************************************************************/ 00111 00119 U8 mc_get_hall(void) 00120 { 00121 return HALL_SENSOR_VALUE(); 00122 } 00123 00130 /* TL: TO BE MODIFIED 00131 #ifdef __GNUC__ 00132 ISR(ANALOG_COMP_0_vect) 00133 #else 00134 #pragma vector = HALL_A() 00135 __interrupt void mc_hall_a(void) 00136 #endif 00137 { 00138 00139 } 00140 */ 00141 00142 00149 /* TL: TO BE MODIFIED 00150 #ifdef __GNUC__ 00151 ISR(ANALOG_COMP_1_vect) 00152 #else 00153 #pragma vector = HALL_B() 00154 __interrupt void mc_hall_b(void) 00155 #endif 00156 { 00157 } 00158 */ 00159 00166 /* TL: TO BE MODIFIED 00167 #ifdef __GNUC__ 00168 ISR(ANALOG_COMP_2_vect) 00169 #else 00170 #pragma vector = HALL_C() 00171 __interrupt void mc_hall_c(void) 00172 #endif 00173 { 00174 } 00175 */ 00176 00180 void mc_duty_cycle(U8 level) 00181 { 00182 } 00183 00190 void mc_switch_commutation(U8 position) 00191 { 00192 } 00193 00194 /******************************************************************************/ 00195 /******************************************************************************/ 00196 /* TIMER 1 : generate the g_tick */ 00197 /******************************************************************************/ 00198 /******************************************************************************/ 00199 00206 void mc_init_timer1(void) 00207 { 00208 } 00209 00215 /* TL: TO BE MODIFIED 00216 #ifdef __GNUC__ 00217 ISR(TIMER1_COMPA_vect) 00218 #else 00219 #pragma vector = TIMER1_COMPA_vect 00220 __interrupt void launch_sampling_period(void) 00221 #endif 00222 { 00223 g_tick = TRUE; 00224 } 00225 */ 00226 00227 /******************************************************************************/ 00228 /******************************************************************************/ 00229 /* TIMER 0 : Speed Measurement */ 00230 /******************************************************************************/ 00231 /******************************************************************************/ 00232 00239 void mc_init_timer0(void) 00240 { 00241 } 00242 00248 /* TL: TO BE MODIFIED 00249 #ifdef __GNUC__ 00250 ISR(TIMER0_OVF_vect) 00251 #else 00252 #pragma vector = TIMER0_OVF_vect 00253 __interrupt void ovfl_timer0(void) 00254 #endif 00255 { 00256 } 00257 */ 00258 00265 void mc_estimation_speed(void) 00266 { 00267 } 00268 00269 /******************************************************************************/ 00270 /******************************************************************************/ 00271 /* ADC use for current and potentiometer measurement */ 00272 /******************************************************************************/ 00273 /******************************************************************************/ 00274 00280 /* TL: TO BE MODIFIED 00281 #ifdef __GNUC__ 00282 ISR(ADC_vect) 00283 #else 00284 #pragma vector = ADC_vect 00285 __interrupt void ADC_end_of_conversion(void) 00286 #endif 00287 { 00288 } 00289 */ 00290 00296 void mc_ADC_Scheduler(void) 00297 { 00298 } 00299 00300 /******************************************************************************/ 00301 /******************************************************************************/ 00302 /* Over Current Configuration */ 00303 /******************************************************************************/ 00304 /******************************************************************************/ 00305 00309 void mc_set_Over_Current(U8 Level) 00310 { 00311 } 00312 00315 void mc_disable_during_inrush(void) 00316 { 00317 } 00318 00321 void mc_inrush_task(void) 00322 { 00323 }
1.5.7.1