/******************************************************************************* * Function Name : speed_show_show() * Description : 显示所测速度(只是判断正反时使用,其余时刻并没有什么用) * Input : None * Output : None * Return : None * Editor :Ibrahim ********************************************************************************/ void speed_show_show() { int16 val1_show, val2_show;// val1_show = ftm_quad_get(FTM1); //获取FTM1 正交解码 的脉冲数(负数表示反方向) ftm_quad_clean(FTM1); val2_show = ftm_quad_get(FTM2); //获取FTM 2正交解码 的脉冲数(负数表示反方向) ftm_quad_clean(FTM2); if (val1_show >= 0) { printf("L:%d\n", val1_show); } else { printf("L:%d\n", -val1_show); } if (val2_show >= 0) // { printf("R:%d\n", val2_show); } else { printf("R:%d\n", -val2_show); } }
/******************************************************************************* * Function Name : Speed_Read() * Description : 读取速度 * Input : None * Output : None * Return : None * Editor :Ibrahim ********************************************************************************/ void Speed_Read() { Speed_Val1_L = (float)ftm_quad_get(FTM1); //获取FTM1 正交解码 的脉冲数(负数表示反方向) ftm_quad_clean(FTM1); Speed_Val2_R = -(float)ftm_quad_get(FTM2); //获取FTM 2正交解码 的脉冲数(负数表示反方向) Warning:The direction is inverse ftm_quad_clean(FTM2); }
/********************************5ms定时器*************************************/ void PIT0_IRQHandler(void) { PDkongzhi();//舵机PD控制 //SetMotorVoltage(0.2, 0.2); PID_count(); // if(gpio_get (PTE3)) //拨码3 // { // #if ( CAR_NUMBER == 1 ) // if(gpio_get (PTE5)) // { // #endif // do_camere_stop(img); //检测停车 // #if ( CAR_NUMBER == 1 ) // } // #endif // } vall = - ( ftm_quad_get(FTM1) ); //获取FTM 正交解码 的脉冲数(负数表示反方向) ftm_quad_clean(FTM1); #if ( CAR_NUMBER == 1 ) valr = - ( ftm_quad_get(FTM2) ); //获取FTM 正交解码 的脉冲数(负数表示反方向) ftm_quad_clean(FTM2); #endif #if ( CAR_NUMBER == 2 ) valr = ftm_quad_get(FTM2); //获取FTM 正交解码 的脉冲数(负数表示反方向) ftm_quad_clean(FTM2); #endif if(stop_do) { //检测停车延时,防止第一次检测到之后停车 } else { if(stop_count > 200 * 5) //延时5秒 { stop_do = 1; } else { stop_count++; } } PIT_Flag_Clear(PIT0);//清中断标志位 }