Exemplo n.º 1
0
/*******************************************************************************
* 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);
  }
}
Exemplo n.º 2
0
/*******************************************************************************
* 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);
}
Exemplo n.º 3
0
/********************************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);//清中断标志位
}