📄 psp_wrt_transmitter.lst
字号:
0CA4: BCF 03.5
0CA5: CALL 385
0CA6: BSF 0A.3
0CA7: MOVF 7A,W
0CA8: BSF 03.5
0CA9: MOVWF 2B
0CAA: MOVF 79,W
0CAB: MOVWF 2A
0CAC: MOVF 78,W
0CAD: MOVWF 29
0CAE: MOVF 77,W
0CAF: MOVWF 28
.................... quad = quad % 4; // quadrant (0 to 3)
0CB0: MOVLW 03
0CB1: ANDWF 75,F
....................
.................... if (quad == 0 || quad == 2)
0CB2: MOVF 75,F
0CB3: BTFSC 03.2
0CB4: GOTO 4B9
0CB5: MOVF 75,W
0CB6: SUBLW 02
0CB7: BTFSS 03.2
0CB8: GOTO 4D7
.................... t = frac * PI_DIV_BY_TWO;
0CB9: MOVF 2B,W
0CBA: MOVWF 45
0CBB: MOVF 2A,W
0CBC: MOVWF 44
0CBD: MOVF 29,W
0CBE: MOVWF 43
0CBF: MOVF 28,W
0CC0: MOVWF 42
0CC1: MOVLW DB
0CC2: MOVWF 49
0CC3: MOVLW 0F
0CC4: MOVWF 48
0CC5: MOVLW 49
0CC6: MOVWF 47
0CC7: MOVLW 7F
0CC8: MOVWF 46
0CC9: BCF 0A.3
0CCA: BCF 03.5
0CCB: CALL 2EB
0CCC: BSF 0A.3
0CCD: MOVF 7A,W
0CCE: BSF 03.5
0CCF: MOVWF 23
0CD0: MOVF 79,W
0CD1: MOVWF 22
0CD2: MOVF 78,W
0CD3: MOVWF 21
0CD4: MOVF 77,W
0CD5: MOVWF 20
.................... else if (quad == 1)
0CD6: GOTO 548
0CD7: DECFSZ 75,W
0CD8: GOTO 511
.................... t = (1-frac) * PI_DIV_BY_TWO;
0CD9: BSF 03.1
0CDA: CLRF 47
0CDB: CLRF 46
0CDC: CLRF 45
0CDD: MOVLW 7F
0CDE: MOVWF 44
0CDF: MOVF 2B,W
0CE0: MOVWF 4B
0CE1: MOVF 2A,W
0CE2: MOVWF 4A
0CE3: MOVF 29,W
0CE4: MOVWF 49
0CE5: MOVF 28,W
0CE6: MOVWF 48
0CE7: BCF 0A.3
0CE8: BCF 03.5
0CE9: CALL 385
0CEA: BSF 0A.3
0CEB: MOVF 77,W
0CEC: BSF 03.5
0CED: MOVWF 3C
0CEE: MOVF 78,W
0CEF: MOVWF 3D
0CF0: MOVF 79,W
0CF1: MOVWF 3E
0CF2: MOVF 7A,W
0CF3: MOVWF 3F
0CF4: MOVWF 45
0CF5: MOVF 3E,W
0CF6: MOVWF 44
0CF7: MOVF 3D,W
0CF8: MOVWF 43
0CF9: MOVF 3C,W
0CFA: MOVWF 42
0CFB: MOVLW DB
0CFC: MOVWF 49
0CFD: MOVLW 0F
0CFE: MOVWF 48
0CFF: MOVLW 49
0D00: MOVWF 47
0D01: MOVLW 7F
0D02: MOVWF 46
0D03: BCF 0A.3
0D04: BCF 03.5
0D05: CALL 2EB
0D06: BSF 0A.3
0D07: MOVF 7A,W
0D08: BSF 03.5
0D09: MOVWF 23
0D0A: MOVF 79,W
0D0B: MOVWF 22
0D0C: MOVF 78,W
0D0D: MOVWF 21
0D0E: MOVF 77,W
0D0F: MOVWF 20
.................... else // should be 3
0D10: GOTO 548
.................... t = (frac-1) * PI_DIV_BY_TWO;
0D11: BSF 03.1
0D12: MOVF 2B,W
0D13: MOVWF 47
0D14: MOVF 2A,W
0D15: MOVWF 46
0D16: MOVF 29,W
0D17: MOVWF 45
0D18: MOVF 28,W
0D19: MOVWF 44
0D1A: CLRF 4B
0D1B: CLRF 4A
0D1C: CLRF 49
0D1D: MOVLW 7F
0D1E: MOVWF 48
0D1F: BCF 0A.3
0D20: BCF 03.5
0D21: CALL 385
0D22: BSF 0A.3
0D23: MOVF 77,W
0D24: BSF 03.5
0D25: MOVWF 3C
0D26: MOVF 78,W
0D27: MOVWF 3D
0D28: MOVF 79,W
0D29: MOVWF 3E
0D2A: MOVF 7A,W
0D2B: MOVWF 3F
0D2C: MOVWF 45
0D2D: MOVF 3E,W
0D2E: MOVWF 44
0D2F: MOVF 3D,W
0D30: MOVWF 43
0D31: MOVF 3C,W
0D32: MOVWF 42
0D33: MOVLW DB
0D34: MOVWF 49
0D35: MOVLW 0F
0D36: MOVWF 48
0D37: MOVLW 49
0D38: MOVWF 47
0D39: MOVLW 7F
0D3A: MOVWF 46
0D3B: BCF 0A.3
0D3C: BCF 03.5
0D3D: CALL 2EB
0D3E: BSF 0A.3
0D3F: MOVF 7A,W
0D40: BSF 03.5
0D41: MOVWF 23
0D42: MOVF 79,W
0D43: MOVWF 22
0D44: MOVF 78,W
0D45: MOVWF 21
0D46: MOVF 77,W
0D47: MOVWF 20
....................
.................... y = 0.999999999781;
0D48: CLRF 74
0D49: CLRF 73
0D4A: CLRF 72
0D4B: MOVLW 7F
0D4C: MOVWF 71
.................... t = t * t;
0D4D: MOVF 23,W
0D4E: MOVWF 45
0D4F: MOVF 22,W
0D50: MOVWF 44
0D51: MOVF 21,W
0D52: MOVWF 43
0D53: MOVF 20,W
0D54: MOVWF 42
0D55: MOVF 23,W
0D56: MOVWF 49
0D57: MOVF 22,W
0D58: MOVWF 48
0D59: MOVF 21,W
0D5A: MOVWF 47
0D5B: MOVF 20,W
0D5C: MOVWF 46
0D5D: BCF 0A.3
0D5E: BCF 03.5
0D5F: CALL 2EB
0D60: BSF 0A.3
0D61: MOVF 7A,W
0D62: BSF 03.5
0D63: MOVWF 23
0D64: MOVF 79,W
0D65: MOVWF 22
0D66: MOVF 78,W
0D67: MOVWF 21
0D68: MOVF 77,W
0D69: MOVWF 20
.................... for (i = 0; i <= 3; i++)
0D6A: CLRF 76
0D6B: MOVF 76,W
0D6C: SUBLW 03
0D6D: BTFSS 03.0
0D6E: GOTO 5DF
.................... {
.................... t2 = t2 * t;
0D6F: MOVF 27,W
0D70: MOVWF 45
0D71: MOVF 26,W
0D72: MOVWF 44
0D73: MOVF 25,W
0D74: MOVWF 43
0D75: MOVF 24,W
0D76: MOVWF 42
0D77: MOVF 23,W
0D78: MOVWF 49
0D79: MOVF 22,W
0D7A: MOVWF 48
0D7B: MOVF 21,W
0D7C: MOVWF 47
0D7D: MOVF 20,W
0D7E: MOVWF 46
0D7F: BCF 0A.3
0D80: BCF 03.5
0D81: CALL 2EB
0D82: BSF 0A.3
0D83: MOVF 7A,W
0D84: BSF 03.5
0D85: MOVWF 27
0D86: MOVF 79,W
0D87: MOVWF 26
0D88: MOVF 78,W
0D89: MOVWF 25
0D8A: MOVF 77,W
0D8B: MOVWF 24
.................... y = y + p[i] * t2;
0D8C: RLF 76,W
0D8D: MOVWF 77
0D8E: RLF 77,F
0D8F: MOVLW FC
0D90: ANDWF 77,F
0D91: MOVF 77,W
0D92: ADDLW AC
0D93: MOVWF 04
0D94: BCF 03.7
0D95: MOVF 00,W
0D96: MOVWF 3C
0D97: INCF 04,F
0D98: MOVF 00,W
0D99: MOVWF 3D
0D9A: INCF 04,F
0D9B: MOVF 00,W
0D9C: MOVWF 3E
0D9D: INCF 04,F
0D9E: MOVF 00,W
0D9F: MOVWF 3F
0DA0: MOVWF 45
0DA1: MOVF 3E,W
0DA2: MOVWF 44
0DA3: MOVF 3D,W
0DA4: MOVWF 43
0DA5: MOVF 3C,W
0DA6: MOVWF 42
0DA7: MOVF 27,W
0DA8: MOVWF 49
0DA9: MOVF 26,W
0DAA: MOVWF 48
0DAB: MOVF 25,W
0DAC: MOVWF 47
0DAD: MOVF 24,W
0DAE: MOVWF 46
0DAF: BCF 0A.3
0DB0: BCF 03.5
0DB1: CALL 2EB
0DB2: BSF 0A.3
0DB3: BSF 03.5
0DB4: CLRF 41
0DB5: MOVF 04,W
0DB6: MOVWF 40
0DB7: BCF 41.0
0DB8: BTFSC 03.7
0DB9: BSF 41.0
0DBA: BCF 03.1
0DBB: MOVF 74,W
0DBC: MOVWF 47
0DBD: MOVF 73,W
0DBE: MOVWF 46
0DBF: MOVF 72,W
0DC0: MOVWF 45
0DC1: MOVF 71,W
0DC2: MOVWF 44
0DC3: MOVF 7A,W
0DC4: MOVWF 4B
0DC5: MOVF 79,W
0DC6: MOVWF 4A
0DC7: MOVF 78,W
0DC8: MOVWF 49
0DC9: MOVF 77,W
0DCA: MOVWF 48
0DCB: BCF 0A.3
0DCC: BCF 03.5
0DCD: CALL 385
0DCE: BSF 0A.3
0DCF: BSF 03.5
0DD0: MOVF 40,W
0DD1: MOVWF 04
0DD2: BCF 03.7
0DD3: BTFSC 41.0
0DD4: BSF 03.7
0DD5: MOVF 7A,W
0DD6: MOVWF 74
0DD7: MOVF 79,W
0DD8: MOVWF 73
0DD9: MOVF 78,W
0DDA: MOVWF 72
0DDB: MOVF 77,W
0DDC: MOVWF 71
.................... }
0DDD: INCF 76,F
0DDE: GOTO 56B
....................
.................... if (quad == 2 || quad == 1)
0DDF: MOVF 75,W
0DE0: SUBLW 02
0DE1: BTFSC 03.2
0DE2: GOTO 5E5
0DE3: DECFSZ 75,W
0DE4: GOTO 5E7
.................... y = -y; // correct sign
0DE5: MOVLW 80
0DE6: XORWF 72,F
....................
.................... return (y);
0DE7: MOVF 71,W
0DE8: MOVWF 77
0DE9: MOVF 72,W
0DEA: MOVWF 78
0DEB: MOVF 73,W
0DEC: MOVWF 79
0DED: MOVF 74,W
0DEE: MOVWF 7A
.................... }
....................
.................... ////////////////////////////////////////////////////////////////////////////
.................... // 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;
*
08C8: BCF 75.0
.................... flag = 0;
08C9: BCF 75.1
.................... y = x;
08CA: MOVF 74,W
08CB: BSF 03.5
08CC: MOVWF 23
08CD: MOVF 73,W
08CE: MOVWF 22
08CF: MOVF 72,W
08D0: MOVWF 21
08D1: MOVF 71,W
08D2: MOVWF 20
....................
.................... if (x < 0)
08D3: MOVF 74,W
08D4: MOVWF 41
08D5: MOVF 73,W
08D6: MOVWF 40
08D7: MOVF 72,W
08D8: MOVWF 3F
08D9: MOVF 71,W
08DA: MOVWF 3E
08DB: CLRF 45
08DC: CLRF 44
08DD: CLRF 43
08DE: CLRF 42
08DF: BCF 0A.3
08E0: BCF 03.5
08E1: CALL 599
08E2: BSF 0A.3
08E3: BTFSS 03.0
08E4: GOTO 0EA
.................... {
.................... s = 1;
08E5: BSF 75.0
.................... y = -y;
08E6: MOVLW 80
08E7: BSF 03.5
08E8: XORWF 21,F
08E9: BCF 03.5
.................... }
....................
.................... if (y > 1.0)
08EA: BSF 03.5
08EB: CLRF 41
08EC: CLRF 40
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -