?? 7022b.lss
字號:
else
Data1=Data1&0x7fffff;
1ce: 8f 77 andi r24, 0x7F ; 127
1d0: 90 70 andi r25, 0x00 ; 0
Data1=Data1>>1;
1d2: 95 95 asr r25
1d4: 87 95 ror r24
1d6: 77 95 ror r23
1d8: 67 95 ror r22
SCLK_0;
1da: c1 98 cbi 0x18, 1 ; 24
1dc: 21 50 subi r18, 0x01 ; 1
1de: 91 f7 brne .-28 ; 0x1c4
}
CS_1;
1e0: c0 9a sbi 0x18, 0 ; 24
1e2: 08 95 ret
000001e4 <WriteSpi>:
return(Data1);
}
void WriteSpi(char Com2,long Data2) //SPI寫操作
{ char Y_N1,n2,m2;
1e4: 98 2f mov r25, r24
long Y_N2;
CS_1;
1e6: c0 9a sbi 0x18, 0 ; 24
SCLK_0;
1e8: c1 98 cbi 0x18, 1 ; 24
CS_0;
1ea: c0 98 cbi 0x18, 0 ; 24
for(n2=8;n2>0;n2--)
1ec: 28 e0 ldi r18, 0x08 ; 8
{
SCLK_1;
1ee: c1 9a sbi 0x18, 1 ; 24
Y_N1=Com2&0x01;
1f0: 89 2f mov r24, r25
1f2: 81 70 andi r24, 0x01 ; 1
Com2=Com2>>1;
1f4: 96 95 lsr r25
if(Y_N1)
1f6: 88 23 and r24, r24
1f8: 11 f0 breq .+4 ; 0x1fe
DIN_1;
1fa: c2 9a sbi 0x18, 2 ; 24
1fc: 01 c0 rjmp .+2 ; 0x200
else
DIN_0;
1fe: c2 98 cbi 0x18, 2 ; 24
SCLK_0;
200: c1 98 cbi 0x18, 1 ; 24
202: 21 50 subi r18, 0x01 ; 1
204: a1 f7 brne .-24 ; 0x1ee
}
for(m2=24;m2>0;m2--)
206: 28 e1 ldi r18, 0x18 ; 24
{
SCLK_1;
208: c1 9a sbi 0x18, 1 ; 24
Y_N2=Data2&0x000001;
20a: db 01 movw r26, r22
20c: ca 01 movw r24, r20
20e: 81 70 andi r24, 0x01 ; 1
210: 90 70 andi r25, 0x00 ; 0
212: a0 70 andi r26, 0x00 ; 0
214: b0 70 andi r27, 0x00 ; 0
Data2=Data2>>1;
216: 75 95 asr r23
218: 67 95 ror r22
21a: 57 95 ror r21
21c: 47 95 ror r20
if(Y_N2)
21e: 00 97 sbiw r24, 0x00 ; 0
220: a1 05 cpc r26, r1
222: b1 05 cpc r27, r1
224: 11 f0 breq .+4 ; 0x22a
DIN_1;
226: c2 9a sbi 0x18, 2 ; 24
228: 01 c0 rjmp .+2 ; 0x22c
else
DIN_0;
22a: c2 98 cbi 0x18, 2 ; 24
SCLK_0;
22c: c1 98 cbi 0x18, 1 ; 24
22e: 21 50 subi r18, 0x01 ; 1
230: 59 f7 brne .-42 ; 0x208
}
CS_1;
232: c0 9a sbi 0x18, 0 ; 24
234: 08 95 ret
00000236 <jisuan>:
}
void main(void)
{
char i;
DDRB=0xFB; //11111011
for(i=0;i<=2;i++)
{
switch(i)
{
case 0:
WriteSpi(0x2F,0x000000);
jisuan(0);
break;
case 1:
WriteSpi(0x2F,0x001228);
WriteSpi(0x2D,0x007812); //基波選擇
WriteSpi(0x3C,0x0055AA);
jisuan(1);
break;
case 2:
WriteSpi(0x2F,0x001228);
WriteSpi(0x2D,0x007812); //諧波選擇
WriteSpi(0x3C,0x000000);
jisuan(2);
break;
default: ;
}
}
}
void jisuan(char num)
{ int a1,a2,a3,a4,a5,b1,b2,b3,b4,b5,c1,c2,c3,c4,c5,d;
236: ff 92 push r15
238: 0f 93 push r16
23a: 1f 93 push r17
23c: 18 2f mov r17, r24
long t1,t2,t3;
char v1,i1;
a1=Power_signal(ReadSpi(r_Pa)); //把A相有功功率值放入buffer中,第八位在前,高八位在后
23e: 81 e0 ldi r24, 0x01 ; 1
240: 0e 94 c9 00 call 0x192
244: dc 01 movw r26, r24
246: cb 01 movw r24, r22
248: bc 01 movw r22, r24
24a: cd 01 movw r24, r26
24c: 0e 94 65 00 call 0xca
250: ac 01 movw r20, r24
buffer[0+num*50]=(char)(a1&0x00ff);
252: 21 2f mov r18, r17
254: 33 27 eor r19, r19
256: 82 e3 ldi r24, 0x32 ; 50
258: 90 e0 ldi r25, 0x00 ; 0
25a: 28 9f mul r18, r24
25c: 80 01 movw r16, r0
25e: 29 9f mul r18, r25
260: 10 0d add r17, r0
262: 38 9f mul r19, r24
264: 10 0d add r17, r0
266: 11 24 eor r1, r1
268: 0a 56 subi r16, 0x6A ; 106
26a: 1e 4f sbci r17, 0xFE ; 254
26c: f8 01 movw r30, r16
26e: 40 83 st Z, r20
buffer[1+num*50]=(char)((a1&0xff00)>>8);
270: 85 2f mov r24, r21
272: 99 27 eor r25, r25
274: 81 83 std Z+1, r24 ; 0x01
b1=Power_signal(ReadSpi(r_Pb));
276: 82 e0 ldi r24, 0x02 ; 2
278: 0e 94 c9 00 call 0x192
27c: dc 01 movw r26, r24
27e: cb 01 movw r24, r22
280: bc 01 movw r22, r24
282: cd 01 movw r24, r26
284: 0e 94 65 00 call 0xca
buffer[2+num*50]=(char)(b1&0x00ff);
288: f8 01 movw r30, r16
28a: 82 83 std Z+2, r24 ; 0x02
buffer[3+num*50]=(char)((b1&0xff00)>>8);
28c: 89 2f mov r24, r25
28e: 99 27 eor r25, r25
290: 83 83 std Z+3, r24 ; 0x03
c1=Power_signal(ReadSpi(r_Pc));
292: 83 e0 ldi r24, 0x03 ; 3
294: 0e 94 c9 00 call 0x192
298: dc 01 movw r26, r24
29a: cb 01 movw r24, r22
29c: bc 01 movw r22, r24
29e: cd 01 movw r24, r26
2a0: 0e 94 65 00 call 0xca
buffer[4+num*50]=(char)(c1&0x00ff);
2a4: f8 01 movw r30, r16
2a6: 84 83 std Z+4, r24 ; 0x04
buffer[5+num*50]=(char)((c1&0xff00)>>8);
2a8: 89 2f mov r24, r25
2aa: 99 27 eor r25, r25
2ac: 85 83 std Z+5, r24 ; 0x05
t1=Power_more(ReadSpi(r_Pt));
2ae: 84 e0 ldi r24, 0x04 ; 4
2b0: 0e 94 c9 00 call 0x192
2b4: dc 01 movw r26, r24
2b6: cb 01 movw r24, r22
2b8: bc 01 movw r22, r24
2ba: cd 01 movw r24, r26
2bc: 0e 94 6e 00 call 0xdc
2c0: dc 01 movw r26, r24
2c2: cb 01 movw r24, r22
buffer[6+num*50]=(char)(t1&0x0000ff);
2c4: f8 01 movw r30, r16
2c6: 86 83 std Z+6, r24 ; 0x06
buffer[7+num*50]=(char)((t1&0x00ff00)>>8);
2c8: 97 83 std Z+7, r25 ; 0x07
buffer[8+num*50]=(char)(((t1&0xff0000)>>8)>>8);
2ca: a0 87 std Z+8, r26 ; 0x08
a2=Power_signal(ReadSpi(r_Qa)); //把A相無功功率值放入buffer中,第八位在前,高八位在后
2cc: 85 e0 ldi r24, 0x05 ; 5
2ce: 0e 94 c9 00 call 0x192
2d2: dc 01 movw r26, r24
2d4: cb 01 movw r24, r22
2d6: bc 01 movw r22, r24
2d8: cd 01 movw r24, r26
2da: 0e 94 65 00 call 0xca
buffer[9+num*50]=(char)(a2&0x00ff);
2de: f8 01 movw r30, r16
2e0: 81 87 std Z+9, r24 ; 0x09
buffer[10+num*50]=(char)((a2&0xff00)>>8);
2e2: 89 2f mov r24, r25
2e4: 99 27 eor r25, r25
2e6: 82 87 std Z+10, r24 ; 0x0a
b2=Power_signal(ReadSpi(r_Qb));
2e8: 86 e0 ldi r24, 0x06 ; 6
2ea: 0e 94 c9 00 call 0x192
2ee: dc 01 movw r26, r24
2f0: cb 01 movw r24, r22
2f2: bc 01 movw r22, r24
2f4: cd 01 movw r24, r26
2f6: 0e 94 65 00 call 0xca
buffer[11+num*50]=(char)(b2&0x00ff);
2fa: f8 01 movw r30, r16
2fc: 83 87 std Z+11, r24 ; 0x0b
buffer[12+num*50]=(char)((b2&0xff00)>>8);
2fe: 89 2f mov r24, r25
300: 99 27 eor r25, r25
302: 84 87 std Z+12, r24 ; 0x0c
c2=Power_signal(ReadSpi(r_Qc));
304: 87 e0 ldi r24, 0x07 ; 7
306: 0e 94 c9 00 call 0x192
30a: dc 01 movw r26, r24
30c: cb 01 movw r24, r22
30e: bc 01 movw r22, r24
310: cd 01 movw r24, r26
312: 0e 94 65 00 call 0xca
buffer[13+num*50]=(char)(c2&0x00ff);
316: f8 01 movw r30, r16
318: 85 87 std Z+13, r24 ; 0x0d
buffer[14+num*50]=(char)((c2&0xff00)>>8);
31a: 89 2f mov r24, r25
31c: 99 27 eor r25, r25
31e: 86 87 std Z+14, r24 ; 0x0e
t2=Power_more(ReadSpi(r_Qt));
320: 88 e0 ldi r24, 0x08 ; 8
322: 0e 94 c9 00 call 0x192
326: dc 01 movw r26, r24
328: cb 01 movw r24, r22
32a: bc 01 movw r22, r24
32c: cd 01 movw r24, r26
32e: 0e 94 6e 00 call 0xdc
332: dc 01 movw r26, r24
334: cb 01 movw r24, r22
buffer[15+num*50]=(char)(t2&0x0000ff);
336: f8 01 movw r30, r16
338: 87 87 std Z+15, r24 ; 0x0f
buffer[16+num*50]=(char)((t2&0x00ff00)>>8);
33a: 90 8b std Z+16, r25 ; 0x10
buffer[17+num*50]=(char)(((t2&0xff0000)>>8)>>8);
33c: a1 8b std Z+17, r26 ; 0x11
a3=Power_signal(ReadSpi(r_Sa)); //把A相視在功率值放入buffer中,第八位在前,高八位在后
33e: 89 e0 ldi r24, 0x09 ; 9
340: 0e 94 c9 00 call 0x192
344: dc 01 movw r26, r24
346: cb 01 movw r24, r22
348: bc 01 movw r22, r24
34a: cd 01 movw r24, r26
34c: 0e 94 65 00 call 0xca
buffer[18+num*50]=(char)(a3&0x00ff);
350: f8 01 movw r30, r16
352: 82 8b std Z+18, r24 ; 0x12
buffer[19+num*50]=(char)((a3&0xff00)>>8);
354: 89 2f mov r24, r25
356: 99 27 eor r25, r25
358: 83 8b std Z+19, r24 ; 0x13
b3=Power_signal(ReadSpi(r_Sb));
35a: 8a e0 ldi r24, 0x0A ; 10
35c: 0e 94 c9 00 call 0x192
360: dc 01 movw r26, r24
362: cb 01 movw r24, r22
364: bc 01 movw r22, r24
366: cd 01 movw r24, r26
368: 0e 94 65 00 call 0xca
buffer[20+num*50]=(char)(b3&0x00ff);
36c: f8 01 movw r30, r16
36e: 84 8b std Z+20, r24 ; 0x14
buffer[21+num*50]=(char)((b3&0xff00)>>8);
370: 89 2f mov r24, r25
372: 99 27 eor r25, r25
374: 85 8b std Z+21, r24 ; 0x15
c3=Power_signal(ReadSpi(r_Sc));
376: 8b e0 ldi r24, 0x0B ; 11
378: 0e 94 c9 00 call 0x192
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -