DSP流程图六端口
2016-02-01 14:12:13 0 举报
DSP的流程分析
作者其他创作
大纲/内容
Wdm_Special_GPIO_Com(p_data)
old_real_time_count = real_time_count;
0x06AD_STATUS_UPDATE
Moto_AD_data()
Moto_Status_Free()
Moto_Write_Work()
Real_Time_Update_ALL_POS
0x00 WDM_MOVE_MOTO
real_time_count++;
WDM_STATUS_FREE
Moto_Write_Stop()
0x0BWDM_MOVE_CONTINUOUS_CMD
是
if (real_time_count = 10)
Stack_D[2] - auto_ad_channelStack_D[3] - check_ad_channelStack_D[4.5.6.7] - scan_pitchStack_D[8.9.10.11] - scan_yawStack_D[12.13] - scan_stepStack_D[14.15] - auto_ad_refStack_D[16.17] - check_ad_refStack_D[18] - scan_modeStack_D[19.20] - xy_target_crudeStack_D[21.22] - picthyaw_target_fineStack_D[23.24] - xy_target_fineStack_D[25.26] - deltaStack_D[27.28.29.30] - r_move_distanceStack_D[31] - timesMoto_Six_Trans_New_Work()
解析
chkpoint = 3;recursion = 1;Stack_D[1] - CMD
if(real_time_count == 10)
0x05WDM_TARGET_AXIS1_PRECISION
0x0EWDM_RELAY_CMD
0x06WDM_SIX_TARGET_PITCHYAW_CMD
0x0DWDM_AUTOMATIC_CMD
Moto_Status_Target()
Moto_Status_Automatic
0x04WDM_SIX_FIND_B_SCAN_CMD
COM_Init()
0x04WDM_TARGET_AXIS2_HS
chkpoint = 3recursion = 1 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]-deltamoto_automatic_ad_channel = SENSOR_2
Moto_TargetAxis2_Start_Precision()
Moto_Status_Moto_Move()
0x01WDM_TARGET_AXIS2
Stack_D[2] - auto_ad_channelStack_D[3] - check_ad_channelStack_D[4.5.6.7] - scan_pitchStack_D[8.9.10.11] - scan_yawStack_D[12.13] - scan_stepStack_D[14.15] - auto_ad_refStack_D[16.17] - check_ad_refStack_D[18] - scan_modeStack_D[19.20] - xy_target_crudeStack_D[21.22] - picthyaw_target_fineStack_D[23.24] - xy_target_fineStack_D[25.26] - deltaMoto_Six_Trans_New_Target_PitchYaw()
N
0x00WDM_SIX_FIND_TWO_CMD
Deil_Com_Data()
SIX_AUTO_CMD流程
0x03WDM_TARGET_CMD
Moto_Six_Trans_Com()
Deil_Main_Loop()
Moto_Status_Init()
Start
Moto_TargetAxis1_Start_HS()
SIX_AUTO_NEW_CMD流程
Stack_D[2] - auto_ad_channelStack_D[3] - check_ad_channelStack_D[4.5.6.7] - scan_pitchStack_D[8.9.10.11] - scan_yawStack_D[12.13] - scan_stepStack_D[14.15] - auto_ad_refStack_D[16.17] - check_ad_refStack_D[18] - scan_modeStack_D[19.20] - xy_target_crudeStack_D[21.22] - picthyaw_target_fineStack_D[23.24] - xy_target_fineStack_D[25.26] - deltaStack_D[27.28.29.30] - r_move_distanceStack_D[31.32.33.34] - r_step_distanceMoto_Six_Trans_New_Adjuct_RR()
Wdm_Servos_Com(p_data)
Wdm_Relay_Sw(*p_data)
0x09WDM_SIX_ADJUST_BALANCE_CMD
Moto_AuoMatic_Start()
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)
0x1BWDM_TARGET_CH_CMD
chkpoint = 3;recursion = 1;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] - deltaMoto_Six_Trans_Work()
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
delay_ms(50);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
0x16WDM_REFLEX_CMD
注意:此后的Stack_D[ ]取值要再+1
target.ad_channel = SENSOR_2;判断 Stack_D[1] ==
协议头是否是WDM_READ_REGISTER0x10
0x07WDM_SIX_TARGET_XY_CMD
Stack_D[1.2] - power_thresholdStack_D[3.4] - space_volumeStack_D[5.6] - space_distanceStack_D[7.8] - space_stepStack_D[9.10] - target_xy_stepStack_D[11.12] - target_precision_xy_stepStack_D[13.14] - target_precision_z_stepStack_D[15.16] - taget_deltaStack_D[17] - taget_chkpointStack_D[18] - taget_xy_recursionStack_D[19] - taget_z_recursionStack_D[20.21] - z1Stack_D[22.23] - z2Stack_D[24.25] - z3Moto_Reflex_Work()
Real_Time_Wrirt_All();\t\treal_time_count = 0;
串口中断
Stack_D[2] - auto_ad_channelStack_D[3] - check_ad_channelStack_D[4] - axisXStack_D[5] - axisYStack_D[6.7] - xy_target_crudeStack_D[8.9.10.11] - r_move_distanceStack_D[12.13] - deltaStack_D[14] - chkpointStack_D[15] - recursionMoto_Six_Trans_New_Target_XY()
Stack_D[2] - auto_ad_channelStack_D[3] - check_ad_channelStack_D[4.5.6.7] - scan_pitchStack_D[8.9.10.11] - scan_yawStack_D[12.13] - scan_stepStack_D[14.15] - auto_ad_refStack_D[16.17] - check_ad_refStack_D[18] - scan_modeStack_D[19.20] - xy_target_crudeStack_D[21.22] - picthyaw_target_fineStack_D[23.24] - xy_target_fineStack_D[25.26] - deltaStack_D[27.28.29.30] - r_move_distanceStack_D[31] - timesStack_D[32.33.34.35] - r_step_distanceMoto_Six_Trans_New_Find_Scan()
chk_counter = 0
0x02WDM_SIX_LAIHUI_CMD
(三个轴)解析
Moto_Status_Move_Continuous()
AD_FirstOrderFilter(SENSOR_2);\t\t\t\tAD_FirstOrderFilter(POWER_A);
Stack_Deil[1] ==
ad_flag = 0
0x13WDM_INIT_GPIO
Stack_D[1]-axisStack_D[2.3]-step
0x04MOTO_STATUS_UPDATE
0x00WDM_MOVE_MOTO_HOME
0x18WDM_AUTOMATIC_CHANNEL_CMD
0x03WDM_MOVE_MOTO_GOTO_ALL
Moto_Move_Com(p_data)
Stack_D[2] - auto_ad_channelStack_D[3] - check_ad_channelStack_D[4.5.6.7] - scan_pitchStack_D[8.9.10.11] - scan_yawStack_D[12.13] - scan_stepStack_D[14.15] - auto_ad_refStack_D[16.17] - check_ad_refStack_D[18] - scan_modeStack_D[19.20] - xy_target_crudeStack_D[21.22] - picthyaw_target_fineStack_D[23.24] - xy_target_fineStack_D[25.26] - deltaStack_D[27.28.29.30] - r_move_distanceMoto_Six_Trans_New_Work_Min()
0x02WDM_TARGET_AXIS3
Stack_Sign != HAVE_NEW_DATA
Stack_D[1] ==
0x07ALL_POS_UPDATE
Moto_Status_Automatic()Moto_Write_Work()
Stack_D[2] - auto_ad_channelStack_D[3] - check_ad_channelStack_D[4.5.6.7] - scan_pitchStack_D[8.9.10.11] - scan_yawStack_D[12.13] - scan_stepStack_D[14.15] - auto_ad_refStack_D[16.17] - check_ad_refStack_D[18] - scan_modeStack_D[19.20] - xy_target_crudeStack_D[21.22] - picthyaw_target_fineStack_D[23.24] - xy_target_fineStack_D[25.26] - deltaStack_D[27.28.29.30] - r_move_distanceMoto_Six_Trans_New_Work_Scan_B()
Moto_Target_Com_CH(p_data)
检查停止信号和限位信号
SCAN_CMD流程
(二个轴精度)解析
if (old_real_time_count != real_time_count)
0x00WDM_TARGET_AXIS1
REFLEX_CMD流程
状态(WDM_STATUS_MOVE_CONTINUOUS)Moto_Current_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
0x02PITCHYAW_POS_UPDATE
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
MOVE_CONTINUOUS_CMD流程
Wdm_Init_Com()
chkpoint = 3;recursion = 1;Stack_D[1] - moto_automatic_ad_channelStack_D[2.3.4.5] - scan_pitchStack_D[6.7.8.9] - scan_yawStack_D[10.11] - scan_stepStack_D[12.13] - ad_refStack_D[14] - scan_modeStack_D[15.16] - xy_target_crudeStack_D[17.18] - picthyaw_target_fineStack_D[19.20] - xy_target_fineStack_D[21.22] - deltaMoto_AuoMatic_Start_channel()
TARGET_CMD流程
Real_Time_Update_ELMSG
0x1AWDM_SIX_AUTO_NEW_CMD
0x04WDM_MOVE_MOTO_MOVE
Moto_AuoMatic_Com(p_data)
0x05WDM_SIX_ADJUST_CMD
入栈
(二个轴)解析
Stack_Deil[0] ==
三个轴的chk_counter = 0
Moto_TargetAxis1_Start_Precision()
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
0x01ZZL_POS_UPDATE
Real_Time_Update_XY()
Timer2 = 10ms
0x08RAM_DATA
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
UserInit()
Stack_D[2] - auto_ad_channelStack_D[3] - check_ad_channelStack_D[4] - axisXStack_D[5] - axisYStack_D[6.7] - xy_target_crudeStack_D[8.9.10.11] - r_move_distanceStack_D[12.13] - deltaStack_D[14] - chkpointStack_D[15] - recursionStack_D[16.17] - power_ad_changeAmaxStack_D[18.19] - move_stepMoto_Six_Trans_New_Balance()
Moto_Speed_Low()
TARGET_CH_CMD流程
Moto_Reflex_Init()
MOVE_MOTO流程
AUTOMATIC_CMD流程
DSP协议
Real_Time_Update_AD
0x02WDM_SCAN_CMD
Moto_Six_Trans_New_Com()
Moto_TargetAxis2_Start()
AUTOMATIC_CHANNEL_CMD流程
定时中断
Moto_Reflex_Com(p_data)
Y
Moto_AuoMatic_Channel_Com
两个轴的chk_counter = 0
0x03WDM_SIX_SCAN_B_CMD
0x05MOTO_ELMSG_UPDATE
0x07WDM_MOVE_MOTO_LINKAGE_MOVE_REL
target.ad_channel =Stack_D[1];判断 Stack_D[2] ==
Moto_Clear(Stack_Deil[2])
(一个轴精度)解析
AD_Current_Open();
Real_Time_Update_Moto_Status
单轴chk_counter = 0
Moto_Home_Axis(Stack_Deil[2])
Stack_D[2] - auto_ad_channelStack_D[3] - check_ad_channelStack_D[4.5.6.7] - scan_pitchStack_D[8.9.10.11] - scan_yawStack_D[12.13] - scan_stepStack_D[14.15] - auto_ad_refStack_D[16.17] - check_ad_refStack_D[18] - scan_modeStack_D[19.20] - xy_target_crudeStack_D[21.22] - picthyaw_target_fineStack_D[23.24] - xy_target_fineStack_D[25.26] - deltaStack_D[27.28.29.30] - r_move_distanceStack_D[31] - timesStack_D[32.33.34.35] - r_step_distanceMoto_Six_Trans_Nex_Adjuct_R()
0x11WDM_SERVOS_CTRL
Moto_TargetAxis2_Start_HS()
0x19WDM_SIX_AUTO_CMD
Moto_Status_Free();
EtcInit()
0x08WDM_SIX_ADJUST_R_CMD
0 条评论
下一页