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

📄 phatpspv1.lst

📁 Embedded camera control program.
💻 LST
📖 第 1 页 / 共 5 页
字号:
.................... 	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;  
*
0876:  BCF    5B.0
....................    flag = 0;  
0877:  BCF    5B.1
....................    y = x;  
0878:  MOVF   4E,W
0879:  MOVWF  52
087A:  MOVF   4D,W
087B:  MOVWF  51
087C:  MOVF   4C,W
087D:  MOVWF  50
087E:  MOVF   4B,W
087F:  MOVWF  4F
....................   
....................    if (x < 0)  
0880:  MOVF   4E,W
0881:  MOVWF  5F
0882:  MOVF   4D,W
0883:  MOVWF  5E
0884:  MOVF   4C,W
0885:  MOVWF  5D
0886:  MOVF   4B,W
0887:  MOVWF  5C
0888:  CLRF   63
0889:  CLRF   62
088A:  CLRF   61
088B:  CLRF   60
088C:  BCF    0A.3
088D:  CALL   603
088E:  BSF    0A.3
088F:  BTFSS  03.0
0890:  GOTO   094
....................    {  
....................       s = 1;  
0891:  BSF    5B.0
....................       y = -y;  
0892:  MOVLW  80
0893:  XORWF  50,F
....................    }  
....................   
....................    if (y > 1.0)  
0894:  CLRF   5F
0895:  CLRF   5E
0896:  CLRF   5D
0897:  MOVLW  7F
0898:  MOVWF  5C
0899:  MOVF   52,W
089A:  MOVWF  63
089B:  MOVF   51,W
089C:  MOVWF  62
089D:  MOVF   50,W
089E:  MOVWF  61
089F:  MOVF   4F,W
08A0:  MOVWF  60
08A1:  BCF    0A.3
08A2:  CALL   603
08A3:  BSF    0A.3
08A4:  BTFSS  03.0
08A5:  GOTO   0BF
....................    {  
....................       y = 1.0/y;  
08A6:  CLRF   63
08A7:  CLRF   62
08A8:  CLRF   61
08A9:  MOVLW  7F
08AA:  MOVWF  60
08AB:  MOVF   52,W
08AC:  MOVWF  67
08AD:  MOVF   51,W
08AE:  MOVWF  66
08AF:  MOVF   50,W
08B0:  MOVWF  65
08B1:  MOVF   4F,W
08B2:  MOVWF  64
08B3:  BCF    0A.3
08B4:  CALL   538
08B5:  BSF    0A.3
08B6:  MOVF   7A,W
08B7:  MOVWF  52
08B8:  MOVF   79,W
08B9:  MOVWF  51
08BA:  MOVF   78,W
08BB:  MOVWF  50
08BC:  MOVF   77,W
08BD:  MOVWF  4F
....................       flag = 1;  
08BE:  BSF    5B.1
....................    }  
....................   
....................    res = pat[0]*y*y + pat[1];  
08BF:  MOVLW  0A
08C0:  MOVWF  63
08C1:  MOVLW  89
08C2:  MOVWF  62
08C3:  MOVLW  34
08C4:  MOVWF  61
08C5:  MOVLW  7C
08C6:  MOVWF  60
08C7:  MOVF   52,W
08C8:  MOVWF  67
08C9:  MOVF   51,W
08CA:  MOVWF  66
08CB:  MOVF   50,W
08CC:  MOVWF  65
08CD:  MOVF   4F,W
08CE:  MOVWF  64
08CF:  BCF    0A.3
08D0:  CALL   4C2
08D1:  BSF    0A.3
08D2:  MOVF   77,W
08D3:  MOVWF  5C
08D4:  MOVF   78,W
08D5:  MOVWF  5D
08D6:  MOVF   79,W
08D7:  MOVWF  5E
08D8:  MOVF   7A,W
08D9:  MOVWF  5F
08DA:  MOVWF  63
08DB:  MOVF   79,W
08DC:  MOVWF  62
08DD:  MOVF   78,W
08DE:  MOVWF  61
08DF:  MOVF   77,W
08E0:  MOVWF  60
08E1:  MOVF   52,W
08E2:  MOVWF  67
08E3:  MOVF   51,W
08E4:  MOVWF  66
08E5:  MOVF   50,W
08E6:  MOVWF  65
08E7:  MOVF   4F,W
08E8:  MOVWF  64
08E9:  BCF    0A.3
08EA:  CALL   4C2
08EB:  BSF    0A.3
08EC:  MOVF   77,W
08ED:  MOVWF  60
08EE:  MOVF   78,W
08EF:  MOVWF  61
08F0:  MOVF   79,W
08F1:  MOVWF  62
08F2:  MOVF   7A,W
08F3:  MOVWF  63
08F4:  BCF    03.1
08F5:  MOVF   7A,W
08F6:  MOVWF  67
08F7:  MOVF   79,W
08F8:  MOVWF  66
08F9:  MOVF   78,W
08FA:  MOVWF  65
08FB:  MOVF   77,W
08FC:  MOVWF  64
08FD:  MOVLW  7C
08FE:  MOVWF  6B
08FF:  MOVLW  79
0900:  MOVWF  6A
0901:  MOVLW  35
0902:  MOVWF  69
0903:  MOVLW  81
0904:  MOVWF  68
0905:  BCF    0A.3
0906:  CALL   380
0907:  BSF    0A.3
0908:  MOVF   7A,W
0909:  MOVWF  56
090A:  MOVF   79,W
090B:  MOVWF  55
090C:  MOVF   78,W
090D:  MOVWF  54
090E:  MOVF   77,W
090F:  MOVWF  53
....................    res = res*y*y + pat[2];  
0910:  MOVF   56,W
0911:  MOVWF  63
0912:  MOVF   55,W
0913:  MOVWF  62
0914:  MOVF   54,W
0915:  MOVWF  61
0916:  MOVF   53,W
0917:  MOVWF  60
0918:  MOVF   52,W
0919:  MOVWF  67
091A:  MOVF   51,W
091B:  MOVWF  66
091C:  MOVF   50,W
091D:  MOVWF  65
091E:  MOVF   4F,W
091F:  MOVWF  64
0920:  BCF    0A.3
0921:  CALL   4C2
0922:  BSF    0A.3
0923:  MOVF   77,W
0924:  MOVWF  5C
0925:  MOVF   78,W
0926:  MOVWF  5D
0927:  MOVF   79,W
0928:  MOVWF  5E
0929:  MOVF   7A,W
092A:  MOVWF  5F
092B:  MOVWF  63
092C:  MOVF   79,W
092D:  MOVWF  62
092E:  MOVF   78,W
092F:  MOVWF  61
0930:  MOVF   77,W
0931:  MOVWF  60
0932:  MOVF   52,W
0933:  MOVWF  67
0934:  MOVF   51,W
0935:  MOVWF  66
0936:  MOVF   50,W
0937:  MOVWF  65
0938:  MOVF   4F,W
0939:  MOVWF  64
093A:  BCF    0A.3
093B:  CALL   4C2
093C:  BSF    0A.3
093D:  MOVF   77,W
093E:  MOVWF  60
093F:  MOVF   78,W
0940:  MOVWF  61
0941:  MOVF   79,W
0942:  MOVWF  62
0943:  MOVF   7A,W
0944:  MOVWF  63
0945:  BCF    03.1
0946:  MOVF   7A,W
0947:  MOVWF  67
0948:  MOVF   79,W
0949:  MOVWF  66
094A:  MOVF   78,W
094B:  MOVWF  65
094C:  MOVF   77,W
094D:  MOVWF  64
094E:  MOVLW  3F
094F:  MOVWF  6B
0950:  MOVLW  02
0951:  MOVWF  6A
0952:  MOVLW  33
0953:  MOVWF  69
0954:  MOVLW  83
0955:  MOVWF  68
0956:  BCF    0A.3
0957:  CALL   380
0958:  BSF    0A.3
0959:  MOVF   7A,W
095A:  MOVWF  56
095B:  MOVF   79,W
095C:  MOVWF  55
095D:  MOVF   78,W
095E:  MOVWF  54
095F:  MOVF   77,W
0960:  MOVWF  53
....................    res = res*y*y + pat[3];  
0961:  MOVF   56,W
0962:  MOVWF  63
0963:  MOVF   55,W
0964:  MOVWF  62
0965:  MOVF   54,W
0966:  MOVWF  61
0967:  MOVF   53,W
0968:  MOVWF  60
0969:  MOVF   52,W
096A:  MOVWF  67
096B:  MOVF   51,W
096C:  MOVWF  66
096D:  MOVF   50,W
096E:  MOVWF  65
096F:  MOVF   4F,W
0970:  MOVWF  64
0971:  BCF    0A.3
0972:  CALL   4C2
0973:  BSF    0A.3
0974:  MOVF   77,W
0975:  MOVWF  5C
0976:  MOVF   78,W
0977:  MOVWF  5D
0978:  MOVF   79,W
0979:  MOVWF  5E
097A:  MOVF   7A,W
097B:  MOVWF  5F
097C:  MOVWF  63
097D:  MOVF   79,W
097E:  MOVWF  62
097F:  MOVF   78,W
0980:  MOVWF  61
0981:  MOVF   77,W
0982:  MOVWF  60
0983:  MOVF   52,W
0984:  MOVWF  67
0985:  MOVF   51,W
0986:  MOVWF  66
0987:  MOVF   50,W
0988:  MOVWF  65
0989:  MOVF   4F,W
098A:  MOVWF  64
098B:  BCF    0A.3
098C:  CALL   4C2
098D:  BSF    0A.3
098E:  MOVF   77,W
098F:  MOVWF  60
0990:  MOVF   78,W
0991:  MOVWF  61
0992:  MOVF   79,W
0993:  MOVWF  62
0994:  MOVF   7A,W
0995:  MOVWF  63
0996:  BCF    03.1
0997:  MOVF   7A,W
0998:  MOVWF  67
0999:  MOVF   79,W
099A:  MOVWF  66
099B:  MOVF   78,W
099C:  MOVWF  65
099D:  MOVF   77,W
099E:  MOVWF  64
099F:  MOVLW  33
09A0:  MOVWF  6B
09A1:  MOVLW  8C
09A2:  MOVWF  6A
09A3:  MOVLW  1E
09A4:  MOVWF  69
09A5:  MOVLW  83
09A6:  MOVWF  68
09A7:  BCF    0A.3
09A8:  CALL   380
09A9:  BSF    0A.3
09AA:  MOVF   7A,W
09AB:  MOVWF  56
09AC:  MOVF   79,W
09AD:  MOVWF  55
09AE:  MOVF   78,W
09AF:  MOVWF  54
09B0:  MOVF   77,W
09B1:  MOVWF  53
....................   
....................    r = qat[0]*y*y + qat[1];  
09B2:  CLRF   63
09B3:  CLRF   62
09B4:  CLRF   61
09B5:  MOVLW  7F
09B6:  MOVWF  60
09B7:  MOVF   52,W
09B8:  MOVWF  67
09B9:  MOVF   51,W
09BA:  MOVWF  66
09BB:  MOVF   50,W
09BC:  MOVWF  65
09BD:  MOVF   4F,W
09BE:  MOVWF  64
09BF:  BCF    0A.3
09C0:  CALL   4C2
09C1:  BSF    0A.3
09C2:  MOVF   77,W
09C3:  MOVWF  5C
09C4:  MOVF   78,W
09C5:  MOVWF  5D
09C6:  MOVF   79,W
09C7:  MOVWF  5E
09C8:  MOVF   7A,W
09C9:  MOVWF  5F
09CA:  MOVWF  63
09CB:  MOVF   79,W

⌨️ 快捷键说明

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