📄 rudongbeng.lss
字号:
4b4: 80 93 97 00 sts 0x0097, r24
4b8: 80 91 97 00 lds r24, 0x0097
4bc: 80 93 8d 00 sts 0x008D, r24
//按键LARGE ADD松开了
4c0: 80 91 98 00 lds r24, 0x0098
4c4: 80 93 8e 00 sts 0x008E, r24
if(keyLargeAddStatus==KEY_OPEN)
{
4c8: 61 e0 ldi r22, 0x01 ; 1
4ca: 8b e8 ldi r24, 0x8B ; 139
4cc: 90 e0 ldi r25, 0x00 ; 0
4ce: 0e 94 49 00 call 0x92 ; 0x92 <writeEEPROM>
//粗调运行时间,增量为100x100ms
4d2: 88 ec ldi r24, 0xC8 ; 200
4d4: 80 93 8a 00 sts 0x008A, r24
if(timeSetMode==TIME_SET_WORK)
4d8: 88 e5 ldi r24, 0x58 ; 88
4da: 92 e0 ldi r25, 0x02 ; 2
4dc: 90 93 89 00 sts 0x0089, r25
4e0: 80 93 88 00 sts 0x0088, r24
{
4e4: 10 92 6a 00 sts 0x006A, r1
if(outputWorkTimeSetting<65430)outputWorkTimeSetting+=100;
unionData.intData=outputWorkTimeSetting;
dataSaveBuffer[WORK_TIME_HIGH]=unionData.charData[0];
dataSaveBuffer[WORK_TIME_LOW]=unionData.charData[1];
4e8: 80 91 6c 00 lds r24, 0x006C
4ec: 82 30 cpi r24, 0x02 ; 2
4ee: 09 f0 breq .+2 ; 0x4f2 <__stack+0x93>
4f0: 57 c0 rjmp .+174 ; 0x5a0 <__stack+0x141>
}
else //if(timeSetMode==TIME_SET_STOP)
{
4f2: 80 91 86 00 lds r24, 0x0086
4f6: 88 23 and r24, r24
4f8: 11 f5 brne .+68 ; 0x53e <__stack+0xdf>
if(outputStopTimeSetting<65430)outputStopTimeSetting+=100;
unionData.intData=outputStopTimeSetting;
4fa: 80 91 7c 00 lds r24, 0x007C
4fe: 90 91 7d 00 lds r25, 0x007D
502: 86 59 subi r24, 0x96 ; 150
504: 9f 4f sbci r25, 0xFF ; 255
506: 50 f4 brcc .+20 ; 0x51c <__stack+0xbd>
508: 80 91 7c 00 lds r24, 0x007C
50c: 90 91 7d 00 lds r25, 0x007D
510: 8c 59 subi r24, 0x9C ; 156
512: 9f 4f sbci r25, 0xFF ; 255
514: 90 93 7d 00 sts 0x007D, r25
518: 80 93 7c 00 sts 0x007C, r24
dataSaveBuffer[STOP_TIME_HIGH]=unionData.charData[0];
51c: 80 91 7c 00 lds r24, 0x007C
520: 90 91 7d 00 lds r25, 0x007D
524: 90 93 98 00 sts 0x0098, r25
528: 80 93 97 00 sts 0x0097, r24
dataSaveBuffer[STOP_TIME_LOW]=unionData.charData[1];
52c: 80 91 97 00 lds r24, 0x0097
530: 80 93 8b 00 sts 0x008B, r24
}
534: 80 91 98 00 lds r24, 0x0098
538: 80 93 8c 00 sts 0x008C, r24
53c: 21 c0 rjmp .+66 ; 0x580 <__stack+0x121>
writeEEPROM(dataSaveBuffer,1);
timeSwitchTimeCounter=200;
unitTimeCounter=600;
keyLargeAddStatus=KEY_WAITING;
53e: 80 91 80 00 lds r24, 0x0080
542: 90 91 81 00 lds r25, 0x0081
546: 86 59 subi r24, 0x96 ; 150
548: 9f 4f sbci r25, 0xFF ; 255
54a: 50 f4 brcc .+20 ; 0x560 <__stack+0x101>
54c: 80 91 80 00 lds r24, 0x0080
550: 90 91 81 00 lds r25, 0x0081
554: 8c 59 subi r24, 0x9C ; 156
556: 9f 4f sbci r25, 0xFF ; 255
558: 90 93 81 00 sts 0x0081, r25
55c: 80 93 80 00 sts 0x0080, r24
}
560: 80 91 80 00 lds r24, 0x0080
564: 90 91 81 00 lds r25, 0x0081
568: 90 93 98 00 sts 0x0098, r25
56c: 80 93 97 00 sts 0x0097, r24
570: 80 91 97 00 lds r24, 0x0097
574: 80 93 8d 00 sts 0x008D, r24
//按键LARGE SUB松开了
578: 80 91 98 00 lds r24, 0x0098
57c: 80 93 8e 00 sts 0x008E, r24
if(keyLargeSubStatus==KEY_OPEN)
{
580: 61 e0 ldi r22, 0x01 ; 1
582: 8b e8 ldi r24, 0x8B ; 139
584: 90 e0 ldi r25, 0x00 ; 0
586: 0e 94 49 00 call 0x92 ; 0x92 <writeEEPROM>
//粗调运行时间,减量为100x100ms
58a: 88 ec ldi r24, 0xC8 ; 200
58c: 80 93 8a 00 sts 0x008A, r24
if(timeSetMode==TIME_SET_WORK)
590: 88 e5 ldi r24, 0x58 ; 88
592: 92 e0 ldi r25, 0x02 ; 2
594: 90 93 89 00 sts 0x0089, r25
598: 80 93 88 00 sts 0x0088, r24
{
59c: 10 92 6c 00 sts 0x006C, r1
if(outputWorkTimeSetting>100)outputWorkTimeSetting-=100;
unionData.intData=outputWorkTimeSetting;
dataSaveBuffer[WORK_TIME_HIGH]=unionData.charData[0];
dataSaveBuffer[WORK_TIME_LOW]=unionData.charData[1];
5a0: 80 91 6e 00 lds r24, 0x006E
5a4: 82 30 cpi r24, 0x02 ; 2
5a6: 09 f0 breq .+2 ; 0x5aa <__stack+0x14b>
5a8: 57 c0 rjmp .+174 ; 0x658 <__stack+0x1f9>
}
else //if(timeSetMode==TIME_SET_STOP)
{
5aa: 80 91 86 00 lds r24, 0x0086
5ae: 88 23 and r24, r24
5b0: 11 f5 brne .+68 ; 0x5f6 <__stack+0x197>
if(outputStopTimeSetting>100)outputStopTimeSetting-=100;
unionData.intData=outputStopTimeSetting;
5b2: 80 91 7c 00 lds r24, 0x007C
5b6: 90 91 7d 00 lds r25, 0x007D
5ba: 85 36 cpi r24, 0x65 ; 101
5bc: 91 05 cpc r25, r1
5be: 50 f0 brcs .+20 ; 0x5d4 <__stack+0x175>
5c0: 80 91 7c 00 lds r24, 0x007C
5c4: 90 91 7d 00 lds r25, 0x007D
5c8: 84 56 subi r24, 0x64 ; 100
5ca: 90 40 sbci r25, 0x00 ; 0
5cc: 90 93 7d 00 sts 0x007D, r25
5d0: 80 93 7c 00 sts 0x007C, r24
dataSaveBuffer[STOP_TIME_HIGH]=unionData.charData[0];
5d4: 80 91 7c 00 lds r24, 0x007C
5d8: 90 91 7d 00 lds r25, 0x007D
5dc: 90 93 98 00 sts 0x0098, r25
5e0: 80 93 97 00 sts 0x0097, r24
dataSaveBuffer[STOP_TIME_LOW]=unionData.charData[1];
5e4: 80 91 97 00 lds r24, 0x0097
5e8: 80 93 8b 00 sts 0x008B, r24
}
5ec: 80 91 98 00 lds r24, 0x0098
5f0: 80 93 8c 00 sts 0x008C, r24
5f4: 21 c0 rjmp .+66 ; 0x638 <__stack+0x1d9>
writeEEPROM(dataSaveBuffer,1);
timeSwitchTimeCounter=200;
unitTimeCounter=600;
keyLargeSubStatus=KEY_WAITING;
5f6: 80 91 80 00 lds r24, 0x0080
5fa: 90 91 81 00 lds r25, 0x0081
5fe: 85 36 cpi r24, 0x65 ; 101
600: 91 05 cpc r25, r1
602: 50 f0 brcs .+20 ; 0x618 <__stack+0x1b9>
604: 80 91 80 00 lds r24, 0x0080
608: 90 91 81 00 lds r25, 0x0081
60c: 84 56 subi r24, 0x64 ; 100
60e: 90 40 sbci r25, 0x00 ; 0
610: 90 93 81 00 sts 0x0081, r25
614: 80 93 80 00 sts 0x0080, r24
}
618: 80 91 80 00 lds r24, 0x0080
61c: 90 91 81 00 lds r25, 0x0081
620: 90 93 98 00 sts 0x0098, r25
624: 80 93 97 00 sts 0x0097, r24
628: 80 91 97 00 lds r24, 0x0097
62c: 80 93 8d 00 sts 0x008D, r24
//按键HandControl松开了
630: 80 91 98 00 lds r24, 0x0098
634: 80 93 8e 00 sts 0x008E, r24
if(keyHandControlStatus==KEY_OPEN)
{
638: 61 e0 ldi r22, 0x01 ; 1
63a: 8b e8 ldi r24, 0x8B ; 139
63c: 90 e0 ldi r25, 0x00 ; 0
63e: 0e 94 49 00 call 0x92 ; 0x92 <writeEEPROM>
outPutEnable=1;
642: 88 ec ldi r24, 0xC8 ; 200
644: 80 93 8a 00 sts 0x008A, r24
outputWorkTimeCounter=0;
648: 88 e5 ldi r24, 0x58 ; 88
64a: 92 e0 ldi r25, 0x02 ; 2
64c: 90 93 89 00 sts 0x0089, r25
650: 80 93 88 00 sts 0x0088, r24
outputStopTimeCounter=0;
654: 10 92 6e 00 sts 0x006E, r1
keyHandControlStatus=KEY_WAITING;
timeSwitchTimeCounter=200;
unitTimeCounter=600;
}
658: 80 91 70 00 lds r24, 0x0070
65c: 82 30 cpi r24, 0x02 ; 2
65e: b1 f4 brne .+44 ; 0x68c <__stack+0x22d>
//按键HandAuto松开了
660: 81 e0 ldi r24, 0x01 ; 1
662: 80 93 82 00 sts 0x0082, r24
if(keyHandAutoStatus==KEY_OPEN)
666: 10 92 7b 00 sts 0x007B, r1
66a: 10 92 7a 00 sts 0x007A, r1
{
66e: 10 92 7f 00 sts 0x007F, r1
672: 10 92 7e 00 sts 0x007E, r1
//假如是自动状态,切换到手动状态
676: 10 92 70 00 sts 0x0070, r1
if(outPutMode==OUTPUT_AUTO)
67a: 88 ec ldi r24, 0xC8 ; 200
67c: 80 93 8a 00 sts 0x008A, r24
{
680: 88 e5 ldi r24, 0x58 ; 88
682: 92 e0 ldi r25, 0x02 ; 2
684: 90 93 89 00 sts 0x0089, r25
688: 80 93 88 00 sts 0x0088, r24
outPutMode=OUTPUT_HAND;
outPutEnable=1;
//outputWorkTimeCounter=0;
//outputStopTimeCounter=0;
68c: 80 91 72 00 lds r24, 0x0072
690: 82 30 cpi r24, 0x02 ; 2
692: a1 f4 brne .+40 ; 0x6bc <__stack+0x25d>
}
//假如是手动状态,切换到自动状态
else //if((outPutMode==OUTPUT_HAND))
694: 80 91 83 00 lds r24, 0x0083
698: 81 30 cpi r24, 0x01 ; 1
69a: 19 f4 brne .+6 ; 0x6a2 <__stack+0x243>
{
outPutMode=OUTPUT_AUTO;
69c: 10 92 83 00 sts 0x0083, r1
6a0: 03 c0 rjmp .+6 ; 0x6a8 <__stack+0x249>
outPutEnable=1;
//outputWorkTimeCounter=0;
//outputStopTimeCounter=0;
}
timeSwitchTimeCounter=0;
unitTimeCounter=0;
keyHandAutoStatus=KEY_WAITING;
}
6a2: 81 e0 ldi r24, 0x01 ; 1
6a4: 80 93 83 00 sts 0x0083, r24
6a8: 80 93 82 00 sts 0x0082, r24
//按键TimeSwitch松开了
if(keyTimeSwitchStatus==KEY_OPEN)
{
//假如是运作时间设置状态,切换到间隔时间设置状态
6ac: 10 92 8a 00 sts 0x008A, r1
if(timeSetMode==TIME_SET_WORK)
6b0: 10 92 89 00 sts 0x0089, r1
6b4: 10 92 88 00 sts 0x0088, r1
{
6b8: 10 92 72 00 sts 0x0072, r1
timeSetMode=TIME_SET_STOP;
//outputWorkTimeCounter=0;
//outputStopTimeCounter=0;
}
6bc: 80 91 74 00 lds r24, 0x0074
6c0: 82 30 cpi r24, 0x02 ; 2
6c2: a9 f4 brne .+42 ; 0x6ee <__stack+0x28f>
//假如是手动状态,切换到自动状态
else //if((timeSetMode==TIME_SET_STOP))
{
6c4: 80 91 86 00 lds r24, 0x0086
6c8: 88 23 and r24, r24
6ca: 21 f4 brne .+8 ; 0x6d4 <__stack+0x275>
timeSetMode=TIME_SET_WORK;
//outputWorkTimeCounter=0;
6cc: 81 e0 ldi r24, 0x01 ; 1
6ce: 80 93 86 00 sts 0x0086, r24
6d2: 02 c0 rjmp .+4 ; 0x6d8 <__stack+0x279>
// outputStopTimeCounter=0;
}
timeSwitchTimeCounter=200;
unitTimeCounter=600;
keyTimeSwitchStatus=KEY_WAITING;
}
6d4: 10 92 86 00 sts 0x0086, r1
//按键RESET松开了
//是短按的动作
if(keyResetStatus==KEY_TIME_SHORT)
{
6d8: 88 ec ldi r24, 0xC8 ; 200
6da: 80 93 8a 00 sts 0x008A, r24
timeSetMode=TIME_SET_STOP;
6de: 88 e5 ldi r24, 0x58 ; 88
6e0: 92 e0 ldi r25, 0x02 ; 2
6e2: 90 93 89 00 sts 0x0089, r25
6e6: 80 93 88 00 sts 0x0088, r24
outPutMode=OUTPUT_HAND;
6ea: 10 92 74 00 sts 0x0074, r1
//outPutEnable=0;
outputWorkTimeCounter=0;
outputStopTimeCounter=0;
outputWorkTimeSetting=90;
outputStopTimeSetting=30;
6ee: 80 91 76 00 lds r24, 0x0076
6f2: 83 30 cpi r24, 0x03 ; 3
6f4: 09 f0 breq .+2 ; 0x6f8 <__stack+0x299>
6f6: 41 c0 rjmp .+130 ; 0x77a <__stack+0x31b>
unionData.intData=outputWorkTimeSetting;
dataSaveBuffer[WORK_TIME_HIGH]=unionData.charData[0];
6f8: 81 e0 ldi r24, 0x01 ; 1
6fa: 80 93 86 00 sts 0x0086, r24
dataSaveBuffer[WORK_TIME_LOW]=unionData.charData[1];
6fe: 10 92 83 00 sts 0x0083, r1
unionData.intData=outputStopTimeSetting;
dataSaveBuffer[STOP_TIME_HIGH]=unionData.charData[0];
702: 10 92 7b 00 sts 0x007B, r1
706: 10 92 7a 00 sts 0x007A, r1
dataSaveBuffer[STOP_TIME_LOW]=unionData.charData[1];
70a: 10 92 7f 00 sts 0x007F, r1
70e: 10 92 7e 00 sts 0x007E, r1
writeEEPROM(dataSaveBuffer,1);
712: 8a e5 ldi r24, 0x5A ; 90
714: 90 e0 ldi r25, 0x00 ; 0
716: 90 93 7d 00 sts 0x007D, r25
71a: 80 93 7c 00 sts 0x007C, r24
keyResetStatus=KEY_WAITING;
71e: 8e e1 ldi r24, 0x1E ; 30
720: 90 e0 ldi r25, 0x00 ; 0
722: 90 93 81 00 sts 0x0081, r25
726: 80 93 80 00 sts 0x0080, r24
}
72a: 80 91 7c 00 lds r24, 0x007C
72e: 90 91 7d 00 lds r25, 0x007D
732: 90 93 98 00 sts 0x0098, r25
736: 80 93 97 00 sts 0x0097, r24
//是长按的动作
73a: 80 91 97 00 lds r24, 0x0097
73e: 80 93 8b 00 sts 0x008B, r24
else if(keyResetStatus==KEY_TIME_LONG)
742: 80 91 98 00 lds r24, 0x0098
746: 80 93 8c 00 sts 0x008C, r24
{
74a: 80 91 80 00 lds r24, 0x0080
74e: 90 91 81 00 lds r25, 0x0081
752: 90 93 98 00 sts 0x0098, r25
756: 80 93 97 00 sts 0x0097, r24
timeSetMode=TIME_SET_STOP;
75a: 80 91 97 00 lds r24, 0x0097
75e: 80 93 8d 00 sts 0x008D, r24
outPutMode=OUTPUT_AUTO;
762: 80 91 98 00 lds r24, 0x0098
766: 80 93 8e 00 sts 0x008E, r24
outPutEnable=1;
76a: 61 e0 ldi r22, 0x01 ; 1
76c: 8b e8 ldi r24, 0x8B ; 139
76e: 90 e0 ldi r25, 0x00 ; 0
770: 0e 94 49 00 call 0x92 ; 0x92 <writeEEPROM>
outputWorkTimeCounter=0;
774: 10 92 76 00 sts 0x0076, r1
778: 08 95 ret
outputStopTimeCounter=0;
outputWorkTimeSetting=65530;
outputStopTimeSetting=10;
77a: 80 91 76 00 lds r24, 0x0076
77e: 84 30 cpi r24, 0x04 ; 4
780: 09 f0 breq .+2 ; 0x784 <__stack+0x325>
782: 42 c0 rjmp .+132 ; 0x808 <__stack+0x3a9>
unionData.intData=outputWorkTimeSetting;
dataSaveBuffer[WORK_TIME_HIGH]=unionData.charData[0];
784: 81 e0 ldi r24, 0x01 ; 1
786: 80 93 86 00 sts 0x0086, r24
dataSaveBuffer[WORK_TIME_LOW]=unionData.charData[1];
78a: 80 93 83 00 sts 0x0083, r24
unionData.intData=outputStopTimeSetting;
78e: 80 93 82 00 sts 0x0082, r24
dataSaveBuffer[STOP_TIME_HIGH]=unionData.charData[0];
792: 10 92 7b 00 sts 0x007B, r1
796: 10 92 7a 00 sts 0x007A, r1
dataSaveBuffer[STOP_TIME_LOW]=unionData.charData[1];
79a: 10 92 7f 00 sts 0x007F, r1
79e: 10 92 7e 00 sts 0x007E, r1
writeEEPROM(dataSaveBuffer,1);
7a2: 8a ef ldi r24, 0xFA ; 250
7a4: 9f ef ldi r25, 0xFF ; 255
7a6: 90 93 7d 00 sts 0x007D, r25
7aa: 80 93 7c 00 sts 0x007C, r24
keyResetStatus=KEY_WAITING;
7ae: 8a e0 ldi r24, 0x0A ; 10
7b0: 90 e0 ldi r25, 0x00 ; 0
7b2: 90 93 81 00 sts 0x0081, r25
7b6: 80 93 80 00 sts 0x0080, r24
//LED3_ON();
7ba: 80 91 7c 00 lds r24, 0x007C
7be: 90 91 7d 00 lds r25, 0x007D
7c2: 90 93 98 00 sts 0x0098, r25
7c6: 80 93 97 00 sts 0x0097, r24
}
7ca: 80 91 97 00 lds r24, 0x0097
7ce: 80 93 8b 00 sts 0x008B, r24
7d2: 80 91 98 00 lds r24, 0x0098
7d6: 80 93 8c 00 sts 0x008C, r24
}
7da: 80 91 80 00 lds r24, 0x0080
7de: 90 91 81 00 lds r25, 0x0081
7e2: 90 93 98 00 sts 0x0098, r25
7e6: 80 93 97 00 sts 0x0097, r24
7ea: 80 91 97 00 lds r24, 0x0097
7ee: 80 93 8d 00 sts 0x008D, r24
/*********************************************************
7f2: 80 91 98 00 lds r24, 0x0098
7f6: 80 93 8e 00 sts 0x008E, r24
//继电器输出控制
7fa: 61 e0 ldi r22, 0x01 ; 1
7fc: 8b e8 ldi r24, 0x8B ; 139
7fe: 90 e0 ldi r25, 0x00 ; 0
800: 0e 94 49 00 call 0x92 ; 0x92 <writeEEPROM>
//假设时间单位是100ms
804: 10 92 76 00 sts 0x0076, r1
808: 08 95 ret
0000080a <outputControl>:
*********************************************************/
void outputControl(void)
{
//在输出状态
if(outPutEnable==1)
{
if(outputStep==OUTPUT_STEP_WORK)
{
outputWorkTimeCounter++;
OUTPUT1_ON();
OUTPUT2_ON();
80a: 40 91 82 00 lds r20, 0x0082
80e: 41 30 cpi r20, 0x01 ; 1
810: 09 f0 breq .+2 ; 0x814 <outputControl+0xa>
812: 45 c0 rjmp .+138 ; 0x89e <outputControl+0x94>
//LED3_ON();
if(outputWorkTimeCounter>outputWorkTimeSetting)
{
outputWorkTimeCounter=0;
814: 80 91 85 00 lds r24, 0x0085
818: 88 23 and r24, r24
81a: e9 f4 brne .+58 ; 0x856 <outputControl+0x4c>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -