|
|
|
@ -1,9 +1,9 @@
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
/// FULL_BRIDGE文件
|
|
|
|
|
/// FULL_BRIDGE<EFBFBD>ļ<EFBFBD>
|
|
|
|
|
///
|
|
|
|
|
///
|
|
|
|
|
/// 包含hall捕获、六步驱动等
|
|
|
|
|
/// <EFBFBD><EFBFBD><EFBFBD><EFBFBD>hall<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
/// @file full_bridge.c
|
|
|
|
|
/// @author LH
|
|
|
|
|
/// @date 2022-07-19
|
|
|
|
@ -34,11 +34,11 @@ HALL_State V_Hall_state;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
********************************六步换向法***********************************/
|
|
|
|
|
********************************<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>***********************************/
|
|
|
|
|
static unsigned int h_pwm_duty;
|
|
|
|
|
static unsigned int v_pwm_duty;
|
|
|
|
|
/*!
|
|
|
|
|
\brief none pwm占空比设置
|
|
|
|
|
\brief none pwmռ<EFBFBD>ձ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
\param[in] none
|
|
|
|
|
\param[out] none
|
|
|
|
|
\retval none
|
|
|
|
@ -50,7 +50,7 @@ void h_pwm_duty_change(unsigned int pwm_duty)
|
|
|
|
|
h_pwm_duty = pwm_duty;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
//垂直
|
|
|
|
|
//<EFBFBD><EFBFBD>ֱ
|
|
|
|
|
void v_pwm_duty_change(unsigned int pwm_duty)
|
|
|
|
|
{
|
|
|
|
|
v_pwm_duty = pwm_duty;
|
|
|
|
@ -59,7 +59,7 @@ void v_pwm_duty_change(unsigned int pwm_duty)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
\brief hall状态获取
|
|
|
|
|
\brief hall״̬<EFBFBD><EFBFBD>ȡ
|
|
|
|
|
\param[in] none
|
|
|
|
|
\param[out] none
|
|
|
|
|
\retval none
|
|
|
|
@ -94,7 +94,7 @@ unsigned char v_hall_senser_value_get()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
\brief none U相进,V相出
|
|
|
|
|
\brief none U<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>V<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
\param[in] none
|
|
|
|
|
\param[out] none
|
|
|
|
|
\retval none
|
|
|
|
@ -112,7 +112,7 @@ void h_uh_vl()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
\brief none W相进,V相出
|
|
|
|
|
\brief none W<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>V<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
\param[in] none
|
|
|
|
|
\param[out] none
|
|
|
|
|
\retval none
|
|
|
|
@ -130,7 +130,7 @@ void h_wh_vl()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
\brief none W相进,U相出
|
|
|
|
|
\brief none W<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>U<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
\param[in] none
|
|
|
|
|
\param[out] none
|
|
|
|
|
\retval none
|
|
|
|
@ -148,7 +148,7 @@ void h_wh_ul()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
\brief none V相进,U相出
|
|
|
|
|
\brief none V<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>U<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
\param[in] none
|
|
|
|
|
\param[out] none
|
|
|
|
|
\retval none
|
|
|
|
@ -166,7 +166,7 @@ void h_vh_ul()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
\brief none V相进,W相出
|
|
|
|
|
\brief none V<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>W<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
\param[in] none
|
|
|
|
|
\param[out] none
|
|
|
|
|
\retval none
|
|
|
|
@ -184,7 +184,7 @@ void h_vh_wl()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
\brief none U相进,W相出
|
|
|
|
|
\brief none U<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>W<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
\param[in] none
|
|
|
|
|
\param[out] none
|
|
|
|
|
\retval none
|
|
|
|
@ -201,7 +201,7 @@ void h_uh_wl()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
\brief none 六步换向,对于120°hall,正转顺序为546231,反转顺序为:7-正转顺序,,(最终再减1)
|
|
|
|
|
\brief none <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>120<EFBFBD><EFBFBD>hall<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת˳<EFBFBD><EFBFBD>Ϊ546231<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת˳<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>7-<EFBFBD><EFBFBD>ת˳<EFBFBD><EFBFBD>,,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ټ<EFBFBD>1<EFBFBD><EFBFBD>
|
|
|
|
|
\param[in] none
|
|
|
|
|
\param[out] none
|
|
|
|
|
\retval none
|
|
|
|
@ -218,7 +218,7 @@ pctr h_six_step_commu[6] =
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
\brief none U相进,V相出
|
|
|
|
|
\brief none U<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>V<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
\param[in] none
|
|
|
|
|
\param[out] none
|
|
|
|
|
\retval none
|
|
|
|
@ -236,7 +236,7 @@ void v_uh_vl()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
\brief none W相进,V相出
|
|
|
|
|
\brief none W<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>V<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
\param[in] none
|
|
|
|
|
\param[out] none
|
|
|
|
|
\retval none
|
|
|
|
@ -254,7 +254,7 @@ void v_wh_vl()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
\brief none W相进,U相出
|
|
|
|
|
\brief none W<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>U<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
\param[in] none
|
|
|
|
|
\param[out] none
|
|
|
|
|
\retval none
|
|
|
|
@ -272,7 +272,7 @@ void v_wh_ul()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
\brief none V相进,U相出
|
|
|
|
|
\brief none V<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>U<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
\param[in] none
|
|
|
|
|
\param[out] none
|
|
|
|
|
\retval none
|
|
|
|
@ -290,7 +290,7 @@ void v_vh_ul()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
\brief none V相进,W相出
|
|
|
|
|
\brief none V<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>W<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
\param[in] none
|
|
|
|
|
\param[out] none
|
|
|
|
|
\retval none
|
|
|
|
@ -308,7 +308,7 @@ void v_vh_wl()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
\brief none U相进,W相出
|
|
|
|
|
\brief none U<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>W<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
\param[in] none
|
|
|
|
|
\param[out] none
|
|
|
|
|
\retval none
|
|
|
|
@ -325,7 +325,7 @@ void v_uh_wl()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
\brief none 六步换向,对于120°hall,正转顺序为546231,反转顺序为:7-正转顺序,,(最终再减1)
|
|
|
|
|
\brief none <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>120<EFBFBD><EFBFBD>hall<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת˳<EFBFBD><EFBFBD>Ϊ546231<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת˳<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>7-<EFBFBD><EFBFBD>ת˳<EFBFBD><EFBFBD>,,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ټ<EFBFBD>1<EFBFBD><EFBFBD>
|
|
|
|
|
\param[in] none
|
|
|
|
|
\param[out] none
|
|
|
|
|
\retval none
|
|
|
|
@ -345,33 +345,33 @@ void uvw()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
\brief none 水平直流无刷六步换向
|
|
|
|
|
\brief none ˮƽֱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
\param[in] none
|
|
|
|
|
\param[out] none
|
|
|
|
|
\retval none
|
|
|
|
|
\note LH @2022.07.21
|
|
|
|
|
*/
|
|
|
|
|
//中断里调用
|
|
|
|
|
//<EFBFBD>ж<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
void h_bldc_six_step()
|
|
|
|
|
{
|
|
|
|
|
// H_ADC2_Phase_current();
|
|
|
|
|
if(g_ptz.hori_start_stop_set == PTZ_HORI_START)
|
|
|
|
|
{//电机处于启动状态
|
|
|
|
|
{//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
|
|
|
|
H_Hall_state.Hall_value = h_hall_senser_value_get();
|
|
|
|
|
if((H_Hall_state.Hall_value <= 6)&&(H_Hall_state.Hall_value >= 1))
|
|
|
|
|
{
|
|
|
|
|
// if(g_ptz.hori_direction_set == PTZ_HORI_DIR_RIGHT)
|
|
|
|
|
// {//电机正转- 1
|
|
|
|
|
// {//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת- 1
|
|
|
|
|
// h_six_step_commu[(7-H_Hall_state.Hall_value) -1]();
|
|
|
|
|
// }else{//电机反转
|
|
|
|
|
// }else{//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת
|
|
|
|
|
// h_six_step_commu[H_Hall_state.Hall_value -1]();
|
|
|
|
|
// }
|
|
|
|
|
//直齿云台转向
|
|
|
|
|
//ֱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨ת<EFBFBD><EFBFBD>
|
|
|
|
|
if(g_ptz.hori_direction_set == PTZ_HORI_DIR_RIGHT)
|
|
|
|
|
{//电机正转- 1
|
|
|
|
|
{//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת- 1
|
|
|
|
|
|
|
|
|
|
h_six_step_commu[H_Hall_state.Hall_value -1]();
|
|
|
|
|
}else{//电机反转
|
|
|
|
|
}else{//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת
|
|
|
|
|
h_six_step_commu[(7-H_Hall_state.Hall_value) -1]();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
@ -380,35 +380,35 @@ void h_bldc_six_step()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/*!
|
|
|
|
|
\brief none 垂直直流无刷六步换向
|
|
|
|
|
\brief none <EFBFBD><EFBFBD>ֱֱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
\param[in] none
|
|
|
|
|
\param[out] none
|
|
|
|
|
\retval none
|
|
|
|
|
\note LH @2022.07.21
|
|
|
|
|
*/
|
|
|
|
|
//中断里调用
|
|
|
|
|
//<EFBFBD>ж<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
void v_bldc_six_step()
|
|
|
|
|
{
|
|
|
|
|
// V_ADC0_Phase_current();
|
|
|
|
|
if((g_ptz.vert_start_stop_set == PTZ_VERT_START) && (g_ptz.vert_pid.mode == PID_ADJUST_SPEED))
|
|
|
|
|
{//电机处于启动状态
|
|
|
|
|
{//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
|
|
|
|
V_Hall_state.Hall_value = v_hall_senser_value_get();
|
|
|
|
|
if((V_Hall_state.Hall_value <= 6)&&(V_Hall_state.Hall_value >= 1))
|
|
|
|
|
{
|
|
|
|
|
if(g_ptz.vert_direction_set == PTZ_VERT_DIR_UP)
|
|
|
|
|
{//电机正转- 1
|
|
|
|
|
{//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת- 1
|
|
|
|
|
v_six_step_commu[V_Hall_state.Hall_value -1]();
|
|
|
|
|
}else{//电机反转
|
|
|
|
|
}else{//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת
|
|
|
|
|
v_six_step_commu[(7-V_Hall_state.Hall_value) -1]();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// if(g_ptz.vert_pid.PidUT_float < 0)
|
|
|
|
|
// {//换种思路,PID计算为负数时,反向转动
|
|
|
|
|
// {//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>˼·<EFBFBD><EFBFBD>PID<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>
|
|
|
|
|
// if(g_ptz.vert_direction_set == PTZ_VERT_DIR_UP)
|
|
|
|
|
// {//电机正转- 1
|
|
|
|
|
// {//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת- 1
|
|
|
|
|
// v_six_step_commu[(7-V_Hall_state.Hall_value) -1]();
|
|
|
|
|
// }else{//电机反转
|
|
|
|
|
// }else{//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת
|
|
|
|
|
// v_six_step_commu[V_Hall_state.Hall_value -1]();
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
@ -422,7 +422,7 @@ void v_bldc_six_step()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
\brief none 垂直方向调速,自锁
|
|
|
|
|
\brief none <EFBFBD><EFBFBD>ֱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>٣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
\param[in] none
|
|
|
|
|
\param[out] none
|
|
|
|
|
\retval none
|
|
|
|
@ -455,7 +455,6 @@ void hori_dir_speed_start(unsigned int verf)
|
|
|
|
|
TIMER_CH0CV(TIMER2) = verf;//U199;//
|
|
|
|
|
TIMER_CH1CV(TIMER2) = 0;//V
|
|
|
|
|
TIMER_CH2CV(TIMER2) = 0;//W
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void hori_dir_speed_stop(void)
|
|
|
|
@ -473,7 +472,7 @@ void hori_dir_speed_stop(void)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
\brief none 电机启动
|
|
|
|
|
\brief none <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
\param[in] none
|
|
|
|
|
\param[out] none
|
|
|
|
|
\retval none
|
|
|
|
@ -481,7 +480,7 @@ void hori_dir_speed_stop(void)
|
|
|
|
|
*/
|
|
|
|
|
void h_start_motor()
|
|
|
|
|
{
|
|
|
|
|
//定时器使能
|
|
|
|
|
//<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>
|
|
|
|
|
// timer_enable(TIMER2);
|
|
|
|
|
h_pwm_duty_change(0);
|
|
|
|
|
TIMER_CH0CV(TIMER2) = 0 ;//
|
|
|
|
@ -492,12 +491,12 @@ void h_start_motor()
|
|
|
|
|
H_EN2_OFF;//V
|
|
|
|
|
H_EN3_OFF;//W
|
|
|
|
|
|
|
|
|
|
// timer_interrupt_enable(TIMER2,TIMER_INT_UP);//定时器更新中断使能
|
|
|
|
|
// timer_interrupt_enable(TIMER2,TIMER_INT_UP);//<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD><EFBFBD>
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void v_start_motor()
|
|
|
|
|
{
|
|
|
|
|
//定时器使能
|
|
|
|
|
//<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>
|
|
|
|
|
// timer_enable(TIMER3);
|
|
|
|
|
v_pwm_duty_change(0);
|
|
|
|
|
TIMER_CH0CV(TIMER3) = 0 ;//
|
|
|
|
@ -508,12 +507,12 @@ void v_start_motor()
|
|
|
|
|
V_EN2_OFF;//V
|
|
|
|
|
V_EN3_OFF;//W
|
|
|
|
|
|
|
|
|
|
// timer_interrupt_enable(TIMER3,TIMER_INT_UP);//定时器更新中断使能
|
|
|
|
|
// timer_interrupt_enable(TIMER3,TIMER_INT_UP);//<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD><EFBFBD>
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
\brief none 电机停止
|
|
|
|
|
\brief none <EFBFBD><EFBFBD><EFBFBD>ֹͣ
|
|
|
|
|
\param[in] none
|
|
|
|
|
\param[out] none
|
|
|
|
|
\retval none
|
|
|
|
@ -522,7 +521,7 @@ void v_start_motor()
|
|
|
|
|
void h_stop_motor()
|
|
|
|
|
{
|
|
|
|
|
h_pwm_duty_change(0);
|
|
|
|
|
// //输出低电平
|
|
|
|
|
// //<EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>ƽ
|
|
|
|
|
TIMER_CH0CV(TIMER2) = 0;
|
|
|
|
|
TIMER_CH1CV(TIMER2) = 0;
|
|
|
|
|
TIMER_CH2CV(TIMER2) = 0;
|
|
|
|
@ -530,15 +529,15 @@ void h_stop_motor()
|
|
|
|
|
H_EN1_OFF;//U
|
|
|
|
|
H_EN2_OFF;//V
|
|
|
|
|
H_EN3_OFF;//W
|
|
|
|
|
// //定时器关闭
|
|
|
|
|
// //<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD>
|
|
|
|
|
// timer_disable(TIMER2);
|
|
|
|
|
// timer_interrupt_disable(TIMER2,TIMER_INT_UP);//定时器更新中断使能
|
|
|
|
|
// timer_interrupt_disable(TIMER2,TIMER_INT_UP);//<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD><EFBFBD>
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void v_stop_motor()
|
|
|
|
|
{
|
|
|
|
|
v_pwm_duty_change(0);
|
|
|
|
|
// //输出低电平
|
|
|
|
|
// //<EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>ƽ
|
|
|
|
|
TIMER_CH0CV(TIMER3) = 0;
|
|
|
|
|
TIMER_CH1CV(TIMER3) = 0;
|
|
|
|
|
TIMER_CH2CV(TIMER3) = 0;
|
|
|
|
@ -546,9 +545,9 @@ void v_stop_motor()
|
|
|
|
|
V_EN1_OFF;//U
|
|
|
|
|
V_EN2_OFF;//V
|
|
|
|
|
V_EN3_OFF;//W
|
|
|
|
|
// //定时器关闭
|
|
|
|
|
// //<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD>
|
|
|
|
|
// timer_disable(TIMER3);
|
|
|
|
|
// timer_interrupt_disable(TIMER3,TIMER_INT_UP);//定时器更新中断使能
|
|
|
|
|
// timer_interrupt_disable(TIMER3,TIMER_INT_UP);//<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD><EFBFBD>
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -557,7 +556,7 @@ void v_stop_motor()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
\brief hall引脚初始化
|
|
|
|
|
\brief hall<EFBFBD><EFBFBD><EFBFBD>ų<EFBFBD>ʼ<EFBFBD><EFBFBD>
|
|
|
|
|
\param[in] none
|
|
|
|
|
\param[out] none
|
|
|
|
|
\retval none
|
|
|
|
@ -565,11 +564,11 @@ void v_stop_motor()
|
|
|
|
|
*/
|
|
|
|
|
static void hall_io_init(void)
|
|
|
|
|
{
|
|
|
|
|
// //配置引脚时钟
|
|
|
|
|
// //<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>
|
|
|
|
|
// rcu_periph_clock_enable(RCU_GPIOE);
|
|
|
|
|
//
|
|
|
|
|
// //水平——PE10-H1,PE11-H2,PE12-H3,,垂直PE13-H1,PE14-H2,PE15-H3
|
|
|
|
|
// //设置引脚为输入模式
|
|
|
|
|
// //ˮƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>PE10-H1,PE11-H2,PE12-H3<48><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱPE13-H1,PE14-H2,PE15-H3
|
|
|
|
|
// //<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
|
|
|
|
// gpio_mode_set(GPIOE, GPIO_MODE_INPUT, GPIO_PUPD_NONE, GPIO_PIN_10);
|
|
|
|
|
// gpio_mode_set(GPIOE, GPIO_MODE_INPUT, GPIO_PUPD_NONE, GPIO_PIN_11);
|
|
|
|
|
// gpio_mode_set(GPIOE, GPIO_MODE_INPUT, GPIO_PUPD_NONE, GPIO_PIN_12);
|
|
|
|
@ -591,7 +590,7 @@ static void hall_io_init(void)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
\brief none 驱动桥引脚初始化
|
|
|
|
|
\brief none <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ų<EFBFBD>ʼ<EFBFBD><EFBFBD>
|
|
|
|
|
\param[in] none
|
|
|
|
|
\param[out] none
|
|
|
|
|
\retval none
|
|
|
|
@ -615,9 +614,9 @@ void bridge_io_init(void)
|
|
|
|
|
gpio_mode_set(GPIOD, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_15);
|
|
|
|
|
gpio_output_options_set(GPIOD, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_10| GPIO_PIN_11| GPIO_PIN_15);
|
|
|
|
|
|
|
|
|
|
//GD改版后驱动策略进行了修改————新增驱动桥电源控制引脚,便于驱动器的断电复位等
|
|
|
|
|
gpio_mode_set(GPIOE, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_0);//水平电源控制引脚
|
|
|
|
|
gpio_mode_set(GPIOE, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_1);//垂直电源控制引脚
|
|
|
|
|
//GD<EFBFBD>İ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ġ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķϵ縴λ<EFBFBD><EFBFBD>
|
|
|
|
|
gpio_mode_set(GPIOE, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_0);//ˮƽ<EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
gpio_mode_set(GPIOE, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_1);//<EFBFBD><EFBFBD>ֱ<EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
gpio_output_options_set(GPIOE, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_0| GPIO_PIN_1);
|
|
|
|
|
|
|
|
|
|
H_EN1_OFF;
|
|
|
|
|