EE445M RTOS
Taken at the University of Texas Spring 2015
|
#include <motorpp.hpp>
Public Member Functions | |
motor () | |
motor (memory_address_t ctrl_base, memory_address_t ctrl_pin, memory_address_t pwm_base, memory_address_t pwm_gen, memory_address_t pwm_out, bool motor_installed_backwards=false) | |
void | set_motor_installed_backwards (bool) |
void | stop (void) |
void | start (void) |
void | set (percent_t speed) |
void | set (percent_t percent_full_speed, Direction dir) |
percent_t | get (void) |
void | reverse (void) |
![]() | |
uint32_t | StartCritical (void) |
void | EndCritical (uint32_t primask) |
Static Public Attributes | |
static const uint16_t | pwm_max_period = 10000 |
Private Member Functions | |
void | motor_init (void) |
void | pwm_init (void) |
Direction | adjusted_direction (void) |
Private Attributes | |
blinker | ctrl |
blinker | pwm |
memory_address_t | ctrl_base |
memory_address_t | ctrl_pin |
memory_address_t | pwm_base |
memory_address_t | pwm_pin |
memory_address_t | pwm_gen |
memory_address_t | pwm_out |
bool | motor_installed_backwards |
uint32_t | pwm_period |
uint32_t | duty_period |
Direction | direction |
percent_t | current_speed |
bool | enabled |
Additional Inherited Members | |
![]() | |
static uint32_t | static_StartCritical (void) |
static void | static_EndCritical (uint32_t primask) |
Definition at line 19 of file motorpp.hpp.
motor::motor | ( | ) |
Definition at line 11 of file motorpp.cpp.
motor::motor | ( | memory_address_t | ctrl_base, |
memory_address_t | ctrl_pin, | ||
memory_address_t | pwm_base, | ||
memory_address_t | pwm_gen, | ||
memory_address_t | pwm_out, | ||
bool | motor_installed_backwards = false |
||
) |
Definition at line 13 of file motorpp.cpp.
References ctrl, ctrl_base, ctrl_pin, ctlsys::enable_periph(), enabled, motor_init(), motor_installed_backwards, pwm_base, pwm_gen, and pwm_out.
|
private |
Return direction adjusted for motor position on the robot – Direction refers to the robot's orientation, not the motor's
Definition at line 39 of file motorpp.cpp.
References direction, motor_installed_backwards, and nav::opposite().
Referenced by set().
percent_t motor::get | ( | void | ) |
|
private |
Initializes pins PE0-3 for output
Definition at line 89 of file motorpp.cpp.
References BACKWARD, direction, FORWARD, motor_installed_backwards, and pwm_init().
Referenced by motor().
|
private |
Definition at line 102 of file motorpp.cpp.
References ctrl_base, DEFAULT_PWM_PERIOD, ctlsys::enable_periph(), critical::EndCritical(), FORWARD, pwm_base, pwm_gen, pwm_out, set(), start(), and critical::StartCritical().
Referenced by motor_init().
void motor::reverse | ( | void | ) |
Reverse motor direction.
note maintains current speed
Definition at line 136 of file motorpp.cpp.
References current_speed, direction, nav::opposite(), and set().
Referenced by switch_responder().
void motor::set | ( | percent_t | speed | ) |
Set the motor speed.
Definition at line 67 of file motorpp.cpp.
References adjusted_direction(), BACKWARD, clamp(), current_speed, enabled, FORWARD, pwm_base, pwm_max_period, and pwm_out.
Referenced by drive::backward(), drive::forward(), pwm_init(), reverse(), drive::set(), set(), drive::steer(), and stop().
Set motor speed and direction.
Definition at line 56 of file motorpp.cpp.
References adjusted_direction(), BACKWARD, ctrl, ctrl_pin, direction, FORWARD, set(), blinker::turn_off(), and blinker::turn_on().
void motor::set_motor_installed_backwards | ( | bool | backwards | ) |
Denote that this motor is fastened to the robot in such a way that it requires reversed (directionally) control signals.
Definition at line 34 of file motorpp.cpp.
References motor_installed_backwards.
void motor::start | ( | void | ) |
Enable power to the motor.
Definition at line 96 of file motorpp.cpp.
References enabled, pwm_base, and pwm_gen.
Referenced by pwm_init(), and drive::start().
void motor::stop | ( | void | ) |
Cut all power to the motor.
Definition at line 45 of file motorpp.cpp.
References BACKWARD, direction, enabled, and set().
Referenced by drive::stop().
|
private |
Definition at line 21 of file motorpp.hpp.
|
private |
Definition at line 23 of file motorpp.hpp.
Referenced by motor(), and pwm_init().
|
private |
Definition at line 24 of file motorpp.hpp.
|
private |
Definition at line 34 of file motorpp.hpp.
|
private |
Definition at line 33 of file motorpp.hpp.
Referenced by adjusted_direction(), motor_init(), reverse(), set(), and stop().
|
private |
Definition at line 32 of file motorpp.hpp.
|
private |
|
private |
Definition at line 29 of file motorpp.hpp.
Referenced by adjusted_direction(), motor(), motor_init(), and set_motor_installed_backwards().
|
private |
Definition at line 22 of file motorpp.hpp.
|
private |
Definition at line 25 of file motorpp.hpp.
Referenced by motor(), pwm_init(), set(), and start().
|
private |
Definition at line 27 of file motorpp.hpp.
Referenced by motor(), pwm_init(), and start().
|
static |
Definition at line 75 of file motorpp.hpp.
Referenced by set(), and drive::steer().
|
private |
Definition at line 28 of file motorpp.hpp.
Referenced by motor(), pwm_init(), and set().
|
private |
Definition at line 31 of file motorpp.hpp.
|
private |
Definition at line 26 of file motorpp.hpp.