📄 rudongbeng.lss
字号:
{
keyLargeSubStatus=KEY_PRESS;
if(keyLargeSubCounter<200)keyLargeSubCounter++;
1fa: ce 99 sbic 0x19, 6 ; 25
1fc: 0d c0 rjmp .+26 ; 0x218 <keyScanProgram+0xe4>
}
//LARGE SUB按键松开
else
1fe: 81 e0 ldi r24, 0x01 ; 1
200: 80 93 6e 00 sts 0x006E, r24
{
204: 80 91 6f 00 lds r24, 0x006F
208: 88 3c cpi r24, 0xC8 ; 200
20a: c0 f4 brcc .+48 ; 0x23c <keyScanProgram+0x108>
20c: 80 91 6f 00 lds r24, 0x006F
210: 8f 5f subi r24, 0xFF ; 255
212: 80 93 6f 00 sts 0x006F, r24
216: 12 c0 rjmp .+36 ; 0x23c <keyScanProgram+0x108>
//按键是曾经是按过的
if(keyLargeSubStatus==KEY_PRESS)
{
//按键有效触发
if(keyLargeSubCounter>KEY_PRESS_OK)
{
218: 80 91 6e 00 lds r24, 0x006E
21c: 81 30 cpi r24, 0x01 ; 1
21e: 71 f4 brne .+28 ; 0x23c <keyScanProgram+0x108>
keyLargeSubCounter=0;
keyLargeSubStatus=KEY_OPEN;
}
220: 80 91 6f 00 lds r24, 0x006F
224: 84 30 cpi r24, 0x04 ; 4
226: 30 f0 brcs .+12 ; 0x234 <keyScanProgram+0x100>
//无法有效触发
else
228: 10 92 6f 00 sts 0x006F, r1
{
22c: 82 e0 ldi r24, 0x02 ; 2
22e: 80 93 6e 00 sts 0x006E, r24
232: 04 c0 rjmp .+8 ; 0x23c <keyScanProgram+0x108>
keyLargeSubCounter=0;
keyLargeSubStatus=KEY_WAITING;
}
}
}
234: 10 92 6f 00 sts 0x006F, r1
238: 10 92 6e 00 sts 0x006E, r1
/////////////////////////////////////////
//HAND CONTROL按钮按下
if(KEY_HAND_CONTROL_SET)
{
keyHandControlStatus=KEY_PRESS;
if(keyHandControlCounter<200)keyHandControlCounter++;
}
23c: b0 99 sbic 0x16, 0 ; 22
23e: 0d c0 rjmp .+26 ; 0x25a <keyScanProgram+0x126>
//HAND CONTROL按键松开
else
{
240: 81 e0 ldi r24, 0x01 ; 1
242: 80 93 70 00 sts 0x0070, r24
//按键是曾经是按过的
246: 80 91 71 00 lds r24, 0x0071
24a: 88 3c cpi r24, 0xC8 ; 200
24c: c0 f4 brcc .+48 ; 0x27e <keyScanProgram+0x14a>
24e: 80 91 71 00 lds r24, 0x0071
252: 8f 5f subi r24, 0xFF ; 255
254: 80 93 71 00 sts 0x0071, r24
258: 12 c0 rjmp .+36 ; 0x27e <keyScanProgram+0x14a>
if(keyHandControlStatus==KEY_PRESS)
{
//按键有效触发
if(keyHandControlCounter>KEY_PRESS_OK)
{
keyHandControlCounter=0;
25a: 80 91 70 00 lds r24, 0x0070
25e: 81 30 cpi r24, 0x01 ; 1
260: 71 f4 brne .+28 ; 0x27e <keyScanProgram+0x14a>
keyHandControlStatus=KEY_OPEN;
}
//无法有效触发
262: 80 91 71 00 lds r24, 0x0071
266: 84 30 cpi r24, 0x04 ; 4
268: 30 f0 brcs .+12 ; 0x276 <keyScanProgram+0x142>
else
{
26a: 10 92 71 00 sts 0x0071, r1
keyHandControlCounter=0;
26e: 82 e0 ldi r24, 0x02 ; 2
270: 80 93 70 00 sts 0x0070, r24
274: 04 c0 rjmp .+8 ; 0x27e <keyScanProgram+0x14a>
keyHandControlStatus=KEY_WAITING;
}
}
}
276: 10 92 71 00 sts 0x0071, r1
/////////////////////////////////////////
27a: 10 92 70 00 sts 0x0070, r1
//HAND AUTO SET按钮按下
if(KEY_HAND_AUTO_SET)
{
keyHandAutoStatus=KEY_PRESS;
if(keyHandAutoCounter<200)keyHandAutoCounter++;
}
//HAND CONTROL按键松开
27e: b1 99 sbic 0x16, 1 ; 22
280: 0d c0 rjmp .+26 ; 0x29c <keyScanProgram+0x168>
else
{
//按键是曾经是按过的
282: 81 e0 ldi r24, 0x01 ; 1
284: 80 93 72 00 sts 0x0072, r24
if(keyHandAutoStatus==KEY_PRESS)
288: 80 91 73 00 lds r24, 0x0073
28c: 88 3c cpi r24, 0xC8 ; 200
28e: c0 f4 brcc .+48 ; 0x2c0 <keyScanProgram+0x18c>
290: 80 91 73 00 lds r24, 0x0073
294: 8f 5f subi r24, 0xFF ; 255
296: 80 93 73 00 sts 0x0073, r24
29a: 12 c0 rjmp .+36 ; 0x2c0 <keyScanProgram+0x18c>
{
//按键有效触发
if(keyHandAutoCounter>KEY_PRESS_OK)
{
keyHandAutoCounter=0;
keyHandAutoStatus=KEY_OPEN;
29c: 80 91 72 00 lds r24, 0x0072
2a0: 81 30 cpi r24, 0x01 ; 1
2a2: 71 f4 brne .+28 ; 0x2c0 <keyScanProgram+0x18c>
}
//无法有效触发
else
2a4: 80 91 73 00 lds r24, 0x0073
2a8: 84 30 cpi r24, 0x04 ; 4
2aa: 30 f0 brcs .+12 ; 0x2b8 <keyScanProgram+0x184>
{
keyHandAutoCounter=0;
2ac: 10 92 73 00 sts 0x0073, r1
keyHandAutoStatus=KEY_WAITING;
2b0: 82 e0 ldi r24, 0x02 ; 2
2b2: 80 93 72 00 sts 0x0072, r24
2b6: 04 c0 rjmp .+8 ; 0x2c0 <keyScanProgram+0x18c>
}
}
}
/////////////////////////////////////////
2b8: 10 92 73 00 sts 0x0073, r1
//TIME SWITCH按钮按下
2bc: 10 92 72 00 sts 0x0072, r1
if(KEY_TIME_SWITCH_SET)
{
keyTimeSwitchStatus=KEY_PRESS;
if(keyTimeSwitchCounter<200)keyTimeSwitchCounter++;
}
//TIME SWITCH按键松开
else
{
2c0: b2 99 sbic 0x16, 2 ; 22
2c2: 0d c0 rjmp .+26 ; 0x2de <keyScanProgram+0x1aa>
//按键是曾经是按过的
if(keyTimeSwitchStatus==KEY_PRESS)
2c4: 81 e0 ldi r24, 0x01 ; 1
2c6: 80 93 74 00 sts 0x0074, r24
{
2ca: 80 91 75 00 lds r24, 0x0075
2ce: 88 3c cpi r24, 0xC8 ; 200
2d0: c0 f4 brcc .+48 ; 0x302 <keyScanProgram+0x1ce>
2d2: 80 91 75 00 lds r24, 0x0075
2d6: 8f 5f subi r24, 0xFF ; 255
2d8: 80 93 75 00 sts 0x0075, r24
2dc: 12 c0 rjmp .+36 ; 0x302 <keyScanProgram+0x1ce>
//按键有效触发
if(keyTimeSwitchCounter>KEY_PRESS_OK)
{
keyTimeSwitchCounter=0;
keyTimeSwitchStatus=KEY_OPEN;
}
2de: 80 91 74 00 lds r24, 0x0074
2e2: 81 30 cpi r24, 0x01 ; 1
2e4: 71 f4 brne .+28 ; 0x302 <keyScanProgram+0x1ce>
//无法有效触发
else
{
2e6: 80 91 75 00 lds r24, 0x0075
2ea: 84 30 cpi r24, 0x04 ; 4
2ec: 30 f0 brcs .+12 ; 0x2fa <keyScanProgram+0x1c6>
keyTimeSwitchCounter=0;
keyTimeSwitchStatus=KEY_WAITING;
2ee: 10 92 75 00 sts 0x0075, r1
}
2f2: 82 e0 ldi r24, 0x02 ; 2
2f4: 80 93 74 00 sts 0x0074, r24
2f8: 04 c0 rjmp .+8 ; 0x302 <keyScanProgram+0x1ce>
}
}
/////////////////////////////////////////
2fa: 10 92 75 00 sts 0x0075, r1
//RESET按钮按下
2fe: 10 92 74 00 sts 0x0074, r1
if(KEY_DORESET_SET)
{
keyResetStatus=KEY_PRESS;
if(keyResetCounter<65500)keyResetCounter++;
}
//TIME SWITCH按键松开
else
{
302: b3 99 sbic 0x16, 3 ; 22
304: 14 c0 rjmp .+40 ; 0x32e <keyScanProgram+0x1fa>
//按键是曾经是按过的
if(keyResetStatus==KEY_PRESS)
{
306: 81 e0 ldi r24, 0x01 ; 1
308: 80 93 76 00 sts 0x0076, r24
//reset按键长按触发
30c: 80 91 77 00 lds r24, 0x0077
310: 90 91 78 00 lds r25, 0x0078
314: 8c 5d subi r24, 0xDC ; 220
316: 9f 4f sbci r25, 0xFF ; 255
318: a0 f5 brcc .+104 ; 0x382 <keyScanProgram+0x24e>
31a: 80 91 77 00 lds r24, 0x0077
31e: 90 91 78 00 lds r25, 0x0078
322: 01 96 adiw r24, 0x01 ; 1
324: 90 93 78 00 sts 0x0078, r25
328: 80 93 77 00 sts 0x0077, r24
32c: 08 95 ret
if(keyResetCounter>KEY_RESET_LONG)
{
keyResetCounter=0;
keyResetStatus=KEY_TIME_LONG;
LED3_ON();
}
32e: 80 91 76 00 lds r24, 0x0076
332: 81 30 cpi r24, 0x01 ; 1
334: 31 f5 brne .+76 ; 0x382 <keyScanProgram+0x24e>
//reset按键短按触发
else if(keyResetCounter>KEY_RESET_SHORT)
//else if(keyResetCounter>KEY_PRESS_OK)
336: 80 91 77 00 lds r24, 0x0077
33a: 90 91 78 00 lds r25, 0x0078
33e: 81 52 subi r24, 0x21 ; 33
340: 93 40 sbci r25, 0x03 ; 3
342: 48 f0 brcs .+18 ; 0x356 <keyScanProgram+0x222>
{
keyResetCounter=0;
344: 10 92 78 00 sts 0x0078, r1
348: 10 92 77 00 sts 0x0077, r1
keyResetStatus=KEY_TIME_SHORT;
34c: 84 e0 ldi r24, 0x04 ; 4
34e: 80 93 76 00 sts 0x0076, r24
LED3_OFF();
352: 97 9a sbi 0x12, 7 ; 18
354: 08 95 ret
}
//无法有效触发
356: 80 91 77 00 lds r24, 0x0077
35a: 90 91 78 00 lds r25, 0x0078
35e: 89 3c cpi r24, 0xC9 ; 201
360: 91 05 cpc r25, r1
362: 48 f0 brcs .+18 ; 0x376 <keyScanProgram+0x242>
else
{
keyResetCounter=0;
364: 10 92 78 00 sts 0x0078, r1
368: 10 92 77 00 sts 0x0077, r1
keyResetStatus=KEY_WAITING;
36c: 83 e0 ldi r24, 0x03 ; 3
36e: 80 93 76 00 sts 0x0076, r24
}
372: 97 98 cbi 0x12, 7 ; 18
374: 08 95 ret
}
}
}
376: 10 92 78 00 sts 0x0078, r1
37a: 10 92 77 00 sts 0x0077, r1
37e: 10 92 76 00 sts 0x0076, r1
382: 08 95 ret
00000384 <keyProcess>:
/*********************************************************
//按键处理程序
//假定时间单位是100ms
//假定运行时间以及间隔时间单位都是100ms
*********************************************************/
void keyProcess(void)
{
//按键TINY ADD松开了
if(keyTinyAddStatus==KEY_OPEN)
{
//微调运行时间,增量为100ms
if(timeSetMode==TIME_SET_WORK)
{
if(outputWorkTimeSetting<65530)outputWorkTimeSetting+=1;
unionData.intData=outputWorkTimeSetting;
384: 80 91 68 00 lds r24, 0x0068
388: 82 30 cpi r24, 0x02 ; 2
38a: 09 f0 breq .+2 ; 0x38e <keyProcess+0xa>
38c: 55 c0 rjmp .+170 ; 0x438 <keyProcess+0xb4>
dataSaveBuffer[WORK_TIME_HIGH]=unionData.charData[0];
dataSaveBuffer[WORK_TIME_LOW]=unionData.charData[1];
}
else //if(timeSetMode==TIME_SET_STOP)
38e: 80 91 86 00 lds r24, 0x0086
392: 88 23 and r24, r24
394: 09 f5 brne .+66 ; 0x3d8 <keyProcess+0x54>
{
if(outputStopTimeSetting<65530)outputStopTimeSetting+=1;
396: 80 91 7c 00 lds r24, 0x007C
39a: 90 91 7d 00 lds r25, 0x007D
39e: 8a 5f subi r24, 0xFA ; 250
3a0: 9f 4f sbci r25, 0xFF ; 255
3a2: 48 f4 brcc .+18 ; 0x3b6 <keyProcess+0x32>
3a4: 80 91 7c 00 lds r24, 0x007C
3a8: 90 91 7d 00 lds r25, 0x007D
3ac: 01 96 adiw r24, 0x01 ; 1
3ae: 90 93 7d 00 sts 0x007D, r25
3b2: 80 93 7c 00 sts 0x007C, r24
unionData.intData=outputStopTimeSetting;
3b6: 80 91 7c 00 lds r24, 0x007C
3ba: 90 91 7d 00 lds r25, 0x007D
3be: 90 93 98 00 sts 0x0098, r25
3c2: 80 93 97 00 sts 0x0097, r24
dataSaveBuffer[STOP_TIME_HIGH]=unionData.charData[0];
3c6: 80 91 97 00 lds r24, 0x0097
3ca: 80 93 8b 00 sts 0x008B, r24
dataSaveBuffer[STOP_TIME_LOW]=unionData.charData[1];
3ce: 80 91 98 00 lds r24, 0x0098
3d2: 80 93 8c 00 sts 0x008C, r24
3d6: 20 c0 rjmp .+64 ; 0x418 <keyProcess+0x94>
}
writeEEPROM(dataSaveBuffer,1);
timeSwitchTimeCounter=200;
unitTimeCounter=600;
keyTinyAddStatus=KEY_WAITING;
3d8: 80 91 80 00 lds r24, 0x0080
3dc: 90 91 81 00 lds r25, 0x0081
3e0: 8a 5f subi r24, 0xFA ; 250
3e2: 9f 4f sbci r25, 0xFF ; 255
3e4: 48 f4 brcc .+18 ; 0x3f8 <keyProcess+0x74>
3e6: 80 91 80 00 lds r24, 0x0080
3ea: 90 91 81 00 lds r25, 0x0081
3ee: 01 96 adiw r24, 0x01 ; 1
3f0: 90 93 81 00 sts 0x0081, r25
3f4: 80 93 80 00 sts 0x0080, r24
}
3f8: 80 91 80 00 lds r24, 0x0080
3fc: 90 91 81 00 lds r25, 0x0081
400: 90 93 98 00 sts 0x0098, r25
404: 80 93 97 00 sts 0x0097, r24
408: 80 91 97 00 lds r24, 0x0097
40c: 80 93 8d 00 sts 0x008D, r24
//按键TINY SUB松开了
410: 80 91 98 00 lds r24, 0x0098
414: 80 93 8e 00 sts 0x008E, r24
if(keyTinySubStatus==KEY_OPEN)
{
418: 61 e0 ldi r22, 0x01 ; 1
41a: 8b e8 ldi r24, 0x8B ; 139
41c: 90 e0 ldi r25, 0x00 ; 0
41e: 0e 94 49 00 call 0x92 ; 0x92 <writeEEPROM>
//微调运行时间,减量为100ms
422: 88 ec ldi r24, 0xC8 ; 200
424: 80 93 8a 00 sts 0x008A, r24
if(timeSetMode==TIME_SET_WORK)
428: 88 e5 ldi r24, 0x58 ; 88
42a: 92 e0 ldi r25, 0x02 ; 2
42c: 90 93 89 00 sts 0x0089, r25
430: 80 93 88 00 sts 0x0088, r24
{
434: 10 92 68 00 sts 0x0068, r1
if(outputWorkTimeSetting>0)outputWorkTimeSetting-=1;
unionData.intData=outputWorkTimeSetting;
dataSaveBuffer[WORK_TIME_HIGH]=unionData.charData[0];
dataSaveBuffer[WORK_TIME_LOW]=unionData.charData[1];
438: 80 91 6a 00 lds r24, 0x006A
43c: 82 30 cpi r24, 0x02 ; 2
43e: 09 f0 breq .+2 ; 0x442 <keyProcess+0xbe>
440: 53 c0 rjmp .+166 ; 0x4e8 <__stack+0x89>
}
else //if(timeSetMode==TIME_SET_STOP)
{
442: 80 91 86 00 lds r24, 0x0086
446: 88 23 and r24, r24
448: 01 f5 brne .+64 ; 0x48a <__stack+0x2b>
if(outputStopTimeSetting>0)outputStopTimeSetting-=1;
unionData.intData=outputStopTimeSetting;
44a: 80 91 7c 00 lds r24, 0x007C
44e: 90 91 7d 00 lds r25, 0x007D
452: 89 2b or r24, r25
454: 49 f0 breq .+18 ; 0x468 <__stack+0x9>
456: 80 91 7c 00 lds r24, 0x007C
45a: 90 91 7d 00 lds r25, 0x007D
45e: 01 97 sbiw r24, 0x01 ; 1
460: 90 93 7d 00 sts 0x007D, r25
464: 80 93 7c 00 sts 0x007C, r24
dataSaveBuffer[STOP_TIME_HIGH]=unionData.charData[0];
468: 80 91 7c 00 lds r24, 0x007C
46c: 90 91 7d 00 lds r25, 0x007D
470: 90 93 98 00 sts 0x0098, r25
474: 80 93 97 00 sts 0x0097, r24
dataSaveBuffer[STOP_TIME_LOW]=unionData.charData[1];
478: 80 91 97 00 lds r24, 0x0097
47c: 80 93 8b 00 sts 0x008B, r24
}
480: 80 91 98 00 lds r24, 0x0098
484: 80 93 8c 00 sts 0x008C, r24
488: 1f c0 rjmp .+62 ; 0x4c8 <__stack+0x69>
writeEEPROM(dataSaveBuffer,1);
timeSwitchTimeCounter=200;
unitTimeCounter=600;
keyTinySubStatus=KEY_WAITING;
48a: 80 91 80 00 lds r24, 0x0080
48e: 90 91 81 00 lds r25, 0x0081
492: 89 2b or r24, r25
494: 49 f0 breq .+18 ; 0x4a8 <__stack+0x49>
496: 80 91 80 00 lds r24, 0x0080
49a: 90 91 81 00 lds r25, 0x0081
49e: 01 97 sbiw r24, 0x01 ; 1
4a0: 90 93 81 00 sts 0x0081, r25
4a4: 80 93 80 00 sts 0x0080, r24
}
4a8: 80 91 80 00 lds r24, 0x0080
4ac: 90 91 81 00 lds r25, 0x0081
4b0: 90 93 98 00 sts 0x0098, r25
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -