add function to revert wheel direction
This commit is contained in:
parent
4137d4f350
commit
389c4ecd92
|
@ -23,6 +23,8 @@
|
||||||
#define DIRECTION_LEFT (DIRECTION_RIGHT_FORWARD | DIRECTION_LEFT_BACKWARD)
|
#define DIRECTION_LEFT (DIRECTION_RIGHT_FORWARD | DIRECTION_LEFT_BACKWARD)
|
||||||
#define DIRECTION_RIGHT (DIRECTION_RIGHT_BACKWARD | DIRECTION_LEFT_FORWARD)
|
#define DIRECTION_RIGHT (DIRECTION_RIGHT_BACKWARD | DIRECTION_LEFT_FORWARD)
|
||||||
|
|
||||||
|
#define DIRECTION_MASK (DIRECTION_FORWARD | DIRECTION_BACKWARD)
|
||||||
|
|
||||||
#define SPEED_PIN_RIGHT 15U
|
#define SPEED_PIN_RIGHT 15U
|
||||||
#define SPEED_PIN_LEFT 16U
|
#define SPEED_PIN_LEFT 16U
|
||||||
|
|
||||||
|
|
|
@ -19,14 +19,24 @@
|
||||||
void
|
void
|
||||||
set_wheel_direction(uint32_t direction)
|
set_wheel_direction(uint32_t direction)
|
||||||
{
|
{
|
||||||
static const uint32_t mask
|
gpio_put_masked(DIRECTION_MASK, 0U);
|
||||||
= DIRECTION_LEFT_FORWARD | DIRECTION_LEFT_BACKWARD
|
|
||||||
| DIRECTION_RIGHT_FORWARD | DIRECTION_RIGHT_BACKWARD;
|
|
||||||
|
|
||||||
gpio_put_masked(mask, 0U);
|
|
||||||
gpio_set_mask(direction);
|
gpio_set_mask(direction);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* @brief Set the direction of the wheel to opposite direction using bit mask
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
revert_wheel_direction()
|
||||||
|
{
|
||||||
|
uint32_t current_direction = gpio_get_all();
|
||||||
|
|
||||||
|
uint32_t reverted_direction = current_direction ^ DIRECTION_MASK;
|
||||||
|
|
||||||
|
gpio_put_masked(DIRECTION_MASK, 0U);
|
||||||
|
gpio_set_mask(reverted_direction & DIRECTION_MASK);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
turn_left_90()
|
turn_left_90()
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue