|
@@ -386,7 +386,7 @@ static void encoder_sync_pwm_abs(void) {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/*I 信号的中断处理,一圈一个中断*/
|
|
/*I 信号的中断处理,一圈一个中断*/
|
|
|
-//static int abi_I_delta = 0xFFFFFFF;
|
|
|
|
|
|
|
+static int abi_I_delta = 0xFFFFFFF;
|
|
|
void ENC_ABI_IRQHandler(void) {
|
|
void ENC_ABI_IRQHandler(void) {
|
|
|
g_encoder.z_index_cnt = _abi_count();
|
|
g_encoder.z_index_cnt = _abi_count();
|
|
|
#if 0
|
|
#if 0
|
|
@@ -407,7 +407,7 @@ void ENC_ABI_IRQHandler(void) {
|
|
|
if (g_encoder.z_index_cnt <=10 || g_encoder.z_index_cnt >= (g_encoder.cpr - 10)) {
|
|
if (g_encoder.z_index_cnt <=10 || g_encoder.z_index_cnt >= (g_encoder.cpr - 10)) {
|
|
|
g_encoder.align_cnt = 0;
|
|
g_encoder.align_cnt = 0;
|
|
|
}else if (g_encoder.enc_maybe_err == ENCODER_NO_ERR){
|
|
}else if (g_encoder.enc_maybe_err == ENCODER_NO_ERR){
|
|
|
- g_encoder.enc_maybe_err = ENCODER_AB_ERR;
|
|
|
|
|
|
|
+ abi_I_delta = g_encoder.z_index_cnt;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
#endif
|
|
#endif
|
|
@@ -493,7 +493,7 @@ float encoder_get_abi_angle(void) {
|
|
|
|
|
|
|
|
void encoder_log(void) {
|
|
void encoder_log(void) {
|
|
|
sys_debug("pwm %f, abi %f\n", encoder_get_pwm_angle(), encoder_get_abi_angle());
|
|
sys_debug("pwm %f, abi %f\n", encoder_get_pwm_angle(), encoder_get_abi_angle());
|
|
|
- sys_debug("pwm count %d, I count %d,%d,%d\n", g_encoder.pwm_count, _abi_count(), g_encoder.align_cnt, g_encoder.align_step);
|
|
|
|
|
|
|
+ sys_debug("pwm count %d, I count %d,%d,%d\n", g_encoder.pwm_count, abi_I_delta, g_encoder.align_cnt, g_encoder.align_step);
|
|
|
sys_debug("pwm freq %f, err %d, %f, %f\n", enc_get_pwm_freq(), pwm_duty_err, pwm_err_min, pwm_err_max);
|
|
sys_debug("pwm freq %f, err %d, %f, %f\n", enc_get_pwm_freq(), pwm_duty_err, pwm_err_min, pwm_err_max);
|
|
|
if (g_encoder.enc_maybe_err) {
|
|
if (g_encoder.enc_maybe_err) {
|
|
|
sys_debug("E:%d,%d,%d,%d,%d,%d, %d\n", enc_test1, enc_test2, enc_test3, enc_r, enc_cnt, enc_last_cnt, enc_test4);
|
|
sys_debug("E:%d,%d,%d,%d,%d,%d, %d\n", enc_test1, enc_test2, enc_test3, enc_r, enc_cnt, enc_last_cnt, enc_test4);
|