⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 camera 5rd.lst

📁 Embedded camera control program.
💻 LST
📖 第 1 页 / 共 5 页
字号:
10C4:  MOVFF  58,7E
10C8:  MOVLW  DB
10CA:  MOVWF  x85
10CC:  MOVLW  0F
10CE:  MOVWF  x84
10D0:  MOVLW  49
10D2:  MOVWF  x83
10D4:  MOVLW  7F
10D6:  MOVWF  x82
10D8:  RCALL  0942
10DA:  MOVFF  00,7E
10DE:  MOVFF  01,7F
10E2:  MOVFF  02,80
10E6:  MOVFF  03,81
10EA:  CLRF   x83
10EC:  MOVFF  68,82
10F0:  CALL   05B8
10F4:  BSF    FD8.1
10F6:  MOVFF  81,87
10FA:  MOVFF  80,86
10FE:  MOVFF  7F,85
1102:  MOVFF  7E,84
1106:  MOVFF  03,8B
110A:  MOVFF  02,8A
110E:  MOVFF  01,89
1112:  MOVFF  00,88
1116:  CALL   05F0
111A:  MOVFF  03,6D
111E:  MOVFF  02,6C
1122:  MOVFF  01,6B
1126:  MOVFF  00,6A
.................... 	quad = quad % 4;                    // quadrant (0 to 3)  
112A:  MOVLW  03
112C:  ANDWF  x68,F
....................   
.................... 	if (quad == 0 || quad == 2)  
112E:  MOVF   x68,F
1130:  BZ    1138
1132:  MOVF   x68,W
1134:  SUBLW  02
1136:  BNZ   116E
.................... 		t = frac * PI_DIV_BY_TWO;  
1138:  MOVFF  6D,85
113C:  MOVFF  6C,84
1140:  MOVFF  6B,83
1144:  MOVFF  6A,82
1148:  MOVLW  DB
114A:  MOVWF  x89
114C:  MOVLW  0F
114E:  MOVWF  x88
1150:  MOVLW  49
1152:  MOVWF  x87
1154:  MOVLW  7F
1156:  MOVWF  x86
1158:  CALL   0860
115C:  MOVFF  03,63
1160:  MOVFF  02,62
1164:  MOVFF  01,61
1168:  MOVFF  00,60
.................... 	else if (quad == 1)  
116C:  BRA    123C
116E:  DECFSZ x68,W
1170:  BRA    11D8
.................... 		t = (1-frac) * PI_DIV_BY_TWO;  
1172:  BSF    FD8.1
1174:  CLRF   x87
1176:  CLRF   x86
1178:  CLRF   x85
117A:  MOVLW  7F
117C:  MOVWF  x84
117E:  MOVFF  6D,8B
1182:  MOVFF  6C,8A
1186:  MOVFF  6B,89
118A:  MOVFF  6A,88
118E:  CALL   05F0
1192:  MOVFF  00,7E
1196:  MOVFF  01,7F
119A:  MOVFF  02,80
119E:  MOVFF  03,81
11A2:  MOVFF  03,85
11A6:  MOVFF  02,84
11AA:  MOVFF  01,83
11AE:  MOVFF  00,82
11B2:  MOVLW  DB
11B4:  MOVWF  x89
11B6:  MOVLW  0F
11B8:  MOVWF  x88
11BA:  MOVLW  49
11BC:  MOVWF  x87
11BE:  MOVLW  7F
11C0:  MOVWF  x86
11C2:  CALL   0860
11C6:  MOVFF  03,63
11CA:  MOVFF  02,62
11CE:  MOVFF  01,61
11D2:  MOVFF  00,60
.................... 	else // should be 3  
11D6:  BRA    123C
.................... 		t = (frac-1) * PI_DIV_BY_TWO;  
11D8:  BSF    FD8.1
11DA:  MOVFF  6D,87
11DE:  MOVFF  6C,86
11E2:  MOVFF  6B,85
11E6:  MOVFF  6A,84
11EA:  CLRF   x8B
11EC:  CLRF   x8A
11EE:  CLRF   x89
11F0:  MOVLW  7F
11F2:  MOVWF  x88
11F4:  CALL   05F0
11F8:  MOVFF  00,7E
11FC:  MOVFF  01,7F
1200:  MOVFF  02,80
1204:  MOVFF  03,81
1208:  MOVFF  03,85
120C:  MOVFF  02,84
1210:  MOVFF  01,83
1214:  MOVFF  00,82
1218:  MOVLW  DB
121A:  MOVWF  x89
121C:  MOVLW  0F
121E:  MOVWF  x88
1220:  MOVLW  49
1222:  MOVWF  x87
1224:  MOVLW  7F
1226:  MOVWF  x86
1228:  CALL   0860
122C:  MOVFF  03,63
1230:  MOVFF  02,62
1234:  MOVFF  01,61
1238:  MOVFF  00,60
....................   
.................... 	y = 0.999999999781;  
123C:  CLRF   5F
123E:  CLRF   5E
1240:  CLRF   5D
1242:  MOVLW  7F
1244:  MOVWF  5C
.................... 	t = t * t;  
1246:  MOVFF  63,85
124A:  MOVFF  62,84
124E:  MOVFF  61,83
1252:  MOVFF  60,82
1256:  MOVFF  63,89
125A:  MOVFF  62,88
125E:  MOVFF  61,87
1262:  MOVFF  60,86
1266:  CALL   0860
126A:  MOVFF  03,63
126E:  MOVFF  02,62
1272:  MOVFF  01,61
1276:  MOVFF  00,60
.................... 	for (i = 0; i <= 3; i++)  
127A:  CLRF   x69
127C:  MOVF   x69,W
127E:  SUBLW  03
1280:  BNC   1346
.................... 	{  
.................... 		t2 = t2 * t;  
1282:  MOVFF  67,85
1286:  MOVFF  66,84
128A:  MOVFF  65,83
128E:  MOVFF  64,82
1292:  MOVFF  63,89
1296:  MOVFF  62,88
129A:  MOVFF  61,87
129E:  MOVFF  60,86
12A2:  CALL   0860
12A6:  MOVFF  03,67
12AA:  MOVFF  02,66
12AE:  MOVFF  01,65
12B2:  MOVFF  00,64
.................... 		y = y + p[i] * t2;  
12B6:  MOVF   x69,W
12B8:  MULLW  04
12BA:  MOVF   FF3,W
12BC:  CLRF   03
12BE:  ADDLW  6E
12C0:  MOVWF  FE9
12C2:  MOVLW  00
12C4:  ADDWFC 03,W
12C6:  MOVWF  FEA
12C8:  MOVFF  FEF,7E
12CC:  MOVFF  FEC,7F
12D0:  MOVFF  FEC,80
12D4:  MOVFF  FEC,81
12D8:  MOVFF  81,85
12DC:  MOVFF  80,84
12E0:  MOVFF  7F,83
12E4:  MOVFF  7E,82
12E8:  MOVFF  67,89
12EC:  MOVFF  66,88
12F0:  MOVFF  65,87
12F4:  MOVFF  64,86
12F8:  CALL   0860
12FC:  MOVFF  FEA,83
1300:  MOVFF  FE9,82
1304:  BCF    FD8.1
1306:  MOVFF  5F,87
130A:  MOVFF  5E,86
130E:  MOVFF  5D,85
1312:  MOVFF  5C,84
1316:  MOVFF  03,8B
131A:  MOVFF  02,8A
131E:  MOVFF  01,89
1322:  MOVFF  00,88
1326:  CALL   05F0
132A:  MOVFF  83,FEA
132E:  MOVFF  82,FE9
1332:  MOVFF  03,5F
1336:  MOVFF  02,5E
133A:  MOVFF  01,5D
133E:  MOVFF  00,5C
.................... 	}  
1342:  INCF   x69,F
1344:  BRA    127C
....................   
.................... 	if (quad == 2 || quad == 1)  
1346:  MOVF   x68,W
1348:  SUBLW  02
134A:  BZ    1350
134C:  DECFSZ x68,W
134E:  BRA    1354
.................... 		y = -y;  // correct sign  
1350:  MOVLW  80
1352:  XORWF  5D,F
....................   
.................... 	return (y);  
1354:  MOVFF  5C,00
1358:  MOVFF  5D,01
135C:  MOVFF  5E,02
1360:  MOVFF  5F,03
.................... }  
1364:  GOTO   184E (RETURN)
....................   
.................... ////////////////////////////////////////////////////////////////////////////  
.................... //	float sin(float x)  
.................... ////////////////////////////////////////////////////////////////////////////  
.................... // Description : returns the sine value of the angle x, which is in radian  
.................... // Date : 9/20/2001  
.................... //  
.................... float sin(float x)  
.................... {  
.................... 	return cos(x - PI_DIV_BY_TWO);  
.................... }  
....................   
.................... ////////////////////////////////////////////////////////////////////////////  
.................... //	float tan(float x)  
.................... ////////////////////////////////////////////////////////////////////////////  
.................... // Description : returns the tangent value of the angle x, which is in radian  
.................... // Date : 9/20/2001  
.................... //  
.................... float tan(float x)  
.................... {  
....................    float c, s;  
....................   
....................    c = cos(x);  
.................... 	if (c == 0.0)  
.................... 	   return (1.0e+36);  
....................   
....................    s = sin(x);  
....................    return(s/c);  
.................... }  
....................   
....................   
....................   
.................... float const pas[3] = {0.49559947, -4.6145309, 5.6036290};  
.................... float const qas[3] = {1.0000000,  -5.5484666, 5.6036290};  
....................   
.................... float ASIN_COS(float x, int n)  
.................... {  
....................    float y, res, r, y2;  
....................    int1 s;  
....................    #ifdef _ERRNO  
....................    if(x <-1 || x > 1)  
....................    {  
....................       errno=EDOM;  
....................    }  
....................    #endif  
....................    s = 0;  
....................    y = x;  
....................   
....................    if (x < 0)  
....................    {  
....................       s = 1;  
....................       y = -y;  
....................    }  
....................   
....................    if (y > 0.5)  
....................    {  
....................       y = sqrt((1.0 - y)/2.0);  
....................       n += 2;  
....................    }  
....................   
....................    y2=y*y;  
....................   
....................    res = pas[0]*y2 + pas[1];  
....................    res = res*y2 + pas[2];  
....................   
....................    r = qas[0]*y2 + qas[1];  
....................    r = r*y2 + qas[2];  
....................   
....................    res = y*res/r;  
....................   
....................    if (n & 2)     // |x| > 0.5  
....................       res = PI_DIV_BY_TWO - 2.0*res;  
....................    if (s)  
....................       res = -res;  
....................    if (n & 1)           // take arccos  
....................       res = PI_DIV_BY_TWO - res;  
....................   
....................    return(res);  
.................... }  
....................   
....................   
.................... ////////////////////////////////////////////////////////////////////////////  
.................... //	float asin(float x)  
.................... ////////////////////////////////////////////////////////////////////////////  
.................... // Description : returns the arcsine value of the value x.  
.................... // Date : N/A  
.................... //  
.................... float asin(float x)  
.................... {  
....................    float r;  
....................   
....................    r = ASIN_COS(x, 0);  
....................    return(r);  
.................... }  
....................   
....................   
.................... ////////////////////////////////////////////////////////////////////////////  
.................... //	float acos(float x)  
.................... ////////////////////////////////////////////////////////////////////////////  
.................... // Description : returns the arccosine value of the value x.  
.................... // Date : N/A  
.................... //  
.................... float acos(float x)  
.................... {  
....................    float r;  
....................   
....................    r = ASIN_COS(x, 1);  
....................    return(r);  
.................... }  
....................   
.................... float const pat[4] = {0.17630401, 5.6710795, 22.376096, 19.818457};  
.................... float const qat[4] = {1.0000000,  11.368190, 28.982246, 19.818457};  
....................   
.................... ////////////////////////////////////////////////////////////////////////////  
.................... //	float atan(float x)  
.................... ////////////////////////////////////////////////////////////////////////////  
.................... // Description : returns the arctangent value of the value x.  
.................... // Date : N/A  
.................... //  
.................... float atan(float x)  
.................... {  
....................    float y, res, r;  
....................    int1 s, flag;  
....................   
....................    s = 0;  
*
0B16:  BCF    x70.0
....................    flag = 0;  
0B18:  BCF    x70.1
....................    y = x;  
0B1A:  MOVFF  63,67
0B1E:  MOVFF  62,66
0B22:  MOVFF  61,65
0B26:  MOVFF  60,64
....................   
....................    if (x < 0)  
0B2A:  MOVFF  63,81
0B2E:  MOVFF  62,80
0B32:  MOVFF  61,7F
0B36:  MOVFF  60,7E
0B3A:  CLRF   x85
0B3C:  CLRF   x84
0B3E:  CLRF   x83
0B40:  CLRF   x82
0B42:  RCALL  0AA0
0B44:  BNC   0B4C
....................    {  
....................       s = 1;  
0B46:  BSF    x70.0
....................       y = -y;  
0B48:  MOVLW  80
0B4A:  XORWF  x65,F
....................    }  
....................   
....................    if (y > 1.0)  
0B4C:  CLRF   x81
0B4E:  CLRF   x80
0B50:  CLRF   x7F
0B52:  MOVLW  7F
0B54:  MOVWF  x7E
0B56:  MOVFF  67,85
0B5A:  MOVFF  66,84
0B5E:  MOVFF  65,83
0B62:  MOVFF  64,82
0B66:  RCALL  0AA0
0B68:  BNC   0B98
....................    {  
....................       y = 1.0/y;  
0B6A:  CLRF   x81
0B6C:  CLRF   x80
0B6E:  CLRF   x7F
0B70:  MOVLW  7F
0B72:  MOVWF  x7E
0B74:  MOVFF  67,85
0B78:  MOVFF  66,84
0B7C:  MOVFF  65,83
0B80:  MOVFF  64,82
0B84:  RCALL  0942
0B86:  MOVFF  03,67
0B8A:  MOVFF  02,66
0B8E:  MOVFF  01,65
0B92:  MOVFF  00,64
....................       flag = 1;  
0B96:  BSF    x70.1
....................    }  
....................   
....................    res = pat[0]*y*y + pat[1];  
0B98:  MOVLW  0A
0B9A:  MOVWF  x85
0B9C:  MOVLW  89
0B9E:  MOVWF  x84
0BA0:  MOVLW  34
0BA2:  MOVWF  x83
0BA4:  MOVLW  7C
0BA6:  MOVWF  x82
0BA8:  MOVFF  67,89
0BAC:  MOVFF  66,88
0BB0:  MOVFF  65,87
0BB4:  MOVFF  64,86
0BB8:  RCALL  0860
0BBA:  MOVFF  00,71
0BBE:  MOVFF  01,72
0BC2:  MOVFF  02,73
0BC6:  MOVFF  03,74
0BCA:  MOVFF  03,85
0BCE:  MOVFF  02,84
0BD2:  MOVFF  01,83
0BD6:  MOVFF  00,82
0BDA:  MOVFF  67,89
0BDE:  MOVFF  66,88
0BE2:  MOVFF  65,87
0BE6:  MOVFF  64,86
0BEA:  RCALL  0860
0BEC:  MOVFF  00,75
0BF0:  MOVFF  01,76
0BF4:  MOVFF  02,77
0BF8:  MOVFF  03,78
0BFC:  BCF    FD8.1
0BFE:  MOVFF  03,87
0C02:  MOVFF  02,86
0C06:  MOVFF  01,85
0C0A:  MOVFF  00,84
0C0E:  MOVLW  7C
0C10:  MOVWF  x8B
0C12:  MOVLW  79
0C14:  MOVWF  x8A

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -