- Main Page
- Modules
- Data Structures
- Files
- Directories

# e_motors.h File Reference

Manage the motors (with timer1, 2, 3). More...

## Functions
void | e_init_motors (void)
| Initialize the motors's agendas.
void | e_set_speed_left (int motor_speed)
| Manage the left motor speed.
void | e_set_speed_right (int motor_speed)
| Manage the right motor speed.
void | e_set_speed (int linear_speed, int angular_speed)
| Manage linear/angular speed.
void | e_set_steps_left (int steps_left)
| Set the number of left motor steps.
void | e_set_steps_right (int steps_right)
| Set the number of right motor steps.
int | e_get_steps_left ()
| Give the number of left motor steps.
int | e_get_steps_right ()
| Give the number of right motor steps.

## Detailed Description

Manage the motors (with timer1, 2, 3).

This module manage the motors with the fast agenda solution (timer1, 2, 3).

See also:
  e_agenda.h

Author:
  Code: Francesco Mondada, Lucas Meier
  Doc: Jonathan Besuchet

## Function Documentation

int e_get_steps_left | ( | void |  | ) |

Give the number of left motor steps.

Returns:
  The number of phases steps made since the left motor is running.

int e_get_steps_right | ( | void |  | ) |

Give the number of right motor steps.

Returns:
  The number of phases steps made since the right motor is running.

void e_init_motors | ( | void |  | ) |

Initialize the motors's agendas.

This function initialize the agendas used by the motors. In fact it call e_activate_agenda(void (*func)(void), int cycle) function.

See also:
  e_activate_agenda

This function initialize the agendas used by the motors. In fact it call "e_activate_agenda(void (*func)(void), int cycle)" function.

See also:
  e_activate_agenda

Initialize the motors's agendas.

This function initialize the ports used by the motors. In fact it call "the e_init_port()" function.

See also:
  e_init_port

Initialize the motors's agendas.

This function configure timer3 and initialize the ports used by the motors. In fact it call "the e_init_port()" function.

See also:
  e_init_port

void e_set_speed | ( | int | linear_speed,
|  | int | angular_speed |
| ) |  |  |

Manage linear/angular speed.

This function manage the speed of the motors according to the desired linear and angular speed.

Parameters:

  | linear_speed | the speed in the axis of e-puck
  | angular_speed | the rotation speed (trigonometric)

void e_set_speed_left | ( | int | motor_speed | ) |

Manage the left motor speed.

This function manage the left motor speed by changing the MOTOR1 phases. The changing phases frequency (=> speed) is controled by the agenda (throw the function e_set_agenda_cycle(void (*func)(void), int cycle)).

Parameters:

  | motor_speed | from -1000 to 1000 give the motor speed in steps/s, positive value to go forward and negative to go backward.

See also:
  e_set_agenda_cycle

This function manage the left motor speed by changing the MOTOR1 phases. The changing phases frequency (=> speed) is controled by the agenda (throw the function "e_set_agenda_cycle(void (*func)(void), int cycle)").

Parameters:

  | motor_speed | from -1000 to 1000 give the motor speed in steps/s, positive value to go forward and negative to go backward.

See also:
  e_set_agenda_cycle

Manage the left motor speed.

This function manage the left motor speed by changing the MOTOR1 phases. The changing phases frequency (=> speed) is controled by the timer5.

Parameters:

  | motor_speed | from -1000 to 1000 give the motor speed in steps/s, positive value to go forward and negative to go backward.

Manage the left motor speed.

This function manage the left motor speed by changing the MOTOR1 phases. The changing phases frequency (=> speed) is controled by the timer3.

Parameters:

  | motor_speed | from -1000 to 1000 give the motor speed in steps/s, positive value to go forward and negative to go backward.

void e_set_speed_right | ( | int | motor_speed | ) |

Manage the right motor speed.

This function manage the right motor speed by changing the MOTOR2 phases. The changing phases frequency (=> speed) is controled by the agenda (throw the function e_set_agenda_cycle(void (*func)(void), int cycle)).

Parameters:

  | motor_speed | from -1000 to 1000 give the motor speed in steps/s, positive value to go forward and negative to go backward.

See also:
  e_set_agenda_cycle

This function manage the right motor speed by changing the MOTOR2 phases. The changing phases frequency (=> speed) is controled by the agenda (throw the function "e_set_agenda_cycle(void (*func)(void), int cycle)").

Parameters:

  | motor_speed | from -1000 to 1000 give the motor speed in steps/s, positive value to go forward and negative to go backward.

See also:
  e_set_agenda_cycle

Manage the right motor speed.

This function manage the right motor speed by changing the MOTOR2 phases. The changing phases frequency (=> speed) is controled by the timer4.

Parameters:

  | motor_speed | from -1000 to 1000 give the motor speed in steps/s, positive value to go forward and negative to go backward.

Manage the right motor speed.

This function manage the right motor speed by changing the MOTOR2 phases. The changing phases frequency (=> speed) is controled by the timer3.

Parameters:

  | motor_speed | from -1000 to 1000 give the motor speed in steps/s, positive value to go forward and negative to go backward.

void e_set_steps_left | ( | int | set_steps | ) |

Set the number of left motor steps.

Parameters:

  | set_steps | The number of changed phases that you want set.

void e_set_steps_right | ( | int | set_steps | ) |

Set the number of right motor steps.

Parameters:

  | set_steps | The number of changed phases that you want set.