|
|
@ -9,19 +9,55 @@ typedef enum { |
|
|
|
/*******************************************************************************
|
|
|
|
* 模块通用配置和状态 * |
|
|
|
*******************************************************************************/ |
|
|
|
kreg_module_version = REG_INDEX(0, 0, 0), // 模块版本
|
|
|
|
kreg_module_type = REG_INDEX(0, 0, 1), // 模块类型
|
|
|
|
kreg_module_status = REG_INDEX(0, 0, 2), // 0idle,1busy,2error
|
|
|
|
kreg_module_errorcode = REG_INDEX(0, 0, 3), // inited_flag
|
|
|
|
kreg_module_initflag = REG_INDEX(0, 0, 4), // inited_flag
|
|
|
|
kreg_module_enableflag = REG_INDEX(0, 0, 5), //
|
|
|
|
kreg_module_errorbitflag0 = REG_INDEX(0, 0, 6), // 模块异常标志,bit,每个模块自定义
|
|
|
|
kreg_module_errorbitflag1 = REG_INDEX(0, 0, 7), //
|
|
|
|
kreg_module_input_state = REG_INDEX(0, 0, 8), //
|
|
|
|
kreg_module_output_state = REG_INDEX(0, 0, 9), //
|
|
|
|
kreg_module_raw_sector_size = REG_INDEX(0, 0, 10), // sector_size
|
|
|
|
kreg_module_raw_sector_num = REG_INDEX(0, 0, 11), //
|
|
|
|
kreg_module_is_online = REG_INDEX(0, 0, 12), //
|
|
|
|
kreg_module_version = REG_INDEX(0, 0, 0), // 模块版本
|
|
|
|
kreg_module_type = REG_INDEX(0, 0, 1), // 模块类型
|
|
|
|
kreg_module_status = REG_INDEX(0, 0, 2), // 0idle,1busy,2error
|
|
|
|
kreg_module_errorcode = REG_INDEX(0, 0, 3), // inited_flag
|
|
|
|
kreg_module_initflag = REG_INDEX(0, 0, 4), // inited_flag
|
|
|
|
kreg_module_enableflag = REG_INDEX(0, 0, 5), // 0idle,1busy,2error
|
|
|
|
kreg_module_errorbitflag0 = REG_INDEX(0, 0, 6), // 模块异常标志,bit,每个模块自定义
|
|
|
|
kreg_module_errorbitflag1 = REG_INDEX(0, 0, 7), //
|
|
|
|
kreg_module_input_state = REG_INDEX(0, 0, 8), //
|
|
|
|
kreg_module_output_state = REG_INDEX(0, 0, 9), //
|
|
|
|
kreg_module_raw_sector_size = REG_INDEX(0, 0, 10), // sector_size
|
|
|
|
kreg_module_raw_sector_num = REG_INDEX(0, 0, 11), //
|
|
|
|
kreg_module_is_online = REG_INDEX(0, 0, 12), //
|
|
|
|
kreg_module_last_cmd_exec_status = REG_INDEX(0, 0, 20), // 上一条指令执行的状态
|
|
|
|
kreg_module_last_cmd_exec_val0 = REG_INDEX(0, 0, 21), // 上一条指令执行的结果0
|
|
|
|
kreg_module_last_cmd_exec_val1 = REG_INDEX(0, 0, 22), // 上一条指令执行的结果1
|
|
|
|
kreg_module_last_cmd_exec_val2 = REG_INDEX(0, 0, 23), // 上一条指令执行的结果2
|
|
|
|
kreg_module_last_cmd_exec_val3 = REG_INDEX(0, 0, 24), // 上一条指令执行的结果3
|
|
|
|
kreg_module_last_cmd_exec_val4 = REG_INDEX(0, 0, 25), // 上一条指令执行的结果4
|
|
|
|
kreg_module_last_cmd_exec_val5 = REG_INDEX(0, 0, 26), // 上一条指令执行的结果5
|
|
|
|
kreg_module_private0 = REG_INDEX(0, 0, 30), // 模块私有状态0
|
|
|
|
kreg_module_private1 = REG_INDEX(0, 0, 31), // 模块私有状态1
|
|
|
|
kreg_module_private2 = REG_INDEX(0, 0, 32), // 模块私有状态2
|
|
|
|
kreg_module_private3 = REG_INDEX(0, 0, 33), // 模块私有状态3
|
|
|
|
kreg_module_private4 = REG_INDEX(0, 0, 34), // 模块私有状态4
|
|
|
|
kreg_module_private5 = REG_INDEX(0, 0, 35), // 模块私有状态5
|
|
|
|
kreg_module_private6 = REG_INDEX(0, 0, 36), // 模块私有状态6
|
|
|
|
kreg_module_private7 = REG_INDEX(0, 0, 37), // 模块私有状态7
|
|
|
|
kreg_module_private8 = REG_INDEX(0, 0, 38), // 模块私有状态8
|
|
|
|
kreg_module_private9 = REG_INDEX(0, 0, 39), // 模块私有状态9
|
|
|
|
kreg_module_do_action0 = REG_INDEX(0, 0, 40), // 方法0
|
|
|
|
kreg_module_action_param1 = REG_INDEX(0, 0, 41), // 方法1
|
|
|
|
kreg_module_action_param2 = REG_INDEX(0, 0, 42), // 方法2
|
|
|
|
kreg_module_action_param3 = REG_INDEX(0, 0, 43), // 方法3
|
|
|
|
kreg_module_action_param4 = REG_INDEX(0, 0, 44), // 方法4
|
|
|
|
kreg_module_action_param5 = REG_INDEX(0, 0, 45), // 方法5
|
|
|
|
kreg_module_action_param6 = REG_INDEX(0, 0, 46), // 方法6
|
|
|
|
kreg_module_action_param7 = REG_INDEX(0, 0, 47), // 方法7
|
|
|
|
kreg_module_action_param8 = REG_INDEX(0, 0, 48), // 方法8
|
|
|
|
kreg_module_action_param9 = REG_INDEX(0, 0, 49), // 方法9
|
|
|
|
kreg_module_action_ack1 = REG_INDEX(0, 0, 51), // ACK1
|
|
|
|
kreg_module_action_ack2 = REG_INDEX(0, 0, 52), // ACK2
|
|
|
|
kreg_module_action_ack3 = REG_INDEX(0, 0, 53), // ACK3
|
|
|
|
kreg_module_action_ack4 = REG_INDEX(0, 0, 54), // ACK4
|
|
|
|
kreg_module_action_ack5 = REG_INDEX(0, 0, 55), // ACK5
|
|
|
|
kreg_module_action_ack6 = REG_INDEX(0, 0, 56), // ACK6
|
|
|
|
kreg_module_action_ack7 = REG_INDEX(0, 0, 57), // ACK7
|
|
|
|
kreg_module_action_ack8 = REG_INDEX(0, 0, 58), // ACK8
|
|
|
|
kreg_module_action_ack9 = REG_INDEX(0, 0, 59), // ACK9
|
|
|
|
|
|
|
|
/*******************************************************************************
|
|
|
|
* SENSOR * |
|
|
@ -122,13 +158,16 @@ typedef enum { |
|
|
|
kreg_pwm7_freq = REG_INDEX(3, 70, 2), //
|
|
|
|
|
|
|
|
/*******************************************************************************
|
|
|
|
* 机械人通用配置 * |
|
|
|
*******************************************************************************/ |
|
|
|
|
|
|
|
/*******************************************************************************
|
|
|
|
* MOTOR_DEFAULT * |
|
|
|
*******************************************************************************/ |
|
|
|
kreg_robot_move = REG_INDEX(10, 0, 0), // 机器人X是否在移动
|
|
|
|
kreg_robot_pos = REG_INDEX(10, 0, 1), // 机器人x坐标
|
|
|
|
kreg_robot_velocity = REG_INDEX(10, 0, 2), // 机器人x速度
|
|
|
|
kreg_robot_torque = REG_INDEX(10, 0, 3), // 机器人x电流
|
|
|
|
kreg_robot_last_cmd_dpos = REG_INDEX(10, 0, 4), // 机器人x上一条指令的相对位移
|
|
|
|
kreg_robot_move = REG_INDEX(10, 0, 0), // 机器人X是否在移动
|
|
|
|
kreg_robot_pos = REG_INDEX(10, 0, 1), // 机器人x坐标
|
|
|
|
kreg_robot_velocity = REG_INDEX(10, 0, 2), // 机器人x速度
|
|
|
|
kreg_robot_torque = REG_INDEX(10, 0, 3), // 机器人x电流
|
|
|
|
|
|
|
|
kreg_motor_shift = REG_INDEX(10, 50, 0), // x偏移
|
|
|
|
kreg_motor_shaft = REG_INDEX(10, 50, 1), // x轴是否反转
|
|
|
@ -242,6 +281,99 @@ typedef enum { |
|
|
|
|
|
|
|
kreg_xyrobot_robot_type = REG_INDEX(20, 50, 0), // 机器人类型 0:hbot 1:corexy
|
|
|
|
|
|
|
|
/*******************************************************************************
|
|
|
|
* PID控制器(3000->4000) * |
|
|
|
*******************************************************************************/ |
|
|
|
kreg_pid_target = REG_INDEX(30, 0, 0), // 目标数值
|
|
|
|
kreg_pid_nowoutput = REG_INDEX(30, 0, 1), // 当前输出
|
|
|
|
kreg_pid_feedbackval = REG_INDEX(30, 0, 2), // 当前输出
|
|
|
|
kreg_pid_kp = REG_INDEX(30, 50, 0), // kp
|
|
|
|
kreg_pid_ki = REG_INDEX(30, 50, 1), // ki
|
|
|
|
kreg_pid_kd = REG_INDEX(30, 50, 2), // kd
|
|
|
|
kreg_pid_max_output = REG_INDEX(30, 50, 3), // 最大输出
|
|
|
|
kreg_pid_min_output = REG_INDEX(30, 50, 4), // 最小输出
|
|
|
|
kreg_pid_max_integral = REG_INDEX(30, 50, 5), // 最大积分
|
|
|
|
kreg_pid_min_integral = REG_INDEX(30, 50, 6), // 最小积分
|
|
|
|
kreg_error_limit = REG_INDEX(30, 50, 7), // 误差限制
|
|
|
|
kreg_compute_interval = REG_INDEX(30, 50, 8), // 计算间隔
|
|
|
|
|
|
|
|
/*******************************************************************************
|
|
|
|
* 风扇控制 * |
|
|
|
*******************************************************************************/ |
|
|
|
kreg_fan0_ctrl_speed_level = REG_INDEX(31, 0, 0), // 风扇转速0,1,2,3
|
|
|
|
kreg_fan1_ctrl_speed_level = REG_INDEX(31, 0, 1), // 风扇转速0,1,2,3
|
|
|
|
kreg_fan2_ctrl_speed_level = REG_INDEX(31, 0, 2), // 风扇转速0,1,2,3
|
|
|
|
kreg_fan3_ctrl_speed_level = REG_INDEX(31, 0, 3), // 风扇转速0,1,2,3
|
|
|
|
kreg_fan4_ctrl_speed_level = REG_INDEX(31, 0, 4), // 风扇转速0,1,2,3
|
|
|
|
|
|
|
|
kreg_fan0_speed_level = REG_INDEX(31, 10, 0), // 风扇实时转速0,1,2,3
|
|
|
|
kreg_fan1_speed_level = REG_INDEX(31, 10, 1), // 风扇实时转速0,1,2,3
|
|
|
|
kreg_fan2_speed_level = REG_INDEX(31, 10, 2), // 风扇实时转速0,1,2,3
|
|
|
|
kreg_fan3_speed_level = REG_INDEX(31, 10, 3), // 风扇实时转速0,1,2,3
|
|
|
|
kreg_fan4_speed_level = REG_INDEX(31, 10, 4), // 风扇实时转速0,1,2,3
|
|
|
|
|
|
|
|
kreg_pwm_pump0_ctrl_speed_level = REG_INDEX(32, 0, 0), // PWM水泵0,1,2,3
|
|
|
|
kreg_pwm_pump1_ctrl_speed_level = REG_INDEX(32, 0, 1), // PWM水泵0,1,2,3
|
|
|
|
kreg_pwm_pump2_ctrl_speed_level = REG_INDEX(32, 0, 2), // PWM水泵0,1,2,3
|
|
|
|
kreg_pwm_pump3_ctrl_speed_level = REG_INDEX(32, 0, 3), // PWM水泵0,1,2,3
|
|
|
|
kreg_pwm_pump4_ctrl_speed_level = REG_INDEX(32, 0, 4), // PWM水泵0,1,2,3
|
|
|
|
|
|
|
|
kreg_pwm_pump0_speed_level = REG_INDEX(32, 10, 0), // PWM水泵0,1,2,3
|
|
|
|
kreg_pwm_pump1_speed_level = REG_INDEX(32, 10, 1), // PWM水泵0,1,2,3
|
|
|
|
kreg_pwm_pump2_speed_level = REG_INDEX(32, 10, 2), // PWM水泵0,1,2,3
|
|
|
|
kreg_pwm_pump3_speed_level = REG_INDEX(32, 10, 3), // PWM水泵0,1,2,3
|
|
|
|
kreg_pwm_pump4_speed_level = REG_INDEX(32, 10, 4), // PWM水泵0,1,2,3
|
|
|
|
|
|
|
|
/*******************************************************************************
|
|
|
|
* 移液枪状态 * |
|
|
|
*******************************************************************************/ |
|
|
|
kreg_pipette_pos_ul = REG_INDEX(40, 0, 0), // 移液枪位置
|
|
|
|
kreg_pipette_capactitance_val = REG_INDEX(40, 0, 1), // 移液枪电容值
|
|
|
|
kreg_pipette_tip_state = REG_INDEX(40, 0, 2), // 移动液枪tip状态
|
|
|
|
kreg_pipette_limit_ul = REG_INDEX(40, 50, 0), // 移液枪ul限制
|
|
|
|
|
|
|
|
/*******************************************************************************
|
|
|
|
* smartADC * |
|
|
|
*******************************************************************************/ |
|
|
|
kreg_self_reflecting_laser_sensor_transmitting_power = REG_INDEX(41, 0, 0), // 发射功率
|
|
|
|
kreg_self_reflecting_laser_sensor_receiving_tube_gain = REG_INDEX(41, 0, 1), // 接收管放大倍数
|
|
|
|
kreg_self_reflecting_laser_sensor_sample_interval_ms = REG_INDEX(41, 0, 2), // 采样率
|
|
|
|
kreg_self_reflecting_laser_sensor_num_samples = REG_INDEX(41, 0, 3), // 采样点数
|
|
|
|
|
|
|
|
/*******************************************************************************
|
|
|
|
* smartADC * |
|
|
|
*******************************************************************************/ |
|
|
|
// scan action
|
|
|
|
kreg_boditech_optical_scan_type = REG_INDEX(42, 0, 0), // 0 t光学,1 f光学
|
|
|
|
kreg_boditech_optical_scan_start_pos = REG_INDEX(42, 0, 1), |
|
|
|
kreg_boditech_optical_scan_direction = REG_INDEX(42, 0, 2), |
|
|
|
kreg_boditech_optical_scan_step_interval = REG_INDEX(42, 0, 3), |
|
|
|
kreg_boditech_optical_scan_pointnum = REG_INDEX(42, 0, 4), |
|
|
|
kreg_boditech_optical_channel_select_num = REG_INDEX(42, 0, 5), |
|
|
|
kreg_boditech_optical_laster_gain = REG_INDEX(42, 0, 6), |
|
|
|
kreg_boditech_optical_scan_gain = REG_INDEX(42, 0, 7), |
|
|
|
kreg_boditech_optical_trf_uvled_on_duration_us = REG_INDEX(42, 0, 8), |
|
|
|
kreg_boditech_optical_trf_uvled_off_duration_us = REG_INDEX(42, 0, 9), |
|
|
|
kreg_boditech_optical_trf_scan_delay_us = REG_INDEX(42, 0, 10), |
|
|
|
kreg_boditech_optical_trf_scan_duration_us = REG_INDEX(42, 0, 11), |
|
|
|
kreg_boditech_optical_scan_gain_adjust_suggestion = REG_INDEX(42, 0, 12), |
|
|
|
kreg_boditech_optical_adc_result_overflow = REG_INDEX(42, 0, 13), |
|
|
|
kreg_boditech_optical_laster_intensity = REG_INDEX(42, 0, 14), |
|
|
|
|
|
|
|
//
|
|
|
|
kreg_laster_scaner_scan_type = REG_INDEX(43, 0, 0), // 0 t光学,1 f光学
|
|
|
|
|
|
|
|
kreg_laster_scaner_scan_start_pos = REG_INDEX(43, 0, 1), |
|
|
|
kreg_laster_scaner_scan_direction = REG_INDEX(43, 0, 2), |
|
|
|
kreg_laster_scaner_scan_step_interval = REG_INDEX(43, 0, 3), |
|
|
|
kreg_laster_scaner_scan_pointnum = REG_INDEX(43, 0, 4), |
|
|
|
kreg_laster_scaner_laster_gain = REG_INDEX(43, 0, 5), |
|
|
|
kreg_laster_scaner_scan_gain = REG_INDEX(43, 0, 6), |
|
|
|
|
|
|
|
kreg_laster_scaner_scan_gain_adjust_suggestion = REG_INDEX(43, 0, 12), |
|
|
|
kreg_laster_scaner_adc_result_overflow = REG_INDEX(43, 0, 13), |
|
|
|
kreg_laster_scaner_laster_intensity = REG_INDEX(43, 0, 14), |
|
|
|
|
|
|
|
} reg_index_t; |
|
|
|
|
|
|
|
} // namespace iflytop
|