|
|
#include "main.hpp"
#include <stddef.h>
#include <stdio.h>
//
#include "sdk/os/zos.hpp"
#include "sdk\components\cmdscheduler\cmd_scheduler.hpp"
#include "sdk\components\step_motor_45\step_motor_45.hpp"
#include "sdk\components\step_motor_45\step_motor_45_scheduler.hpp"
#define TAG "main"
namespace iflytop { Main gmain; };
using namespace iflytop; using namespace std;
extern "C" { void StartDefaultTask(void const* argument) { umain(); } } /*******************************************************************************
* ���� * *******************************************************************************/ static chip_cfg_t chipcfg = { .us_dleay_tim = &DELAY_US_TIMER, .tim_irq_scheduler_tim = &TIM_IRQ_SCHEDULER_TIMER, .huart = &DEBUG_UART, .debuglight = DEBUG_LIGHT_GPIO, };
static StepMotor45::cfg_t cfg1 = { .max_pos = -1, .enable_zero_limit = false, .enable_max_pos_limit = false, .mirror = false,
.zeroPin = PinNull, .zeroPinMirror = false,
.driverPin = {PB15, PD11, PD12, PD13}, .driverPinMirror = false, };
static StepMotor45::cfg_t cfg2 = { .max_pos = -1, .enable_zero_limit = false, .enable_max_pos_limit = false, .mirror = false,
.zeroPin = PinNull, .zeroPinMirror = false,
.driverPin = {PG2, PG3, PG4, PG5}, .driverPinMirror = false, };
static StepMotor45::cfg_t cfg3 = { .max_pos = -1, .enable_zero_limit = false, .enable_max_pos_limit = false, .mirror = false,
.zeroPin = PinNull, .zeroPinMirror = false,
.driverPin = {PG6, PG7, PG8, PC6}, .driverPinMirror = false, };
static StepMotor45::cfg_t cfg4 = { .max_pos = -1, .enable_zero_limit = false, .enable_max_pos_limit = false, .mirror = false,
.zeroPin = PinNull, .zeroPinMirror = false,
.driverPin = {PC7, PC8, PC9, PA8}, .driverPinMirror = false, };
static StepMotor45::cfg_t cfg5 = { .max_pos = -1, .enable_zero_limit = false, .enable_max_pos_limit = false, .mirror = false,
.zeroPin = PinNull, .zeroPinMirror = false,
.driverPin = {PA13, PA14, PA15, PC10}, .driverPinMirror = false, };
/*******************************************************************************
* ���� * *******************************************************************************/
static StepMotor45 g_step_motor45_1; static StepMotor45 g_step_motor45_2; static StepMotor45 g_step_motor45_3; static StepMotor45 g_step_motor45_4; static StepMotor45 g_step_motor45_5;
void Main::run() { /*******************************************************************************
* ϵͳ��ʼ�� * *******************************************************************************/
chip_init(&chipcfg);
zos_cfg_t zoscfg; zos_init(&zoscfg);
g_step_motor45_1.initialize(cfg1); g_step_motor45_2.initialize(cfg2); g_step_motor45_3.initialize(cfg3); g_step_motor45_4.initialize(cfg4); g_step_motor45_5.initialize(cfg5);
StepMotor45Scheduler step_motor45_scheduler; step_motor45_scheduler.initialize(&htim10, 1000); step_motor45_scheduler.addMotor(&g_step_motor45_1); step_motor45_scheduler.addMotor(&g_step_motor45_2); step_motor45_scheduler.addMotor(&g_step_motor45_3); step_motor45_scheduler.addMotor(&g_step_motor45_4); step_motor45_scheduler.addMotor(&g_step_motor45_5); // g_step_motor45_1.rotate(true, 1000);
step_motor45_scheduler.start();
CmdScheduler cmdScheduler; cmdScheduler.initialize(&DEBUG_UART, 1000); cmdScheduler.registerCmd("help", //
[this](int argc, char** argv, CmdScheduler::CmdProcessContext* context) { ZLOGI(TAG, "do_help"); });
while (true) { OSDefaultSchduler::getInstance()->loop(); cmdScheduler.schedule(); osDelay(1); } }
|