DSP流程图反射
2016-02-01 14:12:13 0 举报
DSP的流程分析
作者其他创作
大纲/内容
0x06AD_STATUS_UPDATE
Moto_Status_Free()
AD_Current(SENSOR_2);AD_Current(POWER_A);
Moto_Info_Open_All()
0x0FWDM_PULLBACKFORTH_CMD
流程
0x09WDM_SCAN_FOUR_CMD
Real_Time_Update_ALL_POS
0x00 WDM_MOVE_MOTO
0x03WDM_REFLEX_CMD_DEBUG_ALL
WDM_STATUS_FREE
0x01WDM_SERVOS_MG90S_GO
0x0BWDM_MOVE_CONTINUOUS_CMD
是
解析
否
0x05WDM_TARGET_AXIS1_POWER
0x0EWDM_RELAY_CMD
0x07WDM_LINE_AD_CMD
0x08WDM_SCAN_AD_CMD
0x0DWDM_AUTOMATIC_CMD
COM_Init()
InitExRam(5000)
0x04WDM_TARGET_AXIS2_HS
Wdm_Servos_MG90S_Stop()
chkpoint = 3recursion = 3 Stack_D[1.2.3.4] -scan_pitchStack_D[5.6.7.8] - scan_yawStack_D[9.10]-scan_stepStack_D[11.12]-ad_refStack_D[13]-scan_modeStack_D[14.15]-xy_target_crudestack_D[16.17]-picthyaw_target_fineStack_D[18.19]-xy_target_fineStack_D[20.21]-delta
未使用
Moto_Status_Moto_Move()
0x01WDM_TARGET_AXIS2
Moto_Line_AD_GoMax_Com(p_data)
Moto_Info_Stop_All()
这里有个状态机:启动-move_x-read_ad-check_x-check_y-move_y-move_x_min-end
0x06WDM_TEST_AD_CMD
N
Deil_Com_Data()
0x03WDM_TARGET_CMD
Deil_Main_Loop()
Moto_Status_Init()
Stack_D[1]-axis[0]Stack_D[2.3]-step[0]Stack_D[4.5.6.7]-range[0]Stack_D[8]-axis[1]Stack_D[9.10]-step[1]Stack_D[11.12.13.14]-range[1]Stack_D[15]-axis[2]Stack_D[16.17]-step[2]Stack_D[18.19.20.21]-range[2]Stack_D[22]-axis[3]Stack_D[23.24]-step[3]Stack_D[25.26.27.28]-range[3]
这里有个状态机:启动-move_xy-move_pitchyawread_ad-move_pitch-check_pitch-move_yaw-check_yaw-move_x-check_x-move_y-check_y-end
Start
Moto_TargetAxis1_Start_HS()
Wdm_Relay_Sw(*p_data)
Moto_Scan_Com(p_data)
Stack_D[1]-axis_AStack_D[2]-axis_BStack_D[3.4.5.6]-A_distStack_D[7.8.9.10]-B_distStack_D[11.12]-A_stepStack_D[13.14]-B_stepStack_D[15.16]-ad_refStack_D[17]-set_mode
User_Moto_Loop_COM(p_data)
Stack_D[1]-axisStack_D[2] - channelStack_D[3.4]-stepStack_D[5.6.7.8]-range
Real_Time_Update_ZZL
(一个轴)解析
Stack_D[2]-axisStack_D[3.4]-step_outStack_D[5.6.7.8]-rangeStack_D[9.10]-deltaStack_D[11]-chkpointStack_D[12]-recursion
0x06WDM_TARGET_AXIS2_POWER
AD_NO_Current(SENSOR_1);AD_NO_Current(SENSOR_2);
0x00XY_POS_UPDATE
0x06WDM_MOVE_MOTO_HOME_AXIS
0x12WDM_SPECIAL_GPIO
0x03WDM_TARGET_AXIS1_HS
0x02WDM_MOVE_MOTO_GOTO_XY
Stack_D[2.3] - power_thresholdStack_D[4.5] - space_volumeStack_D[6.7] - space_distanceStack_D[8.9] - space_stepStack_D[10.11] - target_xy_stepStack_D[12.13] - target_precision_xy_stepStack_D[14.15] - target_precision_z_stepStack_D[16.17] - taget_deltaStack_D[18] - taget_chkpointStack_D[19] - taget_xy_recursionStack_D[20] - taget_z_recursionStack_D[21.22] - z1Stack_D[23.24] - z2Stack_D[25.26] - z3Moto_Reflex_Work()
0x17WDM_SERVOS_MG90S_CTRL
Stack_D[1]-axis[0]Stack_D[2]-axis[1]Stack_D[3.4.5.6]-distStack_D[7]-number用的函数是Moto_Linkage_LineN_Abs()
target.ad_channel = SENSOR_2;判断 Stack_D[1] ==
协议头是否是WDM_READ_REGISTER0x10
串口中断
将速度提升至(64倍)
(三个轴)解析
Moto_Status_Move_Continuous()
Stack_Deil[1] ==
ad_flag = 0
0x13WDM_INIT_GPIO
0x0AWDM_LINE_AD_TARGET_CMD
0x04MOTO_STATUS_UPDATE
0x00WDM_MOVE_MOTO_HOME
InitExRam(0)
0x03WDM_MOVE_MOTO_GOTO_ALL
Moto_Move_Com(p_data)
0x05WDM_READ_AD_CMD
0x02WDM_TARGET_AXIS3
Stack_Sign != HAVE_NEW_DATA
0x07ALL_POS_UPDATE
Moto_Scan_AD_Com(p_data)
Moto_Status_Automatic()
检查停止信号和限位信号
old_real_time_count = real_time_count;
0x09READ_LONG_BUF
0x01WDM_REFLEX_CMD_DEBUG_2
(二个轴POWER)解析
0x00WDM_TARGET_AXIS1
手轮状态(doing)Handle_status()
Stack_D[2]-axis_AStack_D[3.4]-A_step_outStack_D[5]-axis_BStack_D[6.7]-B_step_outStack_D[8.9.10.11]-rangeStack_D[12.13]-deltaStack_D[14]-chkpointStack_D[15]-recursion
0x08RAM_DATA
Stack_D[1] ==
0x02PITCHYAW_POS_UPDATE
0x15WDM_CTRL_SPACE
AD_FirstOrderFilter(SENSOR_2);\t\t\t\tAD_FirstOrderFilter(POWER_A);
Moto_Read_Register(Pdata)Stack_D[1] ==
Moto_Init()
Moto_TargetAxis1_Start()
Moto_Move_Home_All
手轮User_Moto_Loop_Init()
0x05WDM_MOVE_MOTO_LINKAGE_MOVE
0x01WDM_MOVE_MOTO_GOTO_AXIS
0x14WDM_LINE_AD_GOMIN_CMD
Moto_Line_AD_Com(p_data)
AD_Debug(p_data)
0x00WDM_REFLEX_CMD_DEBUG_1
Moto_Reflex_Com(p_data)
恢复速度
Real_Time_Update_ELMSG
0x0CWDM_LINE_AD_GOMAX_CMD
0x04WDM_MOVE_MOTO_MOVE
Moto_AuoMatic_Com(p_data)
入栈
Stack_D[1]-axis[0]Stack_D[2]-axis[1]Stack_D[3.4]-stepStack_D[5.6.7.8]-range[0]Stack_D[9.10.11.12]-range[1]
(二个轴)解析
0x16WDM_REFLEX_CMD
Stack_Deil[0] ==
Moto_Target_Axis1_Power_Start()
Moto_Target_Com(p_data)
Stack_D[2]-axis_AStack_D[3.4]-A_step_outStack_D[5]-axis_BStack_D[6.7]-B_step_outStack_D[8]-axis_CStack_D[9.10]-C_step_outStack_D[11.12.13.14]-rangeStack_D[15.16]-deltaStack_D[17]-chkpointStack_D[18]-recursion
Real_Time_Update_PITCHYAW
Moto_AD_data()
0x01ZZL_POS_UPDATE
Sensor_Start(p_data)
Real_Time_Update_XY()
Timer2 = 1ms
User_Moto_Loop()
Dsp上发协议\t起始\t 地址\t定符\t 长度\t数据\t CRC\t 结束\t 0x68\t Addr\t0x68\t Length\tData\t 加和校验\t0x16
Moto_TargetAxis3_Start_Del()
0x03AD_UPDATE
Real_Time_Update_ADSTATUS
Moto_Status_Scan
0x00WDM_SERVOS_MG90S_STOP
if(real_time_count == 10)
Stack_D[2.3] - target_fine_xy_stepStack_D[4.5] - target_fine_z_stepStack_D[6.7] - target_deltaStack_D[8] - taget_chkpointStack_D[9] - taget_xy_recursionStack_D[10] - taget_z_recursionStack_D[11] - target_timesMoto_Reflex_Work_Target()
Stack_D[2]-axis_AStack_D[3.4]-A_step_outStack_D[5]-axis_BStack_D[6.7]-B_step_outStack_D[8.9.10.11]-rangeStack_D[12.13]-deltaStack_D[14.15]-ref_power
DSP协议
Real_Time_Update_AD
0x02WDM_SCAN_CMD
Moto_Line_AD_GoMin_Com(p_data)
if (real_time_count = 10)
Moto_TargetAxis2_Start()
Moto_Line_AD_Target_Com(p_data)
real_time_count++;
这里有个状态机:启动-move_step-read_ad-check_pos-end
Y
将两个轴速度提升至(4倍)
Moto_Scan_Four_Com(p_data)
Stack_D[2]-axisStack_D[3.4]-step_outStack_D[5.6.7.8]-rangeStack_D[9.10]-deltaStack_D[11]-chkpointStack_D[12.13]-ref_power
0x05MOTO_ELMSG_UPDATE
0x07WDM_MOVE_MOTO_LINKAGE_MOVE_REL
Stack_D[1]-axisStack_D[2]-channelStack_D[3.4]-volumeStack_D[5.6]-distanceStack_D[7.8]-stepSensor_Near_New()
Moto_Info_Clear_Pos(Stack_Deil[2])
Moto_Status_Target()
(一个轴POWER)解析
AD_Current_Open();
Real_Time_Wrirt_All();\t\treal_time_count = 0;
Real_Time_Update_Moto_Status
定时中断
Moto_Move_Home_Axis(Stack_Deil[2])
0x11WDM_SERVOS_CTRL
if (old_real_time_count != real_time_count)
0x02WDM_REFLEX_CMD_DEBUG_TARGET
Moto_TargetAxis2_Start_HS()
Moto_Handle_Close();Moto_Status_Free();
EtcInit()
0 条评论
下一页