Example #1
0
void Init_Other()
{
    //**************************电机PWM初始化******************************
    ftm_pwm_init(FTM0, FTM_CH0, 10000, 1000);                       
    ftm_pwm_init(FTM0, FTM_CH1, 10000, 1000);
    ftm_pwm_init(FTM0, FTM_CH2, 10000, 1000);                       
    ftm_pwm_init(FTM0, FTM_CH3, 10000, 1000);
    //*********************************************************************
}
Example #2
0
/**
 *    @brief   打开motor端口
 *
 *    @param   motorid  电机的ID号
 *
 *    @return  ercd 错误码
 */
static ER motor_robot_open_port(ID motorid)
{
    MTCB *p_mtcb;
    ER ercd;
    ID motor_no;

    motor_no = MOTOR_NO_GET(motorid);

    if (!(0 <= motor_no && motor_no < MOTOR_NUM))
    {
        return (E_ID); /* ID号错误 */
    }
    p_mtcb = get_mtcb(motor_no);

    if (p_mtcb->openflag)
    { /* 检查是否已经打开 */
        ercd = E_OBJ;
    }
    else
    {
        /**
         *  硬件初始化
         */
        ftm_pwm_init(MOTOR_MOD_GET(motorid), MOTOR_CH_GET(motorid));

        p_mtcb->openflag = TRUE;

        ercd = E_OK;
    }

    return (ercd);
}
Example #3
0
/*******************************************************************************
* Function Name  : Init_ftm_motor()
* Description    : 初始化电机驱动
* Input          : None
* Output         : None
* Return         : None
* Editor         :Ibrahim
***************************************************************************/
void Init_ftm_motor()
{
  //初始化 PWM 输出
  //FTM 的管脚 可在  fire_port_cfg.h
  //宏定义FTM0_PRECISON   改为  1000u
  //PWM数值反转。
  ftm_pwm_init(FTM0, MOTOR1_PWM, 10000, 0);              //初始化 电机 PWM
  ftm_pwm_init(FTM0, MOTOR2_PWM, 10000, 0);              //初始化 电机 PWM
  ftm_pwm_init(FTM0, MOTOR3_PWM, 10000, 0);              //初始化 电机 PWM
  ftm_pwm_init(FTM0, MOTOR4_PWM, 10000, 0);              //初始化 电机 PWM

  ftm_pwm_init(FTM3, SERVO, 50, SERVOCENTER);                //初始化 电机 PWM

  //IO管脚配置
  //gpio_init(MOTOR1_IO,GPO,LOW);
  //gpio_init(MOTOR2_IO,GPO,LOW);
  //gpio_init(MOTOR3_IO,GPO,LOW);
  //gpio_init(MOTOR4_IO,GPO,LOW);
  /*gpio_init(MOTOR1_IO,GPO,HIGH);
  gpio_init(MOTOR2_IO,GPO,HIGH);
  gpio_init(MOTOR3_IO,GPO,HIGH);
  gpio_init(MOTOR4_IO,GPO,HIGH);*/

}
Example #4
0
void main()
{
    OLED_Init();           //初始化oled
    qd=1;
    ftm_pwm_init(FTM0,FTM_CH3,10000,0);
    ftm_pwm_init(FTM0,FTM_CH4,10000,0);
    ftm_pwm_init(FTM2,FTM_CH0,10000,0);
    ftm_pwm_init(FTM2,FTM_CH1,10000,0);
    adc_init (ADC1_SE10);
    adc_init (ADC1_SE11);
    adc_init (ADC1_SE12);
    adc_init (ADC1_SE13);                               //按键初始化
    gpio_init (PTA13, GPI,HIGH);//拨码开关初始化
    gpio_init (PTA19, GPI,HIGH);
    gpio_init (PTA24, GPI,HIGH);
    gpio_init (PTA25, GPI,HIGH);
    gpio_init (PTA26, GPI,HIGH);
    gpio_init (PTA27, GPI,HIGH);
    gpio_init (PTA28, GPI,HIGH);
    gpio_init (PTA29, GPI,HIGH);

    led_init (LED0);
    mpu6050_init();

    lptmr_delay_ms(1000);

    gyro_zero=ad_ave(100);

    gyro_zero1=ad_ave1(100);

    mpu6050_read();

    accel_accel=(accel_x-accel_zero)/16384.0;
    if(accel_accel>1)   accel_accel=1;
    if(accel_accel<-1)  accel_accel=-1;
    angle_fuse=180/pi*(asin(accel_accel));

    accel_accel1=(accel_y-accel_zero1)/16384.0;
    if(accel_accel1>1)   accel_accel1=1;
    if(accel_accel1<-1)  accel_accel1=-1;
    angle_fuse1=180/3.1415926*(asin(accel_accel1));

    pit_init_ms(PIT0, 5);                                //初始化PIT0,定时时间为: 5ms
    set_vector_handler(PIT0_VECTORn ,PIT0_IRQHandler);      //设置PIT0的中断服务函数为 PIT0_IRQHandler
    enable_irq (PIT0_IRQn);                                 //使能PIT0中断

    uart_init(UART3, 115200);
    while(aa<200);   //初始化 1秒


    DIP_switch();
    while(1)
    {


        //display[0]=angle_fuse;
        //display[1]=angle_fuse1;
        display[0]=angle_fuse3;



        oledplay();


        if(flag==1)
            mode1();
        else if (flag==2)
            mode2();
        else if (flag==3)
            mode3();
        else if (flag==4)
            mode4();



        vcan_sendware((unsigned char *)display, 20);

    }
}
Example #5
0
void servo_init(void)
{
    ftm_pwm_init(servo_FTM, servo_CH,servo_HZ,FTM1_PRECISON);
}
Example #6
0
void Motor_init(void)
{
        MOTOR_EN;
        ftm_pwm_init(GO_FTM,GO_CH,MOTOR_FRE,0);    
        ftm_pwm_init(BACK_FTM,BACK_CH,MOTOR_FRE,0);     
}