?? stm8_tsl_multichannelkey.ls
字號:
1919 056a 02 rlwa x,a
1920 056b bf00 ldw c_x,x
1921 056d 90b300 cpw y,c_x
1922 0570 240a jruge L155
1923 ; 1707 pMCKeyStruct->Channel[1].IntegratorCounter = pMCKeyStruct->DirectionChangeIntegrator;
1925 0572 be00 ldw x,_pMCKeyStruct
1926 0574 e62e ld a,(46,x)
1927 0576 e711 ld (17,x),a
1928 ; 1708 return retval;
1930 0578 7b0e ld a,(OFST-6,sp)
1932 057a 209f jra L07
1933 057c L155:
1934 ; 1712 pMCKeyStruct->Channel[1].IntegratorCounter--;
1936 057c be00 ldw x,_pMCKeyStruct
1937 057e 6a11 dec (17,x)
1938 ; 1713 if (!pMCKeyStruct->Channel[1].IntegratorCounter)
1940 0580 be00 ldw x,_pMCKeyStruct
1941 0582 6d11 tnz (17,x)
1942 0584 2612 jrne L555
1943 ; 1715 pMCKeyStruct->Channel[1].IntegratorCounter = pMCKeyStruct->DirectionChangeIntegrator;
1945 0586 be00 ldw x,_pMCKeyStruct
1946 0588 e62e ld a,(46,x)
1947 058a e711 ld (17,x),a
1948 ; 1716 pMCKeyStruct->Setting.b.DIRECTION = 0; // New direction accepted: clockwise.
1950 058c be00 ldw x,_pMCKeyStruct
1951 058e e601 ld a,(1,x)
1952 0590 a4fe and a,#254
1953 0592 e701 ld (1,x),a
1955 0594 ac540654 jpf L165
1956 0598 L555:
1957 ; 1720 return retval;
1959 0598 7b0e ld a,(OFST-6,sp)
1961 059a cc051b jra L07
1962 059d L335:
1963 ; 1730 if (((u8)NewPosition < pMCKeyStruct->UnScaledPosition) && ((pMCKeyStruct->UnScaledPosition - (u8)NewPosition) < MCKEY_DIRECTION_CHANGE_MAX_DISPLACEMENT))
1965 059d be00 ldw x,_pMCKeyStruct
1966 059f e629 ld a,(41,x)
1967 05a1 1114 cp a,(OFST+0,sp)
1968 05a3 2358 jrule L365
1970 05a5 9c rvf
1971 05a6 be00 ldw x,_pMCKeyStruct
1972 05a8 e629 ld a,(41,x)
1973 05aa 5f clrw x
1974 05ab 1014 sub a,(OFST+0,sp)
1975 05ad 2401 jrnc L26
1976 05af 5a decw x
1977 05b0 L26:
1978 05b0 02 rlwa x,a
1979 05b1 a300ff cpw x,#255
1980 05b4 2e47 jrsge L365
1981 ; 1732 if ((NewPosition + pMCKeyStruct->DirectionChangeThreshold) > pMCKeyStruct->UnScaledPosition)
1983 05b6 9c rvf
1984 05b7 be00 ldw x,_pMCKeyStruct
1985 05b9 e62f ld a,(47,x)
1986 05bb 5f clrw x
1987 05bc 97 ld xl,a
1988 05bd 72fb13 addw x,(OFST-1,sp)
1989 05c0 90be00 ldw y,_pMCKeyStruct
1990 05c3 90e629 ld a,(41,y)
1991 05c6 905f clrw y
1992 05c8 9097 ld yl,a
1993 05ca 90bf00 ldw c_y,y
1994 05cd b300 cpw x,c_y
1995 05cf 2d0c jrsle L565
1996 ; 1734 pMCKeyStruct->Channel[1].IntegratorCounter = pMCKeyStruct->DirectionChangeIntegrator;
1998 05d1 be00 ldw x,_pMCKeyStruct
1999 05d3 e62e ld a,(46,x)
2000 05d5 e711 ld (17,x),a
2001 ; 1735 return retval;
2003 05d7 7b0e ld a,(OFST-6,sp)
2005 05d9 ac1b051b jpf L07
2006 05dd L565:
2007 ; 1739 pMCKeyStruct->Channel[1].IntegratorCounter--;
2009 05dd be00 ldw x,_pMCKeyStruct
2010 05df 6a11 dec (17,x)
2011 ; 1740 if (!pMCKeyStruct->Channel[1].IntegratorCounter)
2013 05e1 be00 ldw x,_pMCKeyStruct
2014 05e3 6d11 tnz (17,x)
2015 05e5 2610 jrne L175
2016 ; 1742 pMCKeyStruct->Channel[1].IntegratorCounter = pMCKeyStruct->DirectionChangeIntegrator;
2018 05e7 be00 ldw x,_pMCKeyStruct
2019 05e9 e62e ld a,(46,x)
2020 05eb e711 ld (17,x),a
2021 ; 1743 pMCKeyStruct->Setting.b.DIRECTION = 1; // New direction accepted: anticlockwise.
2023 05ed be00 ldw x,_pMCKeyStruct
2024 05ef e601 ld a,(1,x)
2025 05f1 aa01 or a,#1
2026 05f3 e701 ld (1,x),a
2028 05f5 2006 jra L365
2029 05f7 L175:
2030 ; 1747 return retval;
2032 05f7 7b0e ld a,(OFST-6,sp)
2034 05f9 ac1b051b jpf L07
2035 05fd L365:
2036 ; 1753 if (NewPosition > (u16)(pMCKeyStruct->UnScaledPosition + MCKEY_DIRECTION_CHANGE_MAX_DISPLACEMENT))
2038 05fd be00 ldw x,_pMCKeyStruct
2039 05ff e629 ld a,(41,x)
2040 0601 5f clrw x
2041 0602 97 ld xl,a
2042 0603 1c00ff addw x,#255
2043 0606 1313 cpw x,(OFST-1,sp)
2044 0608 244a jruge L165
2045 ; 1755 if ((NewPosition + pMCKeyStruct->DirectionChangeThreshold) > (u16)(pMCKeyStruct->UnScaledPosition + MCKEY_DIRECTION_CHANGE_TOTAL_STEPS))
2047 060a be00 ldw x,_pMCKeyStruct
2048 060c e62f ld a,(47,x)
2049 060e 5f clrw x
2050 060f 97 ld xl,a
2051 0610 72fb13 addw x,(OFST-1,sp)
2052 0613 90be00 ldw y,_pMCKeyStruct
2053 0616 90e629 ld a,(41,y)
2054 0619 905f clrw y
2055 061b 9097 ld yl,a
2056 061d 72a90100 addw y,#256
2057 0621 90bf00 ldw c_y,y
2058 0624 b300 cpw x,c_y
2059 0626 230c jrule L775
2060 ; 1757 pMCKeyStruct->Channel[1].IntegratorCounter = pMCKeyStruct->DirectionChangeIntegrator;
2062 0628 be00 ldw x,_pMCKeyStruct
2063 062a e62e ld a,(46,x)
2064 062c e711 ld (17,x),a
2065 ; 1758 return retval;
2067 062e 7b0e ld a,(OFST-6,sp)
2069 0630 ac1b051b jpf L07
2070 0634 L775:
2071 ; 1762 pMCKeyStruct->Channel[1].IntegratorCounter--;
2073 0634 be00 ldw x,_pMCKeyStruct
2074 0636 6a11 dec (17,x)
2075 ; 1763 if (!pMCKeyStruct->Channel[1].IntegratorCounter)
2077 0638 be00 ldw x,_pMCKeyStruct
2078 063a 6d11 tnz (17,x)
2079 063c 2610 jrne L306
2080 ; 1765 pMCKeyStruct->Channel[1].IntegratorCounter = pMCKeyStruct->DirectionChangeIntegrator;
2082 063e be00 ldw x,_pMCKeyStruct
2083 0640 e62e ld a,(46,x)
2084 0642 e711 ld (17,x),a
2085 ; 1766 pMCKeyStruct->Setting.b.DIRECTION = 1; // New direction accepted: anticlockwise.
2087 0644 be00 ldw x,_pMCKeyStruct
2088 0646 e601 ld a,(1,x)
2089 0648 aa01 or a,#1
2090 064a e701 ld (1,x),a
2092 064c 2006 jra L165
2093 064e L306:
2094 ; 1770 return retval;
2096 064e 7b0e ld a,(OFST-6,sp)
2098 0650 ac1b051b jpf L07
2099 0654 L165:
2100 ; 1786 pMCKeyStruct->UnScaledPosition = (u8)NewPosition;
2102 0654 7b14 ld a,(OFST+0,sp)
2103 0656 be00 ldw x,_pMCKeyStruct
2104 0658 e729 ld (41,x),a
2105 ; 1788 uNewPosition = (u8)((u8)NewPosition >> (MCKEY_RESOLUTION_CALCULATION - pMCKeyStruct->Resolution));
2107 065a be00 ldw x,_pMCKeyStruct
2108 065c e62d ld a,(45,x)
2109 065e a008 sub a,#8
2110 0660 40 neg a
2111 0661 5f clrw x
2112 0662 97 ld xl,a
2113 0663 7b14 ld a,(OFST+0,sp)
2114 0665 5d tnzw x
2115 0666 2704 jreq L46
2116 0668 L66:
2117 0668 44 srl a
2118 0669 5a decw x
2119 066a 26fc jrne L66
2120 066c L46:
2121 066c 6b0d ld (OFST-7,sp),a
2122 ; 1790 if (pMCKeyStruct->Position != uNewPosition)
2124 066e be00 ldw x,_pMCKeyStruct
2125 0670 e628 ld a,(40,x)
2126 0672 110d cp a,(OFST-7,sp)
2127 0674 2712 jreq L706
2128 ; 1792 pMCKeyStruct->Position = uNewPosition;
2130 0676 7b0d ld a,(OFST-7,sp)
2131 0678 be00 ldw x,_pMCKeyStruct
2132 067a e728 ld (40,x),a
2133 ; 1793 pMCKeyStruct->Setting.b.POSCHANGED = 1; /* Warning: Application layer must reset this flag */
2135 067c be00 ldw x,_pMCKeyStruct
2136 067e e602 ld a,(2,x)
2137 0680 aa10 or a,#16
2138 0682 e702 ld (2,x),a
2139 ; 1794 retval = 0xFF;
2141 0684 a6ff ld a,#255
2142 0686 6b0e ld (OFST-6,sp),a
2143 0688 L706:
2144 ; 1797 return retval;
2146 0688 7b0e ld a,(OFST-6,sp)
2148 068a ac1b051b jpf L07
2174 ; 1812 void TSL_MCKey_CheckDisabled(void)
2174 ; 1813 {
2175 switch .text
2176 068e _TSL_MCKey_CheckDisabled:
2180 ; 1815 if (!pMCKeyStruct->Setting.b.ENABLED)
2182 068e be00 ldw x,_pMCKeyStruct
2183 0690 e602 ld a,(2,x)
2184 0692 a502 bcp a,#2
2185 0694 2603 jrne L126
2186 ; 1817 TSL_MCKey_SetDisabledState();
2188 0696 cd0000 call _TSL_MCKey_SetDisabledState
2190 0699 L126:
2191 ; 1820 }
2194 0699 81 ret
2220 ; 1833 void TSL_MCKey_CheckEnabled(void)
2220 ; 1834 {
2221 switch .text
2222 069a _TSL_MCKey_CheckEnabled:
2226 ; 1836 if (pMCKeyStruct->Setting.b.ENABLED && pMCKeyStruct->Setting.b.IMPLEMENTED)
2228 069a be00 ldw x,_pMCKeyStruct
2229 069c e602 ld a,(2,x)
2230 069e a502 bcp a,#2
2231 06a0 270b jreq L336
2233 06a2 be00 ldw x,_pMCKeyStruct
2234 06a4 e602 ld a,(2,x)
2235 06a6 a501 bcp a,#1
2236 06a8 2703 jreq L336
2237 ; 1838 TSL_MCKey_SetCalibrationState();
2239 06aa cd0000 call _TSL_MCKey_SetCalibrationState
2241 06ad L336:
2242 ; 1841 }
2245 06ad 81 ret
2271 ; 1854 u8 TSL_MCKey_CheckErrorCondition(void)
2271 ; 1855 {
2272 switch .text
2273 06ae _TSL_MCKey_CheckErrorCondition:
2277 ; 1857 for (ChannelIndex = 0; ChannelIndex < CHANNEL_PER_MCKEY; ChannelIndex++)
2279 06ae 3f00 clr _ChannelIndex
2280 06b0 L546:
2281 ; 1859 if ((pMCKeyStruct->Channel[ChannelIndex].LastMeas < MCKEY_MIN_ACQUISITION)
2281 ; 1860 || (pMCKeyStruct->Channel[ChannelIndex].LastMeas > MCKEY_MAX_ACQUISITION))
2283 06b0 b600 ld a,_ChannelIndex
2284 06b2 97 ld xl,a
2285 06b3 a607 ld a,#7
2286 06b5 42 mul x,a
2287 06b6 72bb0000 addw x,_pMCKeyStruct
2288 06ba 9093 ldw y,x
2289 06bc 90ee05 ldw y,(5,y)
2290 06bf 90a30096 cpw y,#150
2291 06c3 2515 jrult L556
2293 06c5 b600 ld a,_ChannelIndex
2294 06c7 97 ld xl,a
2295 06c8 a607 ld a,#7
2296 06ca 42 mul x,a
2297 06cb 72bb0000 addw x,_pMCKeyStruct
2298 06cf 9093 ldw y,x
2299 06d1 90ee05 ldw y,(5,y)
2300 06d4 90a31389 cpw y,#5001
2301 06d8 2503 jrult L356
2302 06da L556:
2303 ; 1862 return 0xFF; // Error case !
2305 06da a6ff ld a,#255
2308 06dc 81 ret
2309 06dd L356:
2310 ; 1857 for (ChannelIndex = 0; ChannelIndex < CHANNEL_PER_MCKEY; ChannelIndex++)
2312 06dd 3c00 inc _ChannelIndex
2315 06df b600 ld a,_ChannelIndex
2316 06e1 a105 cp a,#5
2317 06e3 25cb jrult L546
2318 ; 1866 return 0;
2320 06e5 4f clr a
2323 06e6 81 ret
2350 xdef _MCKEY1_TABLE_POSITION_OFFSET
2351 xref _TSL_MCKey_DetectionTimeout
2352 xref _TSL_MCKey_DxS
2353 xref _TSL_MCKey_SetDisabledState
2354 xref _TSL_MCKey_SetErrorState
2355 xref _TSL_MCKey_SetCalibrationState
2356 xref _TSL_MCKey_SetPreRecalibrationState
2357 xref _TSL_MCKey_BackToDetectedState
2358 xref _TSL_MCKey_SetPostDetectState
2359 xref _TSL_MCKey_SetDetectedState
2360 xref _TSL_MCKey_SetPre
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -