?? main.lss
字號:
DVDPowOff();
a9e: 80 91 3b 00 lds r24, 0x003B
aa2: 8f 7d andi r24, 0xDF ; 223
aa4: 80 93 3b 00 sts 0x003B, r24
aa8: 10 92 80 00 sts 0x0080, r1
aac: 2d c0 rjmp .+90 ; 0xb08 <main+0xc4>
}
}
else// if(board_key==BOARD_KEY_EJ)
{
if(ej_sw_m!=DISC_OUT)
aae: 80 91 39 00 lds r24, 0x0039
ab2: 99 27 eor r25, r25
ab4: 80 74 andi r24, 0x40 ; 64
ab6: 90 70 andi r25, 0x00 ; 0
ab8: 00 97 sbiw r24, 0x00 ; 0
aba: 31 f1 breq .+76 ; 0xb08 <main+0xc4>
{
if(dvdpower_f==DVD_POWER_OFF)
abc: 80 91 80 00 lds r24, 0x0080
ac0: 88 23 and r24, r24
ac2: e9 f4 brne .+58 ; 0xafe <main+0xba>
{
DVDPowOn();
ac4: 80 91 3b 00 lds r24, 0x003B
ac8: 80 62 ori r24, 0x20 ; 32
aca: 80 93 3b 00 sts 0x003B, r24
ace: 80 e2 ldi r24, 0x20 ; 32
ad0: 80 93 80 00 sts 0x0080, r24
delay_ms(TIME300MS);
ad4: 8c e2 ldi r24, 0x2C ; 44
ad6: 91 e0 ldi r25, 0x01 ; 1
ad8: 0e 94 1a 04 call 0x834 <delay_ms>
SendIRCode(IR_KEY_EJ);
adc: 80 e3 ldi r24, 0x30 ; 48
ade: 0e 94 a6 04 call 0x94c <SendIRCode>
SendIRCodeStop();
ae2: 0e 94 cf 00 call 0x19e <SendIRCodeStop>
delay_ms(TIME300MS);
ae6: 8c e2 ldi r24, 0x2C ; 44
ae8: 91 e0 ldi r25, 0x01 ; 1
aea: 0e 94 1a 04 call 0x834 <delay_ms>
DVDPowOff();
aee: 80 91 3b 00 lds r24, 0x003B
af2: 8f 7d andi r24, 0xDF ; 223
af4: 80 93 3b 00 sts 0x003B, r24
af8: 10 92 80 00 sts 0x0080, r1
afc: 05 c0 rjmp .+10 ; 0xb08 <main+0xc4>
}
else
{
SendIRCode(IR_KEY_EJ);
afe: 80 e3 ldi r24, 0x30 ; 48
b00: 0e 94 a6 04 call 0x94c <SendIRCode>
SendIRCodeStop();
b04: 0e 94 cf 00 call 0x19e <SendIRCodeStop>
}
}
}
}
ir_thread();
b08: 0e 94 34 06 call 0xc68 <ir_thread>
b0c: a5 cf rjmp .-182 ; 0xa58 <main+0x14>
00000b0e <ir_key_up>:
}
}
void ir_key_up(void)
{
b0e: cf 93 push r28
b10: df 93 push r29
b12: cd b7 in r28, 0x3d ; 61
b14: de b7 in r29, 0x3e ; 62
if(irKeyRpt_f)
b16: 80 91 7b 00 lds r24, 0x007B
b1a: 88 23 and r24, r24
b1c: 69 f0 breq .+26 ; 0xb38 <ir_key_up+0x2a>
{
if(irCode!=IR_KEY_POWER&&irCode!=IR_KEY_EJ)
b1e: 80 91 78 00 lds r24, 0x0078
b22: 80 3d cpi r24, 0xD0 ; 208
b24: 09 f4 brne .+2 ; 0xb28 <ir_key_up+0x1a>
b26: 76 c0 rjmp .+236 ; 0xc14 <ir_key_up+0x106>
b28: 80 91 78 00 lds r24, 0x0078
b2c: 80 33 cpi r24, 0x30 ; 48
b2e: 09 f4 brne .+2 ; 0xb32 <ir_key_up+0x24>
b30: 71 c0 rjmp .+226 ; 0xc14 <ir_key_up+0x106>
{
SendIRCodeStop();
b32: 0e 94 cf 00 call 0x19e <SendIRCodeStop>
b36: 6e c0 rjmp .+220 ; 0xc14 <ir_key_up+0x106>
}
}
else
{
if(irCode==IR_KEY_POWER)
b38: 80 91 78 00 lds r24, 0x0078
b3c: 80 3d cpi r24, 0xD0 ; 208
b3e: f1 f4 brne .+60 ; 0xb7c <ir_key_up+0x6e>
{
if(dvdpower_f==DVD_POWER_OFF)
b40: 80 91 80 00 lds r24, 0x0080
b44: 88 23 and r24, r24
b46: 49 f4 brne .+18 ; 0xb5a <ir_key_up+0x4c>
{
DVDPowOn();
b48: 80 91 3b 00 lds r24, 0x003B
b4c: 80 62 ori r24, 0x20 ; 32
b4e: 80 93 3b 00 sts 0x003B, r24
b52: 80 e2 ldi r24, 0x20 ; 32
b54: 80 93 80 00 sts 0x0080, r24
b58: 3b c0 rjmp .+118 ; 0xbd0 <ir_key_up+0xc2>
}
else
{
SendIRCode(IR_KEY_POWER);
b5a: 80 ed ldi r24, 0xD0 ; 208
b5c: 0e 94 a6 04 call 0x94c <SendIRCode>
SendIRCodeStop();
b60: 0e 94 cf 00 call 0x19e <SendIRCodeStop>
delay_ms(TIME120MS);
b64: 88 e7 ldi r24, 0x78 ; 120
b66: 90 e0 ldi r25, 0x00 ; 0
b68: 0e 94 1a 04 call 0x834 <delay_ms>
DVDPowOff();
b6c: 80 91 3b 00 lds r24, 0x003B
b70: 8f 7d andi r24, 0xDF ; 223
b72: 80 93 3b 00 sts 0x003B, r24
b76: 10 92 80 00 sts 0x0080, r1
b7a: 2a c0 rjmp .+84 ; 0xbd0 <ir_key_up+0xc2>
}
}
else //if(irCode==IR_KEY_EJ)
{
if(ej_sw_m!=DISC_OUT)
b7c: 80 91 39 00 lds r24, 0x0039
b80: 99 27 eor r25, r25
b82: 80 74 andi r24, 0x40 ; 64
b84: 90 70 andi r25, 0x00 ; 0
b86: 00 97 sbiw r24, 0x00 ; 0
b88: 19 f1 breq .+70 ; 0xbd0 <ir_key_up+0xc2>
{
if(dvdpower_f==DVD_POWER_OFF)
b8a: 80 91 80 00 lds r24, 0x0080
b8e: 88 23 and r24, r24
b90: e9 f4 brne .+58 ; 0xbcc <ir_key_up+0xbe>
{
DVDPowOn();
b92: 80 91 3b 00 lds r24, 0x003B
b96: 80 62 ori r24, 0x20 ; 32
b98: 80 93 3b 00 sts 0x003B, r24
b9c: 80 e2 ldi r24, 0x20 ; 32
b9e: 80 93 80 00 sts 0x0080, r24
delay_ms(TIME300MS);
ba2: 8c e2 ldi r24, 0x2C ; 44
ba4: 91 e0 ldi r25, 0x01 ; 1
ba6: 0e 94 1a 04 call 0x834 <delay_ms>
SendIRCode(IR_KEY_EJ);
baa: 80 e3 ldi r24, 0x30 ; 48
bac: 0e 94 a6 04 call 0x94c <SendIRCode>
SendIRCodeStop();
bb0: 0e 94 cf 00 call 0x19e <SendIRCodeStop>
delay_ms(TIME300MS);
bb4: 8c e2 ldi r24, 0x2C ; 44
bb6: 91 e0 ldi r25, 0x01 ; 1
bb8: 0e 94 1a 04 call 0x834 <delay_ms>
DVDPowOff();
bbc: 80 91 3b 00 lds r24, 0x003B
bc0: 8f 7d andi r24, 0xDF ; 223
bc2: 80 93 3b 00 sts 0x003B, r24
bc6: 10 92 80 00 sts 0x0080, r1
bca: 02 c0 rjmp .+4 ; 0xbd0 <ir_key_up+0xc2>
}
else
{
SendIRCodeStop();
bcc: 0e 94 cf 00 call 0x19e <SendIRCodeStop>
}
}
}
if(dvdpower_f==DVD_POWER_OFF)
bd0: 80 91 80 00 lds r24, 0x0080
bd4: 88 23 and r24, r24
bd6: f1 f4 brne .+60 ; 0xc14 <ir_key_up+0x106>
{
if(load_sw_f!=load_sw_m)
bd8: 80 91 74 00 lds r24, 0x0074
bdc: 28 2f mov r18, r24
bde: 33 27 eor r19, r19
be0: 80 91 39 00 lds r24, 0x0039
be4: 99 27 eor r25, r25
be6: 80 78 andi r24, 0x80 ; 128
be8: 90 70 andi r25, 0x00 ; 0
bea: 28 17 cp r18, r24
bec: 39 07 cpc r19, r25
bee: 91 f0 breq .+36 ; 0xc14 <ir_key_up+0x106>
{
if(load_sw_f==0)
bf0: 80 91 74 00 lds r24, 0x0074
bf4: 88 23 and r24, r24
bf6: 41 f4 brne .+16 ; 0xc08 <ir_key_up+0xfa>
{
DVDPowOn();
bf8: 80 91 3b 00 lds r24, 0x003B
bfc: 80 62 ori r24, 0x20 ; 32
bfe: 80 93 3b 00 sts 0x003B, r24
c02: 80 e2 ldi r24, 0x20 ; 32
c04: 80 93 80 00 sts 0x0080, r24
}
load_sw_f=load_sw_m;
c08: 80 e8 ldi r24, 0x80 ; 128
c0a: 90 91 39 00 lds r25, 0x0039
c0e: 89 23 and r24, r25
c10: 80 93 74 00 sts 0x0074, r24
c14: df 91 pop r29
c16: cf 91 pop r28
c18: 08 95 ret
00000c1a <ir_key_down>:
}
}
}
}
void ir_key_down(void)
{
c1a: cf 93 push r28
c1c: df 93 push r29
c1e: cd b7 in r28, 0x3d ; 61
c20: de b7 in r29, 0x3e ; 62
if(irCode!=IR_KEY_POWER&&irCode!=IR_KEY_EJ)
c22: 80 91 78 00 lds r24, 0x0078
c26: 80 3d cpi r24, 0xD0 ; 208
c28: 49 f0 breq .+18 ; 0xc3c <ir_key_down+0x22>
c2a: 80 91 78 00 lds r24, 0x0078
c2e: 80 33 cpi r24, 0x30 ; 48
c30: 29 f0 breq .+10 ; 0xc3c <ir_key_down+0x22>
SendIRCodeStart(irCode);
c32: 80 91 78 00 lds r24, 0x0078
c36: 0e 94 ac 00 call 0x158 <SendIRCodeStart>
c3a: 13 c0 rjmp .+38 ; 0xc62 <ir_key_down+0x48>
else if(irCode==IR_KEY_EJ&&dvdpower_f==DVD_POWER_ON)
c3c: 80 91 78 00 lds r24, 0x0078
c40: 80 33 cpi r24, 0x30 ; 48
c42: 79 f4 brne .+30 ; 0xc62 <ir_key_down+0x48>
c44: 80 91 80 00 lds r24, 0x0080
c48: 80 32 cpi r24, 0x20 ; 32
c4a: 59 f4 brne .+22 ; 0xc62 <ir_key_down+0x48>
{
if(ej_sw_m!=DISC_OUT)
c4c: 80 91 39 00 lds r24, 0x0039
c50: 99 27 eor r25, r25
c52: 80 74 andi r24, 0x40 ; 64
c54: 90 70 andi r25, 0x00 ; 0
c56: 00 97 sbiw r24, 0x00 ; 0
c58: 21 f0 breq .+8 ; 0xc62 <ir_key_down+0x48>
SendIRCodeStart(irCode);
c5a: 80 91 78 00 lds r24, 0x0078
c5e: 0e 94 ac 00 call 0x158 <SendIRCodeStart>
c62: df 91 pop r29
c64: cf 91 pop r28
c66: 08 95 ret
00000c68 <ir_thread>:
}
}
//ir消息線程,判斷當前ir狀態
void ir_thread(void)
{
c68: cf 93 push r28
c6a: df 93 push r29
c6c: cd b7 in r28, 0x3d ; 61
c6e: de b7 in r29, 0x3e ; 62
c70: 22 97 sbiw r28, 0x02 ; 2
c72: 0f b6 in r0, 0x3f ; 63
c74: f8 94 cli
c76: de bf out 0x3e, r29 ; 62
c78: 0f be out 0x3f, r0 ; 63
c7a: cd bf out 0x3d, r28 ; 61
switch(irKeyEvent)
c7c: 80 91 62 00 lds r24, 0x0062
c80: 28 2f mov r18, r24
c82: 33 27 eor r19, r19
c84: 3a 83 std Y+2, r19 ; 0x02
c86: 29 83 std Y+1, r18 ; 0x01
c88: 89 81 ldd r24, Y+1 ; 0x01
c8a: 9a 81 ldd r25, Y+2 ; 0x02
c8c: 81 30 cpi r24, 0x01 ; 1
c8e: 91 05 cpc r25, r1
c90: 49 f0 breq .+18 ; 0xca4 <ir_thread+0x3c>
c92: 29 81 ldd r18, Y+1 ; 0x01
c94: 3a 81 ldd r19, Y+2 ; 0x02
c96: 24 30 cpi r18, 0x04 ; 4
c98: 31 05 cpc r19, r1
c9a: 09 f0 breq .+2 ; 0xc9e <ir_thread+0x36>
c9c: 05 c0 rjmp .+10 ; 0xca8 <ir_thread+0x40>
{
case _IR_KEY_UP:
ir_key_up();
c9e: 0e 94 87 05 call 0xb0e <ir_key_up>
break;
ca2: 02 c0 rjmp .+4 ; 0xca8 <ir_thread+0x40>
case _IR_KEY_DOWN:
ir_key_down();
ca4: 0e 94 0d 06 call 0xc1a <ir_key_down>
break;
}
irKeyEvent=0;
ca8: 10 92 62 00 sts 0x0062, r1
cac: 22 96 adiw r28, 0x02 ; 2
cae: 0f b6 in r0, 0x3f ; 63
cb0: f8 94 cli
cb2: de bf out 0x3e, r29 ; 62
cb4: 0f be out 0x3f, r0 ; 63
cb6: cd bf out 0x3d, r28 ; 61
cb8: df 91 pop r29
cba: cf 91 pop r28
cbc: 08 95 ret
00000cbe <BoardKeyDetect>:
}
//檢測面板按鍵按下
void BoardKeyDetect(void)
{
cbe: cf 93 push r28
cc0: df 93 push r29
cc2: cd b7 in r28, 0x3d ; 61
cc4: de b7 in r29, 0x3e ; 62
cc6: 22 97 sbiw r28, 0x02 ; 2
cc8: 0f b6 in r0, 0x3f ; 63
cca: f8 94 cli
ccc: de bf out 0x3e, r29 ; 62
cce: 0f be out 0x3f, r0 ; 63
cd0: cd bf out 0x3d, r28 ; 61
UIN16 counttemp;
if(key_pow_l)
cd2: 80 91 39 00 lds r24, 0x0039
cd6: 99 27 eor r25, r25
cd8: 82 70 andi r24, 0x02 ; 2
cda: 90 70 andi r25, 0x00 ; 0
cdc: 00 97 sbiw r24, 0x00 ; 0
cde: 09 f0 breq .+2 ; 0xce2 <BoardKeyDetect+0x24>
ce0: 41 c0 rjmp .+130 ; 0xd64 <BoardKeyDetect+0xa6>
{
delay_ms(1);
ce2: 81 e0 ldi r24, 0x01 ; 1
ce4: 90 e0 ldi r25, 0x00 ; 0
ce6: 0e 94 1a 04 call 0x834 <delay_ms>
if(key_pow_l)
cea: 80 91 39 00 lds r24, 0x0039
cee: 99 27 eor r25, r25
cf0: 82 70 andi r24, 0x02 ; 2
cf2: 90 70 andi r25, 0x00 ; 0
cf4: 00 97 sbiw r24, 0x00 ; 0
cf6: 09 f0 breq .+2 ; 0xcfa <BoardKeyDetect+0x3c>
cf8: 76 c0 rjmp .+236 ; 0xde6 <BoardKeyDetect+0x128>
{
boardKeyEvent=BOARD_KEY_DOWN;
cfa: 81 e0 ldi r24, 0x01 ; 1
cfc: 80 93 7c 00 sts 0x007C, r24
SendIRCodeStop(); //有按鍵時停止發送遙控碼
d00: 0e 94 cf 00 call 0x19e <SendIRCodeStop>
counttemp=TIME1S;
d04: 88 ee ldi r24, 0xE8 ; 232
d06: 93 e0 ldi r25, 0x03 ; 3
d08: 9a 83 std Y+2, r25 ; 0x02
d0a: 89 83 std Y+1, r24 ; 0x01
while(key_pow_l&&counttemp--)
d0c: 80 91 39 00 lds r24, 0x0039
d10: 99 27 eor r25, r25
d12: 82 70 andi r24, 0x02 ; 2
d14: 90 70 andi r25, 0x00 ; 0
d16: 00 97 sbiw r24, 0x00 ; 0
d18: 71 f4 brne .+28 ; 0xd36 <BoardKeyDetect+0x78>
d1a: 89 81 ldd r24, Y+1 ; 0x01
d1c: 9a 81 ldd r25, Y+2 ; 0x02
d1e: 01 97 sbiw r24, 0x01 ; 1
d20: 9a 83 std Y+2, r25 ; 0x02
d22: 89 83 std Y+1, r24 ; 0x01
d24: 2f ef ldi r18, 0xFF ; 255
d26: 8f 3f cpi r24, 0xFF ; 255
d28: 92 07 cpc r25, r18
d2a: 29 f0 breq .+10 ; 0xd36 <BoardKeyDetect+0x78>
{
delay_ms(1);
d2c: 81 e0 ldi r24, 0x01 ; 1
d2e: 90 e0 ldi r25, 0x00 ; 0
d30: 0e 94 1a 04 call 0x834 <dela
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -