|
|
#include <stddef.h>
#include <stdio.h>
#include "board.h"
#include "sdk\components\subcanmodule\zcancmder_subboard_initer.hpp"
/*******************************************************************************
* PROJECT_INCLUDE * *******************************************************************************/ #include "sdk/components/step_motor_ctrl_module/step_motor_ctrl_module.hpp"
#include "sdk\components\mini_servo_motor\feite_servo_motor.hpp"
#include "sdk\components\mini_servo_motor\mini_servo_motor_ctrl_module.hpp"
#include "sdk\components\pipette_module\pipette_ctrl_module_v2.hpp"
#include "sdk\components\sensors\m3078\m3078_code_scaner.hpp"
#include "sdk\components\tmc\ic\ztmc4361A.hpp"
#include "sdk\components\tmc\ic\ztmc5130.hpp"
//
#include "driver.hpp"
#include "sdk\components\sensors\tmp117\tmp117.hpp"
#include "sdk\components\ti\drv8710.hpp"
#include "sdk\components\water_cooling_temperature_control_module\pwm_ctrl_module.hpp"
#include "sdk\components\water_cooling_temperature_control_module\water_cooling_temperature_control_module.hpp"
#include "sdk\components\zcancmder_module\zcan_fan_ctrl_module.hpp"
#define TAG "main"
using namespace iflytop; using namespace std;
static ZCancmderSubboardIniter initer;
extern void umain(); extern "C" { void StartDefaultTask(void const* argument) { umain(); } } /*******************************************************************************
* GET_DEVICE_ID * *******************************************************************************/ static int32_t getDeviceId() { static bool init = false; static ZGPIO ID0; static ZGPIO ID1; static ZGPIO ID2; static ZGPIO ID3; if (!init) { ID0.initAsInput(ID0_IO, ZGPIO::kMode_nopull, ZGPIO::kIRQ_noIrq, true); ID1.initAsInput(ID1_IO, ZGPIO::kMode_nopull, ZGPIO::kIRQ_noIrq, true); ID2.initAsInput(ID2_IO, ZGPIO::kMode_nopull, ZGPIO::kIRQ_noIrq, true); ID3.initAsInput(ID3_IO, ZGPIO::kMode_nopull, ZGPIO::kIRQ_noIrq, true); init = true; } // uint8_t id = ID0.getState() * 1 + ID1.getState() * 2 + ID2.getState() * 4 + ID3.getState() * 8 + ID4.getState() * 16;
if (ID0.getState() == 0) { return 4; } else { return 5; } }
static int32_t getPeltierNum() { static bool init = false; static ZGPIO ID4; if (!init) { ID4.initAsInput(ID4_IO, ZGPIO::kMode_nopull, ZGPIO::kIRQ_noIrq, true); init = true; } if (ID4.getState() == 0) { return 1; } else { return 2; } }
static bool m_onefan = false;
/*******************************************************************************
* INIT_SUBMODULE * *******************************************************************************/ void nvs_init_cb() {}
// ZIPWMFanCtrlModule* fan_ctrl;
// ZIDcMotorCtrlModule* pelter_ctrl;
// ZIPWMPumpCtrlModule* pump_ctrl;
static void initsubmodule() { #define TIMER1_FREQ 1000
#define HEART_SHAFT false
{ static TMP117 temp[4]; static FanCtrlModule fan; static PumpCtrlModule pump; static PeltierCtrlModule peltier;
temp[0].initializate(&hi2c1, TMP117::ID0); temp[1].initializate(&hi2c1, TMP117::ID1); temp[2].initializate(&hi2c1, TMP117::ID2); temp[3].initializate(&hi2c1, TMP117::ID3);
if (getPeltierNum() == 1) { fan.initialize(FanCtrlModule::kfan0); peltier.initialize(PeltierCtrlModule::kpeltier0); } else { fan.initialize(FanCtrlModule::kfan0and1); peltier.initialize(PeltierCtrlModule::kpeltier0and1); } pump.initialize();
/*******************************************************************************
* ����ģ����ʼ�� * *******************************************************************************/ static WaterCoolingTemperatureControlModule waterCoolingTemperatureControlModule; static WaterCoolingTemperatureControlModule::config_t temp_ctrl_config; waterCoolingTemperatureControlModule.createDefaultConfig(&temp_ctrl_config); WaterCoolingTemperatureControlModule::hardwared_config_t hardwared_config = //
{ .temperature_sensor = {&temp[0], &temp[1], &temp[2], &temp[3]}, .temp_fb_index = 1, .fan_ctrl = &fan, .pelter_ctrl = &peltier, .pump_ctrl = &pump, };
waterCoolingTemperatureControlModule.initialize(initer.get_module_id(1), &temp_ctrl_config, &hardwared_config); initer.register_module(&waterCoolingTemperatureControlModule); }
if (getPeltierNum() == 1) { static FanCtrlModule fan; static ZcanFanCtrlModule fan_ctrl_module; fan.initialize(FanCtrlModule::kfan1); fan_ctrl_module.initialize(initer.get_module_id(2), &fan, 50); initer.register_module(&fan_ctrl_module); } }
/*******************************************************************************
* MAIN * *******************************************************************************/ void umain() { ZCancmderSubboardIniter::cfg_t cfg = //
{ .deviceId = getDeviceId(), .input_gpio = { {PC6, ZGPIO::kMode_nopull, ZGPIO::kIRQ_noIrq, true}, {PC7, ZGPIO::kMode_nopull, ZGPIO::kIRQ_noIrq, true}, }, .output_gpio = { {PD0, ZGPIO::kMode_nopull, false, false}, }, }; initer.init(&cfg); initsubmodule(); initer.loop(); }
|