📄 main.lss
字号:
10ee: 99 27 eor r25, r25
10f0: a5 cf rjmp .-182 ; 0x103c <__vector_10+0x6c>
}break;
case 8:
{
kk = val;
10f2: 20 93 84 00 sts 0x0084, r18
10f6: 70 c0 rjmp .+224 ; 0x11d8 <__vector_10+0x208>
}break;
default: break;
}
}break;
case 2:
{
switch(k)
10f8: 80 91 83 00 lds r24, 0x0083
10fc: 83 30 cpi r24, 0x03 ; 3
10fe: 59 f1 breq .+86 ; 0x1156 <__vector_10+0x186>
1100: 84 30 cpi r24, 0x04 ; 4
1102: 30 f4 brcc .+12 ; 0x1110 <__vector_10+0x140>
1104: 88 23 and r24, r24
1106: 69 f0 breq .+26 ; 0x1122 <__vector_10+0x152>
1108: 82 30 cpi r24, 0x02 ; 2
110a: 09 f0 breq .+2 ; 0x110e <__vector_10+0x13e>
110c: 65 c0 rjmp .+202 ; 0x11d8 <__vector_10+0x208>
110e: 16 c0 rjmp .+44 ; 0x113c <__vector_10+0x16c>
1110: 85 30 cpi r24, 0x05 ; 5
1112: 09 f4 brne .+2 ; 0x1116 <__vector_10+0x146>
1114: 48 c0 rjmp .+144 ; 0x11a6 <__vector_10+0x1d6>
1116: 85 30 cpi r24, 0x05 ; 5
1118: c8 f1 brcs .+114 ; 0x118c <__vector_10+0x1bc>
111a: 86 30 cpi r24, 0x06 ; 6
111c: 09 f0 breq .+2 ; 0x1120 <__vector_10+0x150>
111e: 5c c0 rjmp .+184 ; 0x11d8 <__vector_10+0x208>
1120: 4f c0 rjmp .+158 ; 0x11c0 <__vector_10+0x1f0>
{
case 0:
{
LowStatus = val*0x100+kk;
1122: 82 2f mov r24, r18
1124: 99 27 eor r25, r25
1126: 98 2f mov r25, r24
1128: 88 27 eor r24, r24
112a: 20 91 84 00 lds r18, 0x0084
112e: 82 0f add r24, r18
1130: 91 1d adc r25, r1
1132: 90 93 7f 00 sts 0x007F, r25
1136: 80 93 7e 00 sts 0x007E, r24
113a: 4e c0 rjmp .+156 ; 0x11d8 <__vector_10+0x208>
}break;
case 1:
{
//FarVoltage = val*0x100+kk;
}break;
case 2:
{
Voltage = val*0x100+kk;
113c: 82 2f mov r24, r18
113e: 99 27 eor r25, r25
1140: 98 2f mov r25, r24
1142: 88 27 eor r24, r24
1144: 20 91 84 00 lds r18, 0x0084
1148: 82 0f add r24, r18
114a: 91 1d adc r25, r1
114c: 90 93 71 00 sts 0x0071, r25
1150: 80 93 70 00 sts 0x0070, r24
1154: 41 c0 rjmp .+130 ; 0x11d8 <__vector_10+0x208>
}break;
case 3:
{
ACurrent[mp]=val*0x100+kk;
1156: 30 91 82 00 lds r19, 0x0082
115a: e3 2f mov r30, r19
115c: ff 27 eor r31, r31
115e: ee 0f add r30, r30
1160: ff 1f adc r31, r31
1162: ed 56 subi r30, 0x6D ; 109
1164: ff 4f sbci r31, 0xFF ; 255
1166: 82 2f mov r24, r18
1168: 99 27 eor r25, r25
116a: 98 2f mov r25, r24
116c: 88 27 eor r24, r24
116e: 20 91 84 00 lds r18, 0x0084
1172: 82 0f add r24, r18
1174: 91 1d adc r25, r1
1176: 91 83 std Z+1, r25 ; 0x01
1178: 80 83 st Z, r24
if(mp>8)mp=0;
117a: 39 30 cpi r19, 0x09 ; 9
117c: 18 f0 brcs .+6 ; 0x1184 <__vector_10+0x1b4>
117e: 10 92 82 00 sts 0x0082, r1
1182: 2a c0 rjmp .+84 ; 0x11d8 <__vector_10+0x208>
else mp++;
1184: 3f 5f subi r19, 0xFF ; 255
1186: 30 93 82 00 sts 0x0082, r19
118a: 26 c0 rjmp .+76 ; 0x11d8 <__vector_10+0x208>
}break;
case 4:
{
Temp = val*0x100+kk;
118c: 82 2f mov r24, r18
118e: 99 27 eor r25, r25
1190: 98 2f mov r25, r24
1192: 88 27 eor r24, r24
1194: 20 91 84 00 lds r18, 0x0084
1198: 82 0f add r24, r18
119a: 91 1d adc r25, r1
119c: 90 93 75 00 sts 0x0075, r25
11a0: 80 93 74 00 sts 0x0074, r24
11a4: 19 c0 rjmp .+50 ; 0x11d8 <__vector_10+0x208>
}break;
case 5:
{
Time = val*0x100+kk;
11a6: 82 2f mov r24, r18
11a8: 99 27 eor r25, r25
11aa: 98 2f mov r25, r24
11ac: 88 27 eor r24, r24
11ae: 20 91 84 00 lds r18, 0x0084
11b2: 82 0f add r24, r18
11b4: 91 1d adc r25, r1
11b6: 90 93 77 00 sts 0x0077, r25
11ba: 80 93 76 00 sts 0x0076, r24
11be: 0c c0 rjmp .+24 ; 0x11d8 <__vector_10+0x208>
}break;
case 6:
{
Capacitor = val*0x100+kk;
11c0: 82 2f mov r24, r18
11c2: 99 27 eor r25, r25
11c4: 98 2f mov r25, r24
11c6: 88 27 eor r24, r24
11c8: 20 91 84 00 lds r18, 0x0084
11cc: 82 0f add r24, r18
11ce: 91 1d adc r25, r1
11d0: 90 93 79 00 sts 0x0079, r25
11d4: 80 93 78 00 sts 0x0078, r24
}break;
case 7:
{
}break;
case 8:
{
//eer_data = val*0x100+kk;
}break;
default: break;
}
}break;
default:break;
}
if((++bn)>2)
11d8: 80 91 63 00 lds r24, 0x0063
11dc: 8f 5f subi r24, 0xFF ; 255
11de: 80 93 63 00 sts 0x0063, r24
11e2: 80 91 63 00 lds r24, 0x0063
11e6: 83 30 cpi r24, 0x03 ; 3
11e8: 38 f0 brcs .+14 ; 0x11f8 <__vector_10+0x228>
{
bn = 0;
11ea: 10 92 63 00 sts 0x0063, r1
k = 0;
11ee: 10 92 83 00 sts 0x0083, r1
TimeOut = 0;
11f2: 10 92 60 00 sts 0x0060, r1
11f6: 03 c0 rjmp .+6 ; 0x11fe <__vector_10+0x22e>
}
else TimeOut = 10;
11f8: 8a e0 ldi r24, 0x0A ; 10
11fa: 80 93 60 00 sts 0x0060, r24
11fe: ff 91 pop r31
1200: ef 91 pop r30
1202: 9f 91 pop r25
1204: 8f 91 pop r24
1206: 3f 91 pop r19
1208: 2f 91 pop r18
120a: 0f 90 pop r0
120c: 0f be out 0x3f, r0 ; 63
120e: 0f 90 pop r0
1210: 1f 90 pop r1
1212: 18 95 reti
00001214 <EEPROM_write>:
}
/////////////////////////////////////////////////////////////////////////
//自编函数区/////////////////////////////////////////////////////////////
void EEPROM_write(unsigned int uiAddress, unsigned char ucData)
{
1214: e1 99 sbic 0x1c, 1 ; 28
1216: fe cf rjmp .-4 ; 0x1214 <EEPROM_write>
while(EECR & (1<<EEWE));/* 等待上一次写操作结束 */
EEAR = uiAddress;/* 设置地址和数据寄存器*/
1218: 9f bb out 0x1f, r25 ; 31
121a: 8e bb out 0x1e, r24 ; 30
EEDR = ucData;
121c: 6d bb out 0x1d, r22 ; 29
EECR |= (1<<EEMWE);/* 置位EEMWE */
121e: e2 9a sbi 0x1c, 2 ; 28
EECR |= (1<<EEWE);/* 置位EEWE 以启动写操作*/
1220: e1 9a sbi 0x1c, 1 ; 28
1222: 08 95 ret
00001224 <EEPROM_read>:
}
/***********************************/
unsigned char EEPROM_read(unsigned int uiAddress)
{
1224: e1 99 sbic 0x1c, 1 ; 28
1226: fe cf rjmp .-4 ; 0x1224 <EEPROM_read>
while(EECR & (1<<EEWE));/* 等待上一次写操作结束 */
EEAR = uiAddress;/* 设置地址寄存器*/
1228: 9f bb out 0x1f, r25 ; 31
122a: 8e bb out 0x1e, r24 ; 30
EECR |= (1<<EERE);/* 设置EERE 以启动读操作*/
122c: e0 9a sbi 0x1c, 0 ; 28
return(EEDR);/* 自数据寄存器返回数据 */
122e: 8d b3 in r24, 0x1d ; 29
}
1230: 99 27 eor r25, r25
1232: 08 95 ret
00001234 <AVE_current>:
void AVE_current(void)
{
1234: cf 93 push r28
1236: df 93 push r29
1238: 60 e0 ldi r22, 0x00 ; 0
123a: 70 e0 ldi r23, 0x00 ; 0
123c: cf ef ldi r28, 0xFF ; 255
123e: df ef ldi r29, 0xFF ; 255
1240: 20 e0 ldi r18, 0x00 ; 0
1242: 30 e0 ldi r19, 0x00 ; 0
1244: 40 e0 ldi r20, 0x00 ; 0
1246: 50 e0 ldi r21, 0x00 ; 0
1248: e3 e9 ldi r30, 0x93 ; 147
124a: f0 e0 ldi r31, 0x00 ; 0
unsigned char i = 0;
unsigned int max = 0;
unsigned int min = 0xffff;
unsigned long total = 0;
for(i=0;i<10;i++)
{
if(ACurrent[i]>max)max=ACurrent[i];
124c: 80 81 ld r24, Z
124e: 91 81 ldd r25, Z+1 ; 0x01
1250: 68 17 cp r22, r24
1252: 79 07 cpc r23, r25
1254: 08 f4 brcc .+2 ; 0x1258 <AVE_current+0x24>
1256: bc 01 movw r22, r24
1258: 8c 17 cp r24, r28
125a: 9d 07 cpc r25, r29
125c: 08 f4 brcc .+2 ; 0x1260 <AVE_current+0x2c>
125e: ec 01 movw r28, r24
if(ACurrent[i]<min)min=ACurrent[i];
total +=ACurrent[i];
1260: aa 27 eor r26, r26
1262: bb 27 eor r27, r27
1264: 28 0f add r18, r24
1266: 39 1f adc r19, r25
1268: 4a 1f adc r20, r26
126a: 5b 1f adc r21, r27
126c: 32 96 adiw r30, 0x02 ; 2
126e: 80 e0 ldi r24, 0x00 ; 0
1270: e7 3a cpi r30, 0xA7 ; 167
1272: f8 07 cpc r31, r24
1274: 59 f7 brne .-42 ; 0x124c <AVE_current+0x18>
}
Current=(total-(max+min))/8;
1276: 6c 0f add r22, r28
1278: 7d 1f adc r23, r29
127a: cb 01 movw r24, r22
127c: aa 27 eor r26, r26
127e: bb 27 eor r27, r27
1280: 28 1b sub r18, r24
1282: 39 0b sbc r19, r25
1284: 4a 0b sbc r20, r26
1286: 5b 0b sbc r21, r27
1288: b3 e0 ldi r27, 0x03 ; 3
128a: 56 95 lsr r21
128c: 47 95 ror r20
128e: 37 95 ror r19
1290: 27 95 ror r18
1292: ba 95 dec r27
1294: d1 f7 brne .-12 ; 0x128a <AVE_current+0x56>
1296: 30 93 73 00 sts 0x0073, r19
129a: 20 93 72 00 sts 0x0072, r18
129e: df 91 pop r29
12a0: cf 91 pop r28
12a2: 08 95 ret
000012a4 <vDataInit>:
}
void vDataInit(void)
{
12a4: ef 92 push r14
12a6: ff 92 push r15
12a8: 0f 93 push r16
12aa: 1f 93 push r17
12ac: cf 93 push r28
12ae: df 93 push r29
12b0: b2 e0 ldi r27, 0x02 ; 2
12b2: eb 2e mov r14, r27
12b4: f1 2c mov r15, r1
12b6: c3 ed ldi r28, 0xD3 ; 211
12b8: d0 e0 ldi r29, 0x00 ; 0
unsigned char i;
for(i=1;i<10;i++)
{
XVoltage[i] =EEPROM_read(2*i);
12ba: c7 01 movw r24, r14
12bc: 0e 94 12 09 call 0x1224 ; 0x1224 <EEPROM_read>
12c0: 08 2f mov r16, r24
12c2: 11 27 eor r17, r17
12c4: 19 83 std Y+1, r17 ; 0x01
12c6: 08 83 st Y, r16
XVoltage[i] +=EEPROM_read(2*i+1)*256;
12c8: c7 01 movw r24, r14
12ca: 01 96 adiw r24, 0x01 ; 1
12cc: 0e 94 12 09 call 0x1224 ; 0x1224 <EEPROM_read>
12d0: 99 27 eor r25, r25
12d2: 98 2f mov r25, r24
12d4: 88 27 eor r24, r24
12d6: 80 0f add r24, r16
12d8: 91 1f adc r25, r17
12da: 99 83 std Y+1, r25 ; 0x01
12dc: 88 83 st Y, r24
if(XVoltage[i]>V_MAX)XVoltage[i] = 0;//加载恒压
12de: 81 5d subi r24, 0xD1 ; 209
12e0: 97 40 sbci r25, 0x07 ; 7
12e2: 10 f0 brcs .+4 ; 0x12e8 <vDataInit+0x44>
12e4: 19 82 std Y+1, r1 ; 0x01
12e6: 18 82 st Y, r1
12e8: 82 e0 ldi r24, 0x02 ; 2
12ea: 90 e0 ldi r25, 0x00 ; 0
12ec: e8 0e add r14, r24
12ee: f9 1e adc r15, r25
12f0: 22 96 adiw r28, 0x02 ; 2
12f2: 94 e1 ldi r25, 0x14 ; 20
12f4: e9 16 cp r14, r25
12f6: f1 04 cpc r15, r1
12f8: 01 f7 brne .-64 ; 0x12ba <vDataInit+0x16>
12fa: f6 e1 ldi r31, 0x16 ; 22
12fc: ef 2e mov r14, r31
12fe: f1 2c mov r15, r1
1300: cf eb ldi r28, 0xBF ; 191
1302: d0 e0 ldi r29, 0x00 ; 0
}
for(i=1;i<10;i++)
{
XCurrent[i] = EEPROM_read(2*i+20);
1304: c7 01 movw r24, r14
1306: 0e 94 12 09 call 0x1224 ; 0x1224 <EEPROM_read>
130a: 08 2f mov r16, r24
130c: 11 27 eor r17, r17
130e: 19 83 std Y+1, r17 ; 0x01
1310: 08 83 st Y, r16
XCurrent[i] += EEPROM_read(2*i+21)*256;
1312: c7 01 movw r24, r14
1314: 01 96 adiw r24, 0x01 ; 1
1316: 0e 94 12 09 call 0x1224 ; 0x1224 <EEPROM_read>
131a: 99 27 eor r25, r25
131c: 98 2f mov r25, r24
131e: 88 27 eor r24, r24
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -