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