00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef _MC_DRV_H_
00013 #define _MC_DRV_H_
00014
00015
00016 #define output_disconnected 0x01
00017
00018
00019 #define Set_timer_data_register_to_zero() (TCNT0=0x00)
00020
00021
00022 #define PSC_ONE_RAMP ;
00023 #define PSC_TWO_RAMP ;
00024 #define PSC_FOUR_RAMP ;
00025 #define PSC_CENTERED ;
00026
00027 #define RAMP_MODE_NUMBER PSC_CENTERED
00028
00029 #define SET_PLOCK ;
00030 #define RELEASE_PLOCK ;
00031
00032 #define PRESC_NODIV ;
00033 #define PRESC_DIV_BY_4 ;
00034 #define PRESC_DIV_BY_16 ;
00035 #define PRESC_DIV_BY_64 ;
00036
00037 #define OUTPUT_ACTIVE_HIGH ;
00038 #define OUTPUT_ACTIVE_LOW ;
00039
00040 #define Enable_over_current() ;
00041 #define Disable_over_current() ;
00042
00043
00044 #define HALL_A() (2); // 2 for dummy values MUST BE MODIFIED
00045 #define HALL_B() (2); // 2 for dummy values MUST BE MODIFIED
00046 #define HALL_C() (2); // 2 for dummy values MUST BE MODIFIED
00047
00048
00049 #define HALL_SENSOR_VALUE() (1); // 1 for dummy values MUST BE MODIFIED
00050
00051 #define Clear_Port_Q1() ;
00052 #define Clear_Port_Q3() ;
00053 #define Clear_Port_Q5() ;
00054 #define Clear_Port_Q2() ;
00055 #define Clear_Port_Q4() ;
00056 #define Clear_Port_Q6() ;
00057 #define Set_Port_Q2() ;
00058 #define Set_Port_Q4() ;
00059 #define Set_Port_Q6() ;
00060
00061
00062 #define Set_none() ;
00063
00064 #define Set_Q1Q4() ;
00065
00066 #define Set_Q1Q6() ;
00067
00068 #define Set_Q3Q2() ;
00069
00070 #define Set_Q3Q6() ;
00071
00072 #define Set_Q5Q2() ;
00073
00074 #define Set_Q5Q4() ;
00075
00076
00077 #define switch_ON_LED() ;
00078 #define switch_OFF_LED() ;
00079
00080
00081 #define Set_EXT1() ; //(PORTB |= (1<<PB3)) // EXT1
00082 #define Clear_EXT1() ; //(PORTB &= ~(1<<PB3))
00083 #define Set_EXT2() ; //(PORTB |= (1<<PB4)) // EXT2
00084 #define Clear_EXT2() ; //(PORTB &= ~(1<<PB4))
00085 #define Toggle_EXT2() ; //(PINB |= (1<<PINB4))
00086 #define Set_EXT3() ; //(PORTC |= (1<<PC1)) // EXT3
00087 #define Clear_EXT3() ; //(PORTC &= ~(1<<PC1))
00088 #define Set_EXT4() ; //(PORTC |= (1<<PC2)) // EXT4
00089 #define Clear_EXT4() ; //(PORTC &= ~(1<<PC2))
00090 #define Set_EXT5() ; //(PORTB |= (1<<PB5)) // EXT5
00091 #define Clear_EXT5() ; //(PORTB &= ~(1<<PB5))
00092 #define Set_EXT6() ; //(PORTE |= (1<<PE1)) // EXT6
00093 #define Clear_EXT6() ; //(PORTE &= ~(1<<PE1))
00094 #define Set_EXT7() ; //(PORTD |= (1<<PD3)) // EXT7
00095 #define Clear_EXT7() ; //(PORTD &= ~(1<<PD3))
00096 #define Set_EXT8() ; //(PORTD |= (1<<PD4)) // EXT8
00097 #define Clear_EXT8() ; //(PORTD &= ~(1<<PD4))
00098 #define Set_EXT9() ; //(PORTE |= (1<<PE0)) // EXT9
00099 #define Clear_EXT9() ; //(PORTE &= ~(1<<PE0))
00100 #define Set_EXT10() ; // (PORTD |= (1<<PD2)) // EXT10
00101 #define Clear_EXT10() ; // (PORTD &= ~(1<<PD2))
00102
00103 #define Get_EXT1() ; //((PINB & (1<<PB3))>>PB3) // EXT1
00104 #define Get_EXT2() ; //((PINB & (1<<PB4))>>PB4) // EXT2
00105 #define Get_EXT3() ; //((PINC & (1<<PC1))>>PC1) // EXT3
00106 #define Get_EXT4() ; //((PINC & (1<<PC2))>>PC2) // EXT4
00107 #define Get_EXT5() ; //((PINB & (1<<PB5))>>PB5) // EXT5
00108 #define Get_EXT6() ; //((PINE & (1<<PE1))>>PE1) // EXT6
00109 #define Get_EXT7() ; //((PIND & (1<<PD3))>>PD3) // EXT7
00110 #define Get_EXT8() ; //((PIND & (1<<PD4))>>PD4) // EXT8
00111 #define Get_EXT9() ; //((PINE & (1<<PE0))>>PE0) // EXT9
00112 #define Get_EXT10() ; // ((PIND & (1<<PD2))>>PD2) // EXT10
00113
00114
00115 #define CONV_INIT 0
00116 #define CONV_POT 1
00117 #define CONV_CURRENT 2
00118
00119 #define FREE 0
00120 #define BUSY 1
00121
00122
00123
00124
00125
00126 void mc_init_HW(void);
00127 void PSC0_Init (unsigned int OCRnRB,
00128 unsigned int OCRnSB,
00129 unsigned int OCRnRA,
00130 unsigned int OCRnSA);
00131
00132 void PSC1_Init (unsigned int OCRnRB,
00133 unsigned int OCRnSB,
00134 unsigned int OCRnRA,
00135 unsigned int OCRnSA);
00136
00137 void PSC2_Init (unsigned int OCRnRB,
00138 unsigned int OCRnSB,
00139 unsigned int OCRnRA,
00140 unsigned int OCRnSA);
00141
00142
00143 U8 mc_get_hall(void);
00144 void mc_duty_cycle(U8 level);
00145 void mc_switch_commutation(U8 position);
00146
00147
00148 void mc_init_timer1(void);
00149
00150
00151 void mc_init_timer0(void);
00152 void mc_estimation_speed(void);
00153
00154
00155 void mc_ADC_Scheduler(void);
00156 U8 mc_Get_Current(void);
00157 U8 mc_Get_Potentiometer(void);
00158
00159
00160 void mc_set_Over_Current(U8 Level);
00161 void mc_disable_during_inrush(void);
00162 void mc_inrush_task(void);
00163
00164 #endif