📄 channel_mana.lst
字号:
"File: CHANNEL_MANA.ASM Holtek Cross-Assembler Version 2.86 Page 1
1 0000 INCLUDE DONGLE.INC
2 0000
3 0000 PUBLIC INIT_CHANNEL_MANA
4 0000 PUBLIC CHANNEL_SCAN
5 0000 PUBLIC RSSI_CHECK
6 0000 PUBLIC GET_NEXT_CHANNEL
7 0000 PUBLIC GET_NEXT_2CHANNELS
8 0000
9 0000 PUBLIC NEXT_1_CHANNEL
10 0000 PUBLIC NEXT_2_CHANNEL
11 0000 PUBLIC NEXT_3_CHANNEL
12 0000 PUBLIC NEXT_4_CHANNEL
13 0000 PUBLIC NEXT_5_CHANNEL
14 0000
15 0000
16 0000 EXTERN RF_CHANNEL :BYTE
17 0000 EXTERN RF_REG_ADDRESS :BYTE
18 0000 EXTERN RF_REG_DATA :BYTE
19 0000 EXTERN CHANNEL_INDEX :BYTE
20 0000
21 0000 EXTERN RF_REG_READ :NEAR
22 0000 EXTERN RF_REG_WRITE :NEAR
23 0000
24 0000 CHANNEL_MANA .SECTION 'DATA'
25 0000
26 0000
27 0000
28 0000 00 BIT_MASK_INDEX DB ?
29 0001 00 CHANNEL_BIT_MASK DB ?
30 0002 00 RSSI_LIMIT DB ?
31 0003 00 SAFE_CHANNEL_CNT DB ?
32 0004 00 CHANNEL_IDX_TEMP DB ?
33 0005 00 NEXT_1_CHANNEL DB ?
34 0006 00 NEXT_2_CHANNEL DB ?
35 0007 00 NEXT_3_CHANNEL DB ?
36 0008 00 NEXT_4_CHANNEL DB ?
37 0009 00 NEXT_5_CHANNEL DB ?
38 000A 00 RF_CHANNEL_RSSI DB ?
39 000B 00 CHANNEL_IDX_RSSI DB ?
40 000C 00 RSSI_ACC_TEMP DB ?
41 000D 00 RSSI_ACC_LIMIT DB ?
42 000E 00 RSSI_RB_TEMP DB ?
43 000F 00 RSSI_RB_CNT DB ?
44 0010 00 RSSI_RB_1 DB ?
45 0011 ;RSSI_RB_2 DB ?
46 0011 ;RSSI_RB_3 DB ?
47 0011 00 RF_CHANNEL_TEMP DB ?
48 0012 00 RSSI_INC_FLAG DBIT
49 0013
50 0013
51 0013
52 0000 CHANNEL_MANA_CODE .SECTION 'CODE'
53 0000
54 0000 INIT_CHANNEL_MANA:
55 0000
56 0000 0F50 MOV A, 80
57 0001 0080 R MOV SAFE_CHANNEL_CNT, A
"File: CHANNEL_MANA.ASM Holtek Cross-Assembler Version 2.86 Page 2
58 0002 0F02 MOV A, 2
59 0003 0080 R MOV RSSI_LIMIT, A
60 0004 0F01 MOV A, 1
61 0005 0080 R MOV RSSI_ACC_LIMIT, A
62 0006
63 0006 1F00 R CLR CHANNEL_IDX_RSSI
64 0007 0F02 MOV A, 2
65 0008 0080 R MOV RF_CHANNEL_RSSI, A
66 0009
67 0009 0003 RET
68 000A
69 000A
70 000A CHANNEL_SCAN:
71 000A
72 000A
73 000A 0003 RET
74 000B
75 000B RSSI_CHECK:
76 000B
77 000B 3116 SET PC.2
78 000C
79 000C RSSI_CA:
80 000C 0700 R MOV A, CHANNEL_IDX_RSSI ; INIT:0
81 000D 0080 R MOV CHANNEL_IDX_TEMP, A
82 000E
83 000E ;CALL GET_RF_CHANNEL_RSSI
84 000E
85 000E ; CHANGE TO RX MODE
86 000E 1F00 E CLR RF_REG_ADDRESS
87 000F 0700 R MOV A, RF_CHANNEL_RSSI ; RF_CHANNEL_RSSI <-- 2 ,WHEN INIT_CHANNEL_MANA()
88 0010 0080 E MOV RF_REG_DATA, A
89 0011 2000 E CALL RF_REG_WRITE ; CHANGE MODE TO "RX" AND CHANNEL TO "RF_CHANNEL_RSSI"
90 0012
91 0012 ; CHANGE TO DIRECT MODE
92 0012 0F02 MOV A, 002H
93 0013 0080 E MOV RF_REG_ADDRESS, A
94 0014 0F28 MOV A, 028H ; 0010 1000
95 0015 0080 E MOV RF_REG_DATA, A
96 0016 2000 E CALL RF_REG_WRITE
97 0017
98 0017 ;ENABLE RSSI REFRESH BY ASSIGN RSSI_CCA=1
99 0017 0F03 MOV A, 003H
100 0018 0080 E MOV RF_REG_ADDRESS, A
101 0019 0F90 MOV A, 090H ; 1001 0000
102 001A 0080 E MOV RF_REG_DATA, A ; |
103 001B 2000 E CALL RF_REG_WRITE ; RSSI_CCA
104 001C
105 001C ;POWER-UP RF FRONT
106 001C ;SET TRRDY
107 001C
108 001C WAIT_RSSI_REFRESH_DONE:
109 001C 2000 E CALL RF_REG_READ
110 001D 3C00 E SZ RF_REG_DATA.4 ; RSSI_CCA:1->0 MEANS REFRESH "RSSIVAL" DONE
111 001E 2800 R JMP WAIT_RSSI_REFRESH_DONE
112 001F
113 001F ;CLR TRRDY
114 001F
115 001F 0F04 MOV A, 004H
116 0020 0080 E MOV RF_REG_ADDRESS, A
117 0021 2000 E CALL RF_REG_READ
"File: CHANNEL_MANA.ASM Holtek Cross-Assembler Version 2.86 Page 3
118 0022
119 0022 0700 E MOV A, RF_REG_DATA ; NOW RF_REG_DATA.3~0:RSSIVAL
120 0023 0E0F AND A, 00FH ; 0000XXXX
121 0024
122 0024 0300 R ADD A, RSSI_RB_1 ; INIT:0
123 0025 1985 RR ACC ; X0000XXX
124 0026 0E7F AND A, 07FH ; 01111111
125 0027 0080 R MOV RSSI_RB_1, A ; RSSI_RB_1(NOW) = ( RSSIVAL + RSSI_RB_1(LAST TIME) ) MOD 2
126 0028
127 0028 ; MOV RSSI_RB_TEMP, A
128 0028 ;
129 0028 ; MOV A, RSSI_RB_2
130 0028 ; MOV RSSI_RB_1, A
131 0028 ;
132 0028 ; MOV A, RSSI_RB_3
133 0028 ; MOV RSSI_RB_2, A
134 0028 ;
135 0028 ; MOV A, RSSI_RB_TEMP
136 0028 ; MOV RSSI_RB_3, A
137 0028
138 0028 ;CHECK READED RSSI VALUE, IF RSSIVAL > RSSI_LIMIT THEN ACC = 0XFF
139 0028 ; SUB A, RSSI_LIMIT
140 0028 ; SZ ACC.7
141 0028 ; JMP ACC_TO_ZERO
142 0028 ;
143 0028 ; SET ACC
144 0028 ; JMP GOTO_REFRESH_RSSI
145 0028 ;
146 0028 ; ACC_TO_ZERO:
147 0028 ;
148 0028 ; CLR ACC
149 0028 ;
150 0028 ; GOTO_REFRESH_RSSI:
151 0028
152 0028 ; CALL REFRESH_RSSI_ACC_A
153 0028 ; CALL REFRESH_RSSI_ACC
154 0028
155 0028 ; CHANGE BACK TO BURST MODE
156 0028 0F02 MOV A, 002H
157 0029 0080 E MOV RF_REG_ADDRESS, A
158 002A 0F68 MOV A, 068H ; 0110 1000
159 002B 0080 E MOV RF_REG_DATA, A ; |
160 002C 2000 E CALL RF_REG_WRITE ; BURST MODE
161 002D
162 002D
163 002D 1480 R INC RSSI_RB_CNT ; 0~7 ROTATIONs "NOT INC RSSI CHANNEL"
164 002E 0F08 MOV A, 8
165 002F 0400 R XOR A, RSSI_RB_CNT
166 0030 1085 SZ ACC
167 0031 2800 R JMP NOT_INC_RSSI_CHANNEL
168 0032 INC_RSSI_CHANNEL:
169 0032 0700 R MOV A, RSSI_RB_1 ; RSSI_RB_1(NOW) = ( RSSIVAL + RSSI_RB_1(LAST TIME) ) MOD 2
170 0033 2000 R CALL REFRESH_RSSI_ACC_A
171 0034
172 0034 1F00 R CLR RSSI_RB_1
173 0035 1F00 R CLR RSSI_RB_CNT
174 0036
175 0036 ;INC CHANNEL_IDX_RSSI
176 0036 1480 R INC RF_CHANNEL_RSSI
177 0037 0F52 MOV A, 82
"File: CHANNEL_MANA.ASM Holtek Cross-Assembler Version 2.86 Page 4
178 0038 0400 R XOR A, RF_CHANNEL_RSSI
179 0039 ;XOR A, CHANNEL_IDX_RSSI
180 0039 1085 SZ ACC
181 003A 2800 R JMP NOT_RST_CIR
182 003B
183 003B 0F02 MOV A, 2
184 003C 0080 R MOV RF_CHANNEL_RSSI, A
185 003D ;CLR CHANNEL_IDX_RSSI
186 003D 2800 R JMP EXIT_RSSI_CHECK
187 003E
188 003E NOT_INC_RSSI_CHANNEL:
189 003E NOT_RST_CIR:
190 003E
191 003E
192 003E ; SZ CHANNEL_IDX_RSSI.0
193 003E ; JMP RSSI_CA
194 003E
195 003E ; SZ RSSI_RB_CNT.0
196 003E ; JMP RSSI_CA
197 003E
198 003E EXIT_RSSI_CHECK:
199 003E
200 003E 3516 CLR PC.2
201 003F
202 003F 0003 RET
203 0040
204 0040 REFRESH_RSSI_ACC_A:
205 0040
206 0040 0080 R MOV RSSI_RB_TEMP, A ; A = RSSI_RB_1(NOW) = ( RSSIVAL + RSSI_RB_1(LAST) ) MOD 2
207 0041
208 0041 ; MOV A, 5
209 0041 ; XOR A, RF_CHANNEL_RSSI
210 0041 ; SZ ACC
211 0041 ; JMP NOT_STOP_D
212 0041 ;
213 0041 ; NOP
214 0041 ;
215 0041 ; NOT_STOP_D:
216 0041 0700 R MOV A, RF_CHANNEL_RSSI
217 0042 0A02 SUB A, 2
218 0043 ;MOV A, CHANNEL_IDX_RSSI
219 0043 1985 RR ACC
220 0044 0E7F AND A, 07FH
221 0045
222 0045 0B50 ADD A, RF_RSSI_STATUS
223 0046 0081 MOV MP0, A
224 0047 ;MOV A, ID0
225 0047
226 0047 0700 R MOV A, RF_CHANNEL_RSSI
227 0048 0A02 SUB A, 2
228 0049 0080 R MOV RF_CHANNEL_TEMP, A
229 004A 0700 MOV A, ID0
230 004B 3C00 R SZ RF_CHANNEL_TEMP.0
231 004C ;SZ CHANNEL_IDX_RSSI.0
232 004C 2800 R JMP LOW_BYTE_RSSI_A
233 004D
234 004D 1985 RR ACC
235 004E 1985 RR ACC
236 004F 1985 RR ACC
237 0050 1985 RR ACC
"File: CHANNEL_MANA.ASM Holtek Cross-Assembler Version 2.86 Page 5
238 0051
239 0051 LOW_BYTE_RSSI_A:
240 0051
241 0051 0E0F AND A, 00FH
242 0052 ;RL ACC
243 0052 ;AND A, 00FH
244 0052
245 0052 0300 R ADD A, RSSI_RB_TEMP
246 0053 1985 RR ACC
247 0054 0E7F AND A, 07FH
248 0055
249 0055 PUT_RSSI_ACC_BACK_A:
250 0055
251 0055 0080 R MOV RSSI_ACC_TEMP, A
252 0056 0700 MOV A, ID0
253 0057
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -