📄 find_color_shape.lst
字号:
< .external F_GetObj3rdData;
< .external F_GetObj4thData;
< .external F_GetObj5thData;
< .external F_GetObj6thData;
< .external F_GetObj7thData;
<
< .external F_Delay1ms;
< .external F_Delay5ms;
< .external F_Delay10ms;
< .external F_Delay25ms;
< .external F_Delay55ms;
< .external F_Delay66ms;
< .external F_Delay110ms;
< .external F_Delay180ms;
< .external F_Delay500ms;
< .external F_Delay1s;
< .external F_Delay2s;
< .external F_Delay3s;
<
< .external F_TooFarOrNear;
< .external F_TurnToSeekTheObj;
< .external F_KeepTheObjDistance;
< .external F_KeepTheObjWig;
<
< .external F_INC_MotorCLK;
< .external F_TurnLeft;
< .external F_TurnRight;
< .external F_GoForward;
< .external F_GoBackward;
< .external F_StopMotor;
< .external F_StopTurnLeftOrRight;
< .external F_StopGoForwardOrBackward;
< .external F_KeepTurnLeftOrRight;
< .external F_KeepGoForwardOrBackward;
<
< .external F_LookGetObjData;
< .external F_LookGetObj1stData;
< .external F_LookGetObj2ndData;
< .external F_LookGetObj3rdData;
< .external F_LookGetObj4thData;
< .external F_LookGetObj5thData;
< .external F_LookGetObj6thData;
< .external F_LookGetObj7thData;
< .external F_LookCheckTheObj;
< .external F_LookAssigneColor;
< .external F_GuessMotorSpeedUp;
< .external F_DirectionLineDet;
< .external F_GetDirectionByte;
<
< .external F_Clear70E0;
< .external F_Clear70E8;
< .external F_CardLineDet;
< .external F_AnswerLineDet;
< .external F_WordLineDet;
< .external F_NormalOperMode;
< .external F_75Mode;
< .external F_74Mode;
< .external F_70Mode;
< .external F_SetAWBOFF;
< .external F_GetGuessAdjust;
< //naga 02.04.28
< .external F_ClearTemp;
< .external F_CountLoop;
< .external F_SetMoveSpeech;
< .external F_GetWordLetterSpeech;
< .external F_CheckWordLibrary;
< .external F_CheckAnswerLibrary;
< .external F_SetAnswer1stNumber;
< .external F_SetAnswer2ndNumber;
< .external F_SetAnswer3rdNumber;
< .external F_SetAnswer4thNumber;
< .external F_SetAnswer5thNumber;
< .external F_SetAnswerOnly2ndNumber;
< .external F_SetAnswerOnly5thNumber;
< .external F_SetAnswer4And5thNumber;
< .external F_SetAnswer1stAnd2ndNumber;
< .external F_GetTwoByteMinute;
< .external F_GetOperSpeech;
< .external F_GetAnswerObjNum;
<
< .external F_GetLetterSpeech;
< .external F_CheckDark;
< .external F_GetGuessLowByte;
< .external F_GetGuessHighByte;
< .external F_GuessMotorSpeedDown;
< .external F_GetWordFuntionLetterSpeech;
< .external F_GetTwelvePicSpeech;
<
< .external F_Set741E;
< .external F_Set741F;
<
< .external F_HighAddr70;
< .external F_HighAddr74;
< .external F_HighAddr75;
<
< .external F_GetCardNum;
<
< .external F_ArrowMotorSpeedDown;
< .external F_ArrowMotorSpeedUp;
<
< .external F_SaveLetter;
< .external F_SetDisNumH;
< .external F_SetDisNumL;
<
< .external F_GetCharacterColor;
< .external F_SaveCharacter;
<
< .external F_CheckTheArea;
< .external F_GetObjSpeech;
<
<
< ////////////////////////////////////////////////////////////////////////
< //End of eagle3.inc;
< ////////////////////////////////////////////////////////////////////////
.external _VR_PrevResult
.external _VR_PrevResult_Color
.external _VR_PrevResult_Shape
.external _VR_PrevResult_CenterX;
.external _VR_PrevResult_CenterY;
.external _VR_PrevResult_AreaH;
.external _VR_PrevResult_AreaL;
00009A34 .code
//===================================================
//函数:Find_Color_Shape
//语法:调用
//描述:获得物体的颜色和外形并播报
//参数:无
//返回:无
//===================================================
.public _Find_Color_Shape
_Find_Color_Shape: .proc
00009A34 40 F0 37 9A call F_Find_Color_Shape
00009A36 90 9A retf
.endp
.public F_Find_Color_Shape;
F_Find_Color_Shape:
00009A37 40 F0 0C 8F call F_NormalOperMode // 允许地址75选用,地址为75+00选择手动设置
00009A39 40 F0 9E 8E call F_OperMode
00009A3B 40 F0 92 8E call F_ShapeAnaly // 允许地址70选用
00009A3D 40 F0 00 8F call F_Clear70E8
00009A3F 40 F0 88 8E call F_FeatureEngine // 允许地址74特征寄存器选用
L_Analysis_Again:
00009A41 40 F0 21 8F call F_HighAddr74
00009A43 45 92 r1 = 0x05 // 选择辨别蓝色、红色、绿色、黄色
00009A44 19 D3 F8 02 [R_AddrBuffer] = r1
00009A46 48 92 r1 = 0x08
00009A47 19 D3 FB 02 [R_WriteDataBuffer] = r1
00009A49 40 F0 1D 91 call F_WriteOper
00009A4B 40 92 r1 = 0
00009A4C 19 D3 0C 03 [R_DelayTime] = r1
L_WaitFor:
00009A4E 11 93 0C 03 r1 = [R_DelayTime]
00009A50 09 43 42 00 cmp r1 ,0x42
00009A52 45 8E jbe L_WaitFor
00009A53 40 F0 35 8F call F_GetObjNum // 读目标数目
00009A55 11 93 F5 02 r1 = [R_SeekFlag]
00009A57 09 B3 80 00 r1 &= 0x80
00009A59 59 4E jnz L_Analysis_Again // 目标数目>8
00009A5A 11 93 F5 02 r1 = [R_SeekFlag];
00009A5C 09 B3 FE 00 r1 &= 0xfe;
00009A5E 19 D3 F5 02 [R_SeekFlag] = r1;
00009A60 40 92 r1 = 0x00; // 清变量
00009A61 19 D3 11 03 [R_PreAreaH] = r1;
00009A63 19 D3 0F 03 [R_PreColor] = r1;
00009A65 19 D3 10 03 [R_PreShape] = r1;
00009A67 19 D3 01 03 [R_AreaH] = r1;
00009A69 19 D3 00 03 [R_AreaL] = r1;
00009A6B 19 D3 FF 02 [R_Color] = r1;
00009A6D 19 D3 FE 02 [R_Shape] = r1;
00009A6F 19 D3 02 03 [R_CenterX] = r1;
00009A71 19 D3 03 03 [R_CenterY] = r1;
00009A73 40 F0 16 91 call F_GetObjDataOne; // 获得一个物体的数据
00009A75 11 93 FF 02 r1 = [R_Color]; // 存放变量中
00009A77 19 D3 19 03 [_VR_PrevResult_Color] = r1;
00009A79 11 93 FE 02 r1 = [R_Shape];
00009A7B 19 D3 1A 03 [_VR_PrevResult_Shape] = r1;
00009A7D 11 93 02 03 r1 = [R_CenterX]
00009A7F 19 D3 1B 03 [_VR_PrevResult_CenterX] = r1
00009A81 11 93 03 03 r1 = [R_CenterY]
00009A83 19 D3 1C 03 [_VR_PrevResult_CenterY] = r1
00009A85 11 93 01 03 r1 = [R_AreaH]
00009A87 19 D3 1D 03 [_VR_PrevResult_AreaH] = r1
00009A89 11 93 00 03 r1 = [R_AreaL]
00009A8B 19 D3 1E 03 [_VR_PrevResult_AreaL] = r1
00009A8D 90 9A retf;
0 error(s), 0 warning(s).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -