|
|
|
@@ -40,30 +40,30 @@ int drive_ctrl_init(void)
|
|
|
|
|
unsigned int duty = 0;
|
|
|
|
|
|
|
|
|
|
/* open enable pins */
|
|
|
|
|
open(drive_ctrl.left_forward->enable);
|
|
|
|
|
write(drive_ctrl.left_forward->enable, "0", 1);
|
|
|
|
|
open(drive_ctrl.left_backward->enable);
|
|
|
|
|
write(drive_ctrl.left_backward->enable, "0", 1);
|
|
|
|
|
open(drive_ctrl.right_forward->enable);
|
|
|
|
|
write(drive_ctrl.right_forward->enable, "0", 1);
|
|
|
|
|
open(drive_ctrl.right_backward->enable);
|
|
|
|
|
write(drive_ctrl.right_backward->enable, "0", 1);
|
|
|
|
|
drv_open(drive_ctrl.left_forward->enable);
|
|
|
|
|
drv_write(drive_ctrl.left_forward->enable, "0", 1);
|
|
|
|
|
drv_open(drive_ctrl.left_backward->enable);
|
|
|
|
|
drv_write(drive_ctrl.left_backward->enable, "0", 1);
|
|
|
|
|
drv_open(drive_ctrl.right_forward->enable);
|
|
|
|
|
drv_write(drive_ctrl.right_forward->enable, "0", 1);
|
|
|
|
|
drv_open(drive_ctrl.right_backward->enable);
|
|
|
|
|
drv_write(drive_ctrl.right_backward->enable, "0", 1);
|
|
|
|
|
|
|
|
|
|
/* open pwm's */
|
|
|
|
|
open(drive_ctrl.left_backward->pwm);
|
|
|
|
|
ioctl(drive_ctrl.left_backward->pwm, IOCTL_PWM_SET_DUTY_CYCLE, (const void *)&duty);
|
|
|
|
|
open(drive_ctrl.left_forward->pwm);
|
|
|
|
|
ioctl(drive_ctrl.left_forward->pwm, IOCTL_PWM_SET_DUTY_CYCLE, (const void *)&duty);
|
|
|
|
|
open(drive_ctrl.right_backward->pwm);
|
|
|
|
|
ioctl(drive_ctrl.right_backward->pwm, IOCTL_PWM_SET_DUTY_CYCLE, (const void *)&duty);
|
|
|
|
|
open(drive_ctrl.right_forward->pwm);
|
|
|
|
|
ioctl(drive_ctrl.right_forward->pwm, IOCTL_PWM_SET_DUTY_CYCLE, (const void *)&duty);
|
|
|
|
|
drv_open(drive_ctrl.left_backward->pwm);
|
|
|
|
|
drv_ioctl(drive_ctrl.left_backward->pwm, IOCTL_PWM_SET_DUTY_CYCLE, (const void *)&duty);
|
|
|
|
|
drv_open(drive_ctrl.left_forward->pwm);
|
|
|
|
|
drv_ioctl(drive_ctrl.left_forward->pwm, IOCTL_PWM_SET_DUTY_CYCLE, (const void *)&duty);
|
|
|
|
|
drv_open(drive_ctrl.right_backward->pwm);
|
|
|
|
|
drv_ioctl(drive_ctrl.right_backward->pwm, IOCTL_PWM_SET_DUTY_CYCLE, (const void *)&duty);
|
|
|
|
|
drv_open(drive_ctrl.right_forward->pwm);
|
|
|
|
|
drv_ioctl(drive_ctrl.right_forward->pwm, IOCTL_PWM_SET_DUTY_CYCLE, (const void *)&duty);
|
|
|
|
|
|
|
|
|
|
/* enable enable pins */
|
|
|
|
|
write(drive_ctrl.left_forward->enable, "1", 1);
|
|
|
|
|
write(drive_ctrl.left_backward->enable, "1", 1);
|
|
|
|
|
write(drive_ctrl.right_forward->enable, "1", 1);
|
|
|
|
|
write(drive_ctrl.right_backward->enable, "1", 1);
|
|
|
|
|
drv_write(drive_ctrl.left_forward->enable, "1", 1);
|
|
|
|
|
drv_write(drive_ctrl.left_backward->enable, "1", 1);
|
|
|
|
|
drv_write(drive_ctrl.right_forward->enable, "1", 1);
|
|
|
|
|
drv_write(drive_ctrl.right_backward->enable, "1", 1);
|
|
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
@@ -96,8 +96,8 @@ int drive_ctrl_set_speed_left(int speed_percent)
|
|
|
|
|
{
|
|
|
|
|
unsigned int front_speed = calc_speed_front(speed_percent);
|
|
|
|
|
unsigned int back_speed = calc_speed_back(speed_percent);
|
|
|
|
|
int ret = ioctl(drive_ctrl.left_backward->pwm, IOCTL_PWM_SET_DUTY_CYCLE, (const void *)&back_speed);
|
|
|
|
|
ret |= ioctl(drive_ctrl.left_forward->pwm, IOCTL_PWM_SET_DUTY_CYCLE, (const void *)&front_speed);
|
|
|
|
|
int ret = drv_ioctl(drive_ctrl.left_backward->pwm, IOCTL_PWM_SET_DUTY_CYCLE, (const void *)&back_speed);
|
|
|
|
|
ret |= drv_ioctl(drive_ctrl.left_forward->pwm, IOCTL_PWM_SET_DUTY_CYCLE, (const void *)&front_speed);
|
|
|
|
|
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
@@ -106,8 +106,8 @@ int drive_ctrl_set_speed_right(int speed_percent)
|
|
|
|
|
{
|
|
|
|
|
unsigned int front_speed = calc_speed_front(speed_percent);
|
|
|
|
|
unsigned int back_speed = calc_speed_back(speed_percent);
|
|
|
|
|
int ret = ioctl(drive_ctrl.right_backward->pwm, IOCTL_PWM_SET_DUTY_CYCLE, (const void *)&back_speed);
|
|
|
|
|
ret |= ioctl(drive_ctrl.right_forward->pwm, IOCTL_PWM_SET_DUTY_CYCLE, (const void *)&front_speed);
|
|
|
|
|
int ret = drv_ioctl(drive_ctrl.right_backward->pwm, IOCTL_PWM_SET_DUTY_CYCLE, (const void *)&back_speed);
|
|
|
|
|
ret |= drv_ioctl(drive_ctrl.right_forward->pwm, IOCTL_PWM_SET_DUTY_CYCLE, (const void *)&front_speed);
|
|
|
|
|
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|