📄 mdfan.lst
字号:
1013 000204 ;*****************************************************************
1014 000204 ;Function:Rx_Mode
1015 000204 ;Description:force the device go into Tx mode.
1016 000204 ;input:none
1017 000204 ;output:none
1018 000204 ;*****************************************************************
1019 000204 nRF24L01_Configure:
1020 000204 43D5(1) bclr PIN_SPI_CSN ;Set TX address device,to Writer
1021 000205 movmi spi_data, #WRITE_REG+TX_ADDR
1022 000205 2D30(1) MOV A, #WRITE_REG+TX_ADDR
1023 000206 1F10(1) MOV spi_data,A
1024 000207 C1AB(2) call SPI_RW
1025 000208 movmi spi_data, #TX_ADDR0_DEF
1026 000208 2D40(1) MOV A, #TX_ADDR0_DEF
1027 000209 1F10(1) MOV spi_data,A
1028 00020A C1AB(2) call SPI_RW
1029 00020B movmi spi_data, #TX_ADDR1_DEF
1030 00020B 2D50(1) MOV A, #TX_ADDR1_DEF
1031 00020C 1F10(1) MOV spi_data,A
1032 00020D C1AB(2) call SPI_RW
1033 00020E movmi spi_data, #TX_ADDR2_DEF
1034 00020E 2D60(1) MOV A, #TX_ADDR2_DEF
1035 00020F 1F10(1) MOV spi_data,A
1036 000210 C1AB(2) call SPI_RW
1037 000211 movmi spi_data, #TX_ADDR3_DEF
1038 000211 2D70(1) MOV A, #TX_ADDR3_DEF
1039 000212 1F10(1) MOV spi_data,A
1040 000213 C1AB(2) call SPI_RW
1041 000214 movmi spi_data, #TX_ADDR4_DEF
1042 000214 2D80(1) MOV A, #TX_ADDR4_DEF
1043 000215 1F10(1) MOV spi_data,A
1044 000216 C1AB(2) call SPI_RW
1045 000217 4BD5(1) bset PIN_SPI_CSN
1046 000218
1047 000218 0000(1) nop
1048 000219 0000(1) nop
1049 00021A
1050 00021A 43D5(1) bclr PIN_SPI_CSN ;Use the same address as Writer
1051 00021B movmi spi_data, #WRITE_REG+RX_ADDR_P0
1052 00021B 2D2A(1) MOV A, #WRITE_REG+RX_ADDR_P0
1053 00021C 1F10(1) MOV spi_data,A
1054 00021D C1AB(2) call SPI_RW
1055 00021E movmi spi_data, #TX_ADDR0_DEF
1056 00021E 2D40(1) MOV A, #TX_ADDR0_DEF
1057 00021F 1F10(1) MOV spi_data,A
1058 000220 C1AB(2) call SPI_RW
1059 000221 movmi spi_data, #TX_ADDR1_DEF
1060 000221 2D50(1) MOV A, #TX_ADDR1_DEF
1061 000222 1F10(1) MOV spi_data,A
1062 000223 C1AB(2) call SPI_RW
1063 000224 movmi spi_data, #TX_ADDR2_DEF
1064 000224 2D60(1) MOV A, #TX_ADDR2_DEF
1065 000225 1F10(1) MOV spi_data,A
1066 000226 C1AB(2) call SPI_RW
1067 000227 movmi spi_data, #TX_ADDR3_DEF
1068 000227 2D70(1) MOV A, #TX_ADDR3_DEF
1069 000228 1F10(1) MOV spi_data,A
1070 000229 C1AB(2) call SPI_RW
1071 00022A movmi spi_data, #TX_ADDR4_DEF
1072 00022A 2D80(1) MOV A, #TX_ADDR4_DEF
1073 00022B 1F10(1) MOV spi_data,A
1074 00022C C1AB(2) call SPI_RW
1075 00022D 4BD5(1) bset PIN_SPI_CSN
1076 00022E
1077 00022E 0000(1) nop
1078 00022F 0000(1) nop
1079 000230
1080 000230 43D5(1) bclr PIN_SPI_CSN ;Use the same address on the RX device as the TX device
1081 000231 movmi spi_data, #WRITE_REG+RX_ADDR_P1
1082 000231 2D2B(1) MOV A, #WRITE_REG+RX_ADDR_P1
1083 000232 1F10(1) MOV spi_data,A
1084 000233 C1AB(2) call SPI_RW
1085 000234 movmm spi_data, local_access_code0
1086 000234 1E08(1) MOV A, local_access_code0
1087 000235 1F10(1) MOV spi_data,A
1088 000236 C1AB(2) call SPI_RW
1089 000237 movmm spi_data, local_access_code1
1090 000237 1E09(1) MOV A, local_access_code1
1091 000238 1F10(1) MOV spi_data,A
1092 000239 C1AB(2) call SPI_RW
1093 00023A movmm spi_data, local_access_code2
1094 00023A 1E0A(1) MOV A, local_access_code2
1095 00023B 1F10(1) MOV spi_data,A
1096 00023C C1AB(2) call SPI_RW
1097 00023D movmi spi_data, #RX_ADDR3_DEF
1098 00023D 2D07(1) MOV A, #RX_ADDR3_DEF
1099 00023E 1F10(1) MOV spi_data,A
1100 00023F C1AB(2) call SPI_RW
1101 000240 movmi spi_data, #RX_ADDR4_DEF
1102 000240 2D08(1) MOV A, #RX_ADDR4_DEF
1103 000241 1F10(1) MOV spi_data,A
1104 000242 C1AB(2) call SPI_RW
1105 000243 4BD5(1) bset PIN_SPI_CSN
1106 000244
1107 000244 movmi spi_reg_addr, #WRITE_REG+EN_AA
1108 000244 2D21(1) MOV A, #WRITE_REG+EN_AA
1109 000245 1F12(1) MOV spi_reg_addr,A
1110 000246 movmi spi_value, #0x03 ;Enable Auto.Ack:Pipe0,Pipe1
1111 000246 2D03(1) MOV A, #0x03
1112 000247 1F13(1) MOV spi_value,A
1113 000248 C1C8(2) call SPI_Write_Reg
1114 000249
1115 000249 movmi spi_reg_addr, #WRITE_REG+EN_RXADDR
1116 000249 2D22(1) MOV A, #WRITE_REG+EN_RXADDR
1117 00024A 1F12(1) MOV spi_reg_addr,A
1118 00024B movmi spi_value, #0x03 ;Enable Pipe0,Pipe1
1119 00024B 2D03(1) MOV A, #0x03
1120 00024C 1F13(1) MOV spi_value,A
1121 00024D C1C8(2) call SPI_Write_Reg
1122 00024E
1123 00024E movmi spi_reg_addr, #WRITE_REG+RF_CH
1124 00024E 2D25(1) MOV A, #WRITE_REG+RF_CH
1125 00024F 1F12(1) MOV spi_reg_addr,A
1126 000250 ;movmi spi_value, #TX_CH_DEF ;Select default RF channel
1127 000250 movmm spi_value, channel ;select RF channel
1128 000250 1E0F(1) MOV A, channel
1129 000251 1F13(1) MOV spi_value,A
1130 000252 C1C8(2) call SPI_Write_Reg
1131 000253
1132 000253 movmi spi_reg_addr, #0x20+0x11 ;WRITE_REG+RX_PW_P0
1133 000253 2D31(1) MOV A, #0x20+0x11
1134 000254 1F12(1) MOV spi_reg_addr,A
1135 000255 movmi spi_value, #TX_PLOAD_WIDTH ;RX payload width 4
1136 000255 2D04(1) MOV A, #TX_PLOAD_WIDTH
1137 000256 1F13(1) MOV spi_value,A
1138 000257 C1C8(2) call SPI_Write_Reg
1139 000258
1140 000258 movmi spi_reg_addr, #WRITE_REG+RX_PW_P1
1141 000258 2D32(1) MOV A, #WRITE_REG+RX_PW_P1
1142 000259 1F12(1) MOV spi_reg_addr,A
1143 00025A movmi spi_value, #RX_PLOAD_WIDTH ;RX payload width 1
1144 00025A 2D01(1) MOV A, #RX_PLOAD_WIDTH
1145 00025B 1F13(1) MOV spi_value,A
1146 00025C C1C8(2) call SPI_Write_Reg
1147 00025D
1148 00025D movmi spi_reg_addr, #WRITE_REG+RF_SETUP
1149 00025D 2D26(1) MOV A, #WRITE_REG+RF_SETUP
1150 00025E 1F12(1) MOV spi_reg_addr,A
1151 00025F movmi spi_value, #0x0f ;TX_PWR:0dBm, Datarate:2Mbps, LNA:HCURR
1152 00025F 2D0F(1) MOV A, #0x0f
1153 000260 1F13(1) MOV spi_value,A
1154 000261 C1C8(2) call SPI_Write_Reg
1155 000262 Rx_Mode:
1156 000262 movmi spi_reg_addr, #WRITE_REG+CONFIG
1157 000262 2D20(1) MOV A, #WRITE_REG+CONFIG
1158 000263 1F12(1) MOV spi_reg_addr,A
1159 000264 movmi spi_value, #0x0f ;Set PWR_UP bit, enable CRC(2 bytes) & Prim:RX. RX_DR enabled..
1160 000264 2D0F(1) MOV A, #0x0f
1161 000265 1F13(1) MOV spi_value,A
1162 000266 C1C8(2) call SPI_Write_Reg
1163 000267
1164 000267 4ED5(1) bset PIN_CE_nRF24L01 ;CE=1 to enable Rx
1165 000268 0E00(2) ret
1166 000269
1167 000269 ;*************************************************************
1168 000269 Set_New_RX_Addr:
1169 000269 46D5(1) bclr PIN_CE_nRF24L01
1170 00026A
1171 00026A 43D5(1) bclr PIN_SPI_CSN ;Use the same address on the RX device as the TX device
1172 00026B movmi spi_data, #WRITE_REG+RX_ADDR_P1
1173 00026B 2D2B(1) MOV A, #WRITE_REG+RX_ADDR_P1
1174 00026C 1F10(1) MOV spi_data,A
1175 00026D C1AB(2) call SPI_RW
1176 00026E movmm spi_data, local_access_code0
1177 00026E 1E08(1) MOV A, local_access_code0
1178 00026F 1F10(1) MOV spi_data,A
1179 000270 C1AB(2) call SPI_RW
1180 000271 movmm spi_data, local_access_code1
1181 000271 1E09(1) MOV A, local_access_code1
1182 000272 1F10(1) MOV spi_data,A
1183 000273 C1AB(2) call SPI_RW
1184 000274 movmm spi_data, local_access_code2
1185 000274 1E0A(1) MOV A, local_access_code2
1186 000275 1F10(1) MOV spi_data,A
1187 000276 C1AB(2) call SPI_RW
1188 000277 movmi spi_data, #RX_ADDR3_DEF
1189 000277 2D07(1) MOV A, #RX_ADDR3_DEF
1190 000278 1F10(1) MOV spi_data,A
1191 000279 C1AB(2) call SPI_RW
1192 00027A movmi spi_data, #RX_ADDR4_DEF
1193 00027A 2D08(1) MOV A, #RX_ADDR4_DEF
1194 00027B 1F10(1) MOV spi_data,A
1195 00027C C1AB(2) call SPI_RW
1196 00027D 4BD5(1) bset PIN_SPI_CSN
1197 00027E
1198 00027E 4ED5(1) bset PIN_CE_nRF24L01 ;CE=1 to enable Rx
1199 00027F 0E00(2) ret
1200 000280
1201 000280 Flush_Rx_FIFO:
1202 000280 43D5(1) bclr PIN_SPI_CSN
1203 000281 movmi spi_data, #FLUSH_RX ;flush Rx FIFO
1204 000281 2DE2(1) MOV A, #FLUSH_RX
1205 000282 1F10(1) MOV spi_data,A
1206 000283 C1AB(2) call SPI_RW
1207 000284 4BD5(1) bset PIN_SPI_CSN
1208 000285 0E00(2) ret
1209 000286 ;*****************************************************************
1210 000286 ;Function:Check_CD
1211 000286 ;Description:Check that if carrier is detected,if so,change to the next channel
1212 000286 ;input:none
1213 000286 ;output:none
1214 000286 ;*****************************************************************
1215 000286 Check_CD:
1216 000286 jb0 F_CHECK_CD, Check_CD_Out ;not the time to do CD yet
1217 000286 5906(1+S) bts1 F_CHECK_CD
1218 000287 8299(2) jmp Check_CD_Out
1219 000288 4106(1) bclr F_CHECK_CD
1220 000289 61C9(1) B0BCLR FP01IEN ;disable INT from nRF24L01
1221 00028A movmi spi_reg_addr, #CD
1222 00028A 2D09(1) MOV A, #CD
1223 00028B 1F12(1) MOV spi_reg_addr,A
1224 00028C C1BE(2) call SPI_Read_Reg
1225 00028D jb0 spi_value.0, Check_CD_End
1226 00028D 5813(1+S) bts1 spi_value.0
1227 00028E 8298(2) jmp Check_CD_End
1228 00028F ;call Delay_10ms ;delay for real data to come in
1229 00028F C2F7(2) call Ptr_Table_Inc ;Carrier detected,change to next channel
1230 000290 C2EA(2) call Get_Channel
1231 000291 46D5(1) bclr PIN_CE_nRF24L01 ;disable Rx when changing channel
1232 000292 movmi spi_reg_addr, #WRITE_REG+RF_CH
1233 000292 2D25(1) MOV A, #WRITE_REG+RF_CH
1234 000293 1F12(1) MOV spi_reg_addr,A
1235 000294 movmm spi_value, channel ;select RF channel
1236 000294 1E0F(1) MOV A, channel
1237 000295 1F13(1) MOV spi_value,A
1238 000296 C1C8(2) call SPI_Write_Reg
1239 000297 4ED5(1) bset PIN_CE_nRF24L01 ;enable Rx
1240 000298 Check_CD_End:
1241 000298 69C9(1) B0BSET FP01IEN ;enable INT from nRF24L01
1242 000299 Check_CD_Out:
1243 000299 0E00(2) ret
1244 00029A
1245 00029A
1246 00029A INCLUDE Misc.asm
1247 00029A ;*****************************************************************
1248 00029A ;Function:BeepLong
1249 00029A ;Description:beep for a relatively long while(1000ms) when power-on
1250 00029A ;input:none
1251 00029A ;output:none
1252 00029A ;*****************************************************************
1253 00029A BeepLong:
1254 00029A C47F(2) call Init_TC0
1255 00029B ;call Delay_250ms
1256 00029B ;call Delay_250ms
1257 00029B C30B(2) call Delay_250ms
1258 00029C C30B(2) call Delay_250ms
1259 00029D C31C(2) call Stop_TC0
1260 00029E 0E00(2) ret
1261 00029F ;*****************************************************************
1262 00029F ;Function:BeepShort
1263 00029F ;Description:beep for a relatively short while(100ms) when a valid command received
1264 00029F
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -