📄 main.lis
字号:
01D2 E0E0 ldi R30,0
01D4 9E07 cpc R25,R30
01D6 69F0 breq L47
01D8 10C0 rjmp L39
01DA X3:
01DA .dbline 204
01DA ; {
01DA L43:
01DA .dbline 206
01DA ; case PARAM_SCK_DURATION:
01DA ; clock_speed=msg_buffer[2];
01DA 20900A00 lds R2,_msg_buffer+2
01DE 20920700 sts _clock_speed,R2
01E2 .dbline 211
01E2 ; //if(eeprom_read_byte(&eeprom_sck_period)!=clock_speed) eeprom_write_byte(&eeprom_sck_period,clock_speed);
01E2 ; //if (eeprom_sck_period != clock_speed) {
01E2 ; // eeprom_sck_period = clock_speed;
01E2 ; // }
01E2 ; spi_set_speed(clock_speed);
01E2 022D mov R16,R2
01E4 00D0 rcall _spi_set_speed
01E6 .dbline 212
01E6 ; break;
01E6 09C0 rjmp L40
01E8 L45:
01E8 .dbline 214
01E8 ; case PARAM_RESET_POLARITY:
01E8 ; reset_polarity = msg_buffer[2];
01E8 20900A00 lds R2,_msg_buffer+2
01EC 20920600 sts _reset_polarity,R2
01F0 .dbline 215
01F0 ; break;
01F0 04C0 rjmp L40
01F2 L47:
01F2 .dbline 217
01F2 ; case PARAM_CONTROLLER_INIT:
01F2 ; param_controller_init = msg_buffer[2];
01F2 20900A00 lds R2,_msg_buffer+2
01F6 20920500 sts _param_controller_init,R2
01FA .dbline 218
01FA ; break;
01FA L39:
01FA L40:
01FA .dbline 221
01FA ; }
01FA ;
01FA ; num_bytes = 2;
01FA 82E0 ldi R24,2
01FC 90E0 ldi R25,0
01FE 9B87 std y+11,R25
0200 8A87 std y+10,R24
0202 .dbline 222
0202 ; msg_buffer[0] = CMD_SET_PARAMETER;
0202 80930800 sts _msg_buffer,R24
0206 .dbline 223
0206 ; msg_buffer[1] = STATUS_CMD_OK;
0206 2224 clr R2
0208 20920900 sts _msg_buffer+1,R2
020C .dbline 224
020C ; }
020C ADC6 rjmp L38
020E L37:
020E .dbline 228
020E ; //////////////////////////////////////
020E ; //CMD_GET_PARAMETER
020E ; //////////////////////////////////////
020E ; else if(cmd==CMD_GET_PARAMETER)
020E 8C85 ldd R24,y+12
0210 8330 cpi R24,3
0212 09F0 breq X7
0214 58C0 rjmp L51
0216 X7:
0216 .dbline 229
0216 ; {
0216 .dbline 230
0216 ; switch(msg_buffer[1])
0216 A0900900 lds R10,_msg_buffer+1
021A BB24 clr R11
021C C501 movw R24,R10
021E 8039 cpi R24,144
0220 E0E0 ldi R30,0
0222 9E07 cpc R25,R30
0224 79F1 breq L59
0226 8139 cpi R24,145
0228 E0E0 ldi R30,0
022A 9E07 cpc R25,R30
022C 71F1 breq L60
022E 8239 cpi R24,146
0230 E0E0 ldi R30,0
0232 9E07 cpc R25,R30
0234 69F1 breq L61
0236 82E9 ldi R24,146
0238 8A15 cp R24,R10
023A 9B05 cpc R25,R11
023C 54F0 brlt L66
023E L65:
023E C501 movw R24,R10
0240 8038 cpi R24,128
0242 E0E0 ldi R30,0
0244 9E07 cpc R25,R30
0246 C1F0 breq L57
0248 8138 cpi R24,129
024A E0E0 ldi R30,0
024C 9E07 cpc R25,R30
024E B9F0 breq L58
0250 2DC0 rjmp L53
0252 L66:
0252 C501 movw R24,R10
0254 8839 cpi R24,152
0256 E0E0 ldi R30,0
0258 9E07 cpc R25,R30
025A E9F0 breq L62
025C 8839 cpi R24,152
025E E0E0 ldi R30,0
0260 9E07 cpc R25,R30
0262 24F1 brlt L53
0264 L67:
0264 C501 movw R24,R10
0266 8E39 cpi R24,158
0268 E0E0 ldi R30,0
026A 9E07 cpc R25,R30
026C C1F0 breq L63
026E 8F39 cpi R24,159
0270 E0E0 ldi R30,0
0272 9E07 cpc R25,R30
0274 C1F0 breq L64
0276 1AC0 rjmp L53
0278 X4:
0278 .dbline 231
0278 ; {
0278 L57:
0278 .dbline 233
0278 ; case PARAM_BUILD_NUMBER_LOW:
0278 ; tmp = CONFIG_PARAM_BUILD_NUMBER_LOW;
0278 0024 clr R0
027A 0D86 std y+13,R0
027C .dbline 234
027C ; break;
027C 17C0 rjmp L54
027E L58:
027E .dbline 236
027E ; case PARAM_BUILD_NUMBER_HIGH:
027E ; tmp = CONFIG_PARAM_BUILD_NUMBER_HIGH;
027E 0024 clr R0
0280 0D86 std y+13,R0
0282 .dbline 237
0282 ; break;
0282 14C0 rjmp L54
0284 L59:
0284 .dbline 239
0284 ; case PARAM_HW_VER:
0284 ; tmp = CONFIG_PARAM_HW_VER;
0284 8FE0 ldi R24,15
0286 8D87 std y+13,R24
0288 .dbline 240
0288 ; break;
0288 11C0 rjmp L54
028A L60:
028A .dbline 242
028A ; case PARAM_SW_MAJOR:
028A ; tmp = CONFIG_PARAM_SW_MAJOR;
028A 82E0 ldi R24,2
028C 8D87 std y+13,R24
028E .dbline 243
028E ; break;
028E 0EC0 rjmp L54
0290 L61:
0290 .dbline 245
0290 ; case PARAM_SW_MINOR:
0290 ; tmp = CONFIG_PARAM_SW_MINOR;
0290 8AE0 ldi R24,10
0292 8D87 std y+13,R24
0294 .dbline 246
0294 ; break;
0294 0BC0 rjmp L54
0296 L62:
0296 .dbline 248
0296 ; case PARAM_SCK_DURATION:
0296 ; tmp = clock_speed;
0296 20900700 lds R2,_clock_speed
029A 2D86 std y+13,R2
029C .dbline 249
029C ; break;
029C 07C0 rjmp L54
029E L63:
029E .dbline 251
029E ; case PARAM_RESET_POLARITY:
029E ; tmp = reset_polarity;
029E 20900600 lds R2,_reset_polarity
02A2 2D86 std y+13,R2
02A4 .dbline 252
02A4 ; break;
02A4 03C0 rjmp L54
02A6 L64:
02A6 .dbline 254
02A6 ; case PARAM_CONTROLLER_INIT:
02A6 ; tmp = param_controller_init;
02A6 20900500 lds R2,_param_controller_init
02AA 2D86 std y+13,R2
02AC .dbline 255
02AC ; break;
02AC L53:
02AC L54:
02AC .dbline 258
02AC ; }
02AC ;
02AC ; num_bytes = 3;
02AC 83E0 ldi R24,3
02AE 90E0 ldi R25,0
02B0 9B87 std y+11,R25
02B2 8A87 std y+10,R24
02B4 .dbline 259
02B4 ; msg_buffer[0] = CMD_GET_PARAMETER;
02B4 80930800 sts _msg_buffer,R24
02B8 .dbline 260
02B8 ; msg_buffer[1] = STATUS_CMD_OK;
02B8 2224 clr R2
02BA 20920900 sts _msg_buffer+1,R2
02BE .dbline 261
02BE ; msg_buffer[2] = tmp;
02BE 0D84 ldd R0,y+13
02C0 00920A00 sts _msg_buffer+2,R0
02C4 .dbline 262
02C4 ; }
02C4 51C6 rjmp L52
02C6 L51:
02C6 .dbline 266
02C6 ; //////////////////////////////////////
02C6 ; //CMD_LOAD_ADDRESS
02C6 ; //////////////////////////////////////
02C6 ; else if(cmd==CMD_LOAD_ADDRESS)
02C6 8C85 ldd R24,y+12
02C8 8630 cpi R24,6
02CA 09F0 breq X8
02CC 6CC0 rjmp L70
02CE X8:
02CE .dbline 267
02CE ; {
02CE .dbline 268
02CE ; address = ((unsigned long)msg_buffer[1])<<24;
02CE 88E1 ldi R24,24
02D0 90E0 ldi R25,0
02D2 20900900 lds R2,_msg_buffer+1
02D6 3324 clr R3
02D8 4424 clr R4
02DA 5524 clr R5
02DC 8A93 st -y,R24
02DE 8101 movw R16,R2
02E0 9201 movw R18,R4
02E2 00D0 rcall lsl32
02E4 10930100 sts _address+1,R17
02E8 00930000 sts _address,R16
02EC 30930300 sts _address+2+1,R19
02F0 20930200 sts _address+2,R18
02F4 .dbline 269
02F4 ; address |= ((unsigned long)msg_buffer[2])<<16;
02F4 20900A00 lds R2,_msg_buffer+2
02F8 3324 clr R3
02FA 4424 clr R4
02FC 5524 clr R5
02FE 2101 movw R4,R2
0300 2224 clr R2
0302 3324 clr R3
0304 3801 movw R6,R16
0306 4901 movw R8,R18
0308 6228 or R6,R2
030A 7328 or R7,R3
030C 8428 or R8,R4
030E 9528 or R9,R5
0310 70920100 sts _address+1,R7
0314 60920000 sts _address,R6
0318 90920300 sts _address+2+1,R9
031C 80920200 sts _address+2,R8
0320 .dbline 270
0320 ; address |= ((unsigned long)msg_buffer[3])<<8;
0320 88E0 ldi R24,8
0322 90E0 ldi R25,0
0324 20900B00 lds R2,_msg_buffer+3
0328 3324 clr R3
032A 4424 clr R4
032C 5524 clr R5
032E 8A93 st -y,R24
0330 8101 movw R16,R2
0332 9201 movw R18,R4
0334 00D0 rcall lsl32
0336 40900200 lds R4,_address+2
033A 50900300 lds R5,_address+2+1
033E 20900000 lds R2,_address
0342 30900100 lds R3,_address+1
0346 202A or R2,R16
0348 312A or R3,R17
034A 422A or R4,R18
034C 532A or R5,R19
034E 30920100 sts _address+1,R3
0352 20920000 sts _address,R2
0356 50920300 sts _address+2+1,R5
035A 40920200 sts _address+2,R4
035E .dbline 271
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -