working codez
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
#include "debug.h"
|
||||
#include "com_fileio.h"
|
||||
#include "dspin.h"
|
||||
#include "blinky.h"
|
||||
|
||||
SBMP_Endpoint *dlnk_ep;
|
||||
|
||||
@@ -32,7 +33,7 @@ static void dlnk_rx_bridge(ComIface *iface)
|
||||
{
|
||||
uint8_t b;
|
||||
|
||||
STATUS_LED_Port->BSRR = STATUS_LED_Pin;
|
||||
led_on(LED_SPARE);
|
||||
|
||||
while (com_rx(iface, &b)) {
|
||||
SBMP_RxStatus st = sbmp_ep_receive(dlnk_ep, b);
|
||||
@@ -44,7 +45,7 @@ static void dlnk_rx_bridge(ComIface *iface)
|
||||
}
|
||||
}
|
||||
|
||||
STATUS_LED_Port->BRR = STATUS_LED_Pin;
|
||||
led_off(LED_SPARE);
|
||||
}
|
||||
|
||||
/** Datalink Tx func */
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
#include "main.h"
|
||||
#include <sbmp.h>
|
||||
|
||||
#define DG_MOTOR_HOME 40
|
||||
#define DG_MOTOR_GOTO 41
|
||||
#define DG_MOTOR_START 30
|
||||
#define DG_MOTOR_STOP 31
|
||||
|
||||
// wifi status & control
|
||||
#define DG_SETMODE_AP 44 // request AP mode (AP button pressed)
|
||||
|
||||
+36
-13
@@ -67,17 +67,27 @@ static void try_sbmp_hsk(void *unused)
|
||||
}
|
||||
|
||||
/** Left button was pressed */
|
||||
static void left_btn_click(void)
|
||||
static void left_btn_down(void)
|
||||
{
|
||||
led_blink(LED_BUSY, 100);
|
||||
dSPIN_Move(FWD, STEPS_360 / 4); // rotate by 90deg
|
||||
dSPIN_Run(REV, STEPS_360*2);
|
||||
}
|
||||
|
||||
/** Right button was pressed */
|
||||
static void right_btn_click(void)
|
||||
static void right_btn_down(void)
|
||||
{
|
||||
led_blink(LED_ERROR, 100);
|
||||
dSPIN_Move(REV, STEPS_360 / 4); // rotate by -90deg
|
||||
dSPIN_Run(FWD, STEPS_360*2);
|
||||
}
|
||||
|
||||
/** Left button was pressed */
|
||||
static void left_btn_up(void)
|
||||
{
|
||||
dSPIN_Soft_Stop();
|
||||
}
|
||||
|
||||
/** Right button was pressed */
|
||||
static void right_btn_up(void)
|
||||
{
|
||||
dSPIN_Soft_Stop();
|
||||
}
|
||||
|
||||
/** Datagram rx on SBMP (extern declated in datalink.h) */
|
||||
@@ -87,14 +97,25 @@ void dlnk_rx(SBMP_Datagram *dg)
|
||||
|
||||
PayloadParser pp = pp_start(dg->payload, dg->length);
|
||||
|
||||
int32_t speed;
|
||||
uint8_t fwd;
|
||||
|
||||
led_blink(LED_BUSY, 50);
|
||||
|
||||
switch (dg->type) {
|
||||
case DG_MOTOR_HOME:
|
||||
dSPIN_Go_Home();
|
||||
case DG_MOTOR_START:
|
||||
fwd = (bool) pp_u8(&pp);
|
||||
speed = pp_u32(&pp);
|
||||
|
||||
if (speed > 6144*3) {
|
||||
speed = 6144*3;
|
||||
}
|
||||
|
||||
dSPIN_Run(fwd ? FWD : REV, speed);
|
||||
break;
|
||||
|
||||
case DG_MOTOR_GOTO:;
|
||||
int32_t pos = pp_i32(&pp);
|
||||
dSPIN_Go_To(pos);
|
||||
case DG_MOTOR_STOP:
|
||||
dSPIN_Soft_Stop();
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -112,13 +133,15 @@ static void conf_buttons(void)
|
||||
// button A
|
||||
debo.GPIOx = BUTTON_A_Port;
|
||||
debo.pin = BUTTON_A_Pin;
|
||||
debo.rising_cb = left_btn_click;
|
||||
debo.rising_cb = left_btn_down;
|
||||
debo.falling_cb = left_btn_up;
|
||||
debo_register_pin(&debo);
|
||||
|
||||
// Button B
|
||||
debo.GPIOx = BUTTON_B_Port;
|
||||
debo.pin = BUTTON_B_Pin;
|
||||
debo.rising_cb = right_btn_click;
|
||||
debo.rising_cb = right_btn_down;
|
||||
debo.falling_cb = right_btn_up;
|
||||
debo_register_pin(&debo);
|
||||
|
||||
add_periodic_task(debo_periodic_task, NULL, 10, true);
|
||||
|
||||
Reference in New Issue
Block a user