📄 nrf905_send.lst
字号:
(0146) ret=0;
0436 2400 CLR R0
0437 2411 CLR R1
0438 8219 STD Y+1,R1
0439 8208 STD Y+0,R0
(0147) for(i=1;i<8;i++)
043A E061 LDI R22,1
043B C014 RJMP 0x0450
(0148) {
(0149) if((i!=min_id)&&(i!=max_id))
043C 156C CP R22,R12
043D F089 BEQ 0x044F
043E 156A CP R22,R10
043F F079 BEQ 0x044F
(0150) ret+=g_aAdValue[i];
0440 E082 LDI R24,2
0441 9F86 MUL R24,R22
0442 01F0 MOVW R30,R0
0443 E38D LDI R24,0x3D
0444 E091 LDI R25,1
0445 0FE8 ADD R30,R24
0446 1FF9 ADC R31,R25
0447 8020 LDD R2,Z+0
0448 8031 LDD R3,Z+1
0449 8008 LDD R0,Y+0
044A 8019 LDD R1,Y+1
044B 0C02 ADD R0,R2
044C 1C13 ADC R1,R3
044D 8219 STD Y+1,R1
044E 8208 STD Y+0,R0
044F 9563 INC R22
0450 3068 CPI R22,0x8
0451 F350 BCS 0x043C
(0151) }
(0152) if(min_id!=max_id)
0452 14CA CP R12,R10
0453 F041 BEQ 0x045C
(0153) ret/=5;
0454 E025 LDI R18,5
0455 E030 LDI R19,0
0456 8108 LDD R16,Y+0
0457 8119 LDD R17,Y+1
0458 D42C RCALL div16u
0459 8319 STD Y+1,R17
045A 8308 STD Y+0,R16
045B C007 RJMP 0x0463
(0154) else
(0155) ret/=6;
045C E026 LDI R18,6
045D E030 LDI R19,0
045E 8108 LDD R16,Y+0
045F 8119 LDD R17,Y+1
0460 D424 RCALL div16u
0461 8319 STD Y+1,R17
0462 8308 STD Y+0,R16
(0156)
(0157) ADCSRA=0;//关闭ADC
0463 2422 CLR R2
0464 B826 OUT 0x06,R2
(0158)
(0159) return ret;
0465 8108 LDD R16,Y+0
0466 8119 LDD R17,Y+1
0467 9622 ADIW R28,2
0468 D4D7 RCALL pop_gset5
0469 9508 RET
_vcon:
a --> Y+4
046A D413 RCALL push_arg4
046B D4ED RCALL push_gset2
(0160) }
(0161)
(0162) int vcon(long a)
(0163) {
(0164) return (a*1235)/AdcConvertStd();
046C DE42 RCALL _AdcConvertStd
046D 0118 MOVW R2,R16
046E 01FE MOVW R30,R28
046F 8044 LDD R4,Z+4
0470 8055 LDD R5,Z+5
0471 8066 LDD R6,Z+6
0472 8077 LDD R7,Z+7
0473 ED43 LDI R20,0xD3
0474 E054 LDI R21,4
0475 E060 LDI R22,0
0476 E070 LDI R23,0
0477 927A ST R7,-Y
0478 926A ST R6,-Y
0479 925A ST R5,-Y
047A 924A ST R4,-Y
047B 018A MOVW R16,R20
047C 019B MOVW R18,R22
047D D492 RCALL empy32s
047E 2444 CLR R4
047F 2455 CLR R5
0480 925A ST R5,-Y
0481 924A ST R4,-Y
0482 923A ST R3,-Y
0483 922A ST R2,-Y
0484 D420 RCALL div32s
0485 D4B6 RCALL pop_gset2
0486 9624 ADIW R28,4
0487 9508 RET
_temperature:
temper --> Y+0
r --> Y+8
0488 D3F5 RCALL push_arg4
0489 D4CF RCALL push_gset2
048A 9724 SBIW R28,4
(0165) }
(0166)
(0167) //进行温度转换
(0168)
(0169) long temperature(long r)//温度都乘上了10的5次
(0170) {
(0171) long temper;
(0172) if(r>908300||r<2500)
048B E04C LDI R20,0xC
048C ED5C LDI R21,0xDC
048D E06D LDI R22,0xD
048E E070 LDI R23,0
048F 01FE MOVW R30,R28
0490 8420 LDD R2,Z+8
0491 8431 LDD R3,Z+9
0492 8442 LDD R4,Z+10
0493 8453 LDD R5,Z+11
0494 1542 CP R20,R2
0495 0553 CPC R21,R3
0496 0564 CPC R22,R4
0497 0575 CPC R23,R5
0498 F074 BLT 0x04A7
0499 EC44 LDI R20,0xC4
049A E059 LDI R21,0x9
049B E060 LDI R22,0
049C E070 LDI R23,0
049D 01FE MOVW R30,R28
049E 8420 LDD R2,Z+8
049F 8431 LDD R3,Z+9
04A0 8442 LDD R4,Z+10
04A1 8453 LDD R5,Z+11
04A2 1624 CP R2,R20
04A3 0635 CPC R3,R21
04A4 0646 CPC R4,R22
04A5 0657 CPC R5,R23
04A6 F454 BGE 0x04B1
(0173) temper=0xffffffff;
04A7 EF4F LDI R20,0xFF
04A8 EF5F LDI R21,0xFF
04A9 EF6F LDI R22,0xFF
04AA EF7F LDI R23,0xFF
04AB 01FE MOVW R30,R28
04AC 8340 STD Z+0,R20
04AD 8351 STD Z+1,R21
04AE 8362 STD Z+2,R22
04AF 8373 STD Z+3,R23
04B0 C1BD RJMP 0x066E
(0174) else
(0175) if(r>580450)
04B1 E642 LDI R20,0x62
04B2 ED5B LDI R21,0xDB
04B3 E068 LDI R22,0x8
04B4 E070 LDI R23,0
04B5 01FE MOVW R30,R28
04B6 8420 LDD R2,Z+8
04B7 8431 LDD R3,Z+9
04B8 8442 LDD R4,Z+10
04B9 8453 LDD R5,Z+11
04BA 1542 CP R20,R2
04BB 0553 CPC R21,R3
04BC 0564 CPC R22,R4
04BD 0575 CPC R23,R5
04BE F504 BGE 0x04DF
(0176) temper=-2*r-1121800;
04BF 01FE MOVW R30,R28
04C0 8420 LDD R2,Z+8
04C1 8431 LDD R3,Z+9
04C2 8442 LDD R4,Z+10
04C3 8453 LDD R5,Z+11
04C4 EF4E LDI R20,0xFE
04C5 EF5F LDI R21,0xFF
04C6 EF6F LDI R22,0xFF
04C7 EF7F LDI R23,0xFF
04C8 925A ST R5,-Y
04C9 924A ST R4,-Y
04CA 923A ST R3,-Y
04CB 922A ST R2,-Y
04CC 018A MOVW R16,R20
04CD 019B MOVW R18,R22
04CE D441 RCALL empy32s
04CF E048 LDI R20,0x8
04D0 E15E LDI R21,0x1E
04D1 E161 LDI R22,0x11
04D2 E070 LDI R23,0
04D3 0118 MOVW R2,R16
04D4 0129 MOVW R4,R18
04D5 1A24 SUB R2,R20
04D6 0A35 SBC R3,R21
04D7 0A46 SBC R4,R22
04D8 0A57 SBC R5,R23
04D9 01FE MOVW R30,R28
04DA 8220 STD Z+0,R2
04DB 8231 STD Z+1,R3
04DC 8242 STD Z+2,R4
04DD 8253 STD Z+3,R5
04DE C18F RJMP 0x066E
(0177) else if(r>325400)
04DF E148 LDI R20,0x18
04E0 EF57 LDI R21,0xF7
04E1 E064 LDI R22,4
04E2 E070 LDI R23,0
04E3 01FE MOVW R30,R28
04E4 8420 LDD R2,Z+8
04E5 8431 LDD R3,Z+9
04E6 8442 LDD R4,Z+10
04E7 8453 LDD R5,Z+11
04E8 1542 CP R20,R2
04E9 0553 CPC R21,R3
04EA 0564 CPC R22,R4
04EB 0575 CPC R23,R5
04EC F504 BGE 0x050D
(0178) temper=-4*r-4840;
04ED 01FE MOVW R30,R28
04EE 8420 LDD R2,Z+8
04EF 8431 LDD R3,Z+9
04F0 8442 LDD R4,Z+10
04F1 8453 LDD R5,Z+11
04F2 EF4C LDI R20,0xFC
04F3 EF5F LDI R21,0xFF
04F4 EF6F LDI R22,0xFF
04F5 EF7F LDI R23,0xFF
04F6 925A ST R5,-Y
04F7 924A ST R4,-Y
04F8 923A ST R3,-Y
04F9 922A ST R2,-Y
04FA 018A MOVW R16,R20
04FB 019B MOVW R18,R22
04FC D413 RCALL empy32s
04FD EE48 LDI R20,0xE8
04FE E152 LDI R21,0x12
04FF E060 LDI R22,0
0500 E070 LDI R23,0
0501 0118 MOVW R2,R16
0502 0129 MOVW R4,R18
0503 1A24 SUB R2,R20
0504 0A35 SBC R3,R21
0505 0A46 SBC R4,R22
0506 0A57 SBC R5,R23
0507 01FE MOVW R30,R28
0508 8220 STD Z+0,R2
0509 8231 STD Z+1,R3
050A 8242 STD Z+2,R4
050B 8253 STD Z+3,R5
050C C161 RJMP 0x066E
(0179) else if(r>189400)
050D ED48 LDI R20,0xD8
050E EE53 LDI R21,0xE3
050F E062 LDI R22,2
0510 E070 LDI R23,0
0511 01FE MOVW R30,R28
0512 8420 LDD R2,Z+8
0513 8431 LDD R3,Z+9
0514 8442 LDD R4,Z+10
0515 8453 LDD R5,Z+11
0516 1542 CP R20,R2
0517 0553 CPC R21,R3
0518 0564 CPC R22,R4
0519 0575 CPC R23,R5
051A F504 BGE 0x053B
(0180) temper=-8*r+1113900;
051B 01FE MOVW R30,R28
051C 8420 LDD R2,Z+8
051D 8431 LDD R3,Z+9
051E 8442 LDD R4,Z+10
051F 8453 LDD R5,Z+11
0520 EF48 LDI R20,0xF8
0521 EF5F LDI R21,0xFF
0522 EF6F LDI R22,0xFF
0523 EF7F LDI R23,0xFF
0524 925A ST R5,-Y
0525 924A ST R4,-Y
0526 923A ST R3,-Y
0527 922A ST R2,-Y
0528 018A MOVW R16,R20
0529 019B MOVW R18,R22
052A D3E5 RCALL empy32s
052B E24C LDI R20,0x2C
052C EF5F LDI R21,0xFF
052D E160 LDI R22,0x10
052E E070 LDI R23,0
052F 0118 MOVW R2,R16
0530 0129 MOVW R4,R18
0531 0E24 ADD R2,R20
0532 1E35 ADC R3,R21
0533 1E46 ADC R4,R22
0534 1E57 ADC R5,R23
0535 01FE MOVW R30,R28
0536 8220 STD Z+0,R2
0537 8231 STD Z+1,R3
0538 8242 STD Z+2,R4
0539 8253 STD Z+3,R5
053A C133 RJMP 0x066E
(0181) else if(r>146350)
053B EA4E LDI R20,0xAE
053C E35B LDI R21,0x3B
053D E062 LDI R22,2
053E E070 LDI R23,0
053F 01FE MOVW R30,R28
0540 8420 LDD R2,Z+8
0541 8431 LDD R3,Z+9
0542 8442 LDD R4,Z+10
0543 8453 LDD R5,Z+11
0544 1542 CP R20,R2
0545 0553 CPC R21,R3
0546 0564 CPC R22,R4
0547 0575 CPC R23,R5
0548 F504 BGE 0x0569
(0182) temper=-10*r+1674800;
0549 01FE MOVW R30,R28
054A 8420 LDD R2,Z+8
054B 8431 LDD R3,Z+9
054C 8442 LDD R4,Z+10
054D 8453 LDD R5,Z+11
054E EF46 LDI R20,0xF6
054F EF5F LDI R21,0xFF
0550 EF6F LDI R22,0xFF
0551 EF7F LDI R23,0xFF
0552 925A ST R5,-Y
0553 924A ST R4,-Y
0554 923A ST R3,-Y
0555 922A ST R2,-Y
0556 018A MOVW R16,R20
0557 019B MOVW R18,R22
0558 D3B7 RCALL empy32s
0559 E340 LDI R20,0x30
055A E85E LDI R21,0x8E
055B E169 LDI R22,0x19
055C E070 LDI R23,0
055D 0118 MOVW R2,R16
055E 0129 MOVW R4,R18
055F 0E24 ADD R2,R20
0560 1E35 ADC R3,R21
0561 1E46 ADC R4,R22
0562 1E57 ADC R5,R23
0563 01FE MOVW R30,R28
0564 8220 STD Z+0,R2
0565 8231 STD Z+1,R3
0566 8242 STD Z+2,R4
0567 8253 STD Z+3,R5
0568 C105 RJMP 0x066E
(0183) else if(r>70670)
0569 E04E LDI R20,0xE
056A E154 LDI R21,0x14
056B E061 LDI R22,1
056C E070 LDI R23,0
056D 01FE MOVW R30,R28
056E 8420 LDD R2,Z+8
056F 8431 LDD R3,Z+9
0570 8442 LDD R4,Z+10
0571 8453 LDD R5,Z+11
0572 1542 CP R20,R2
0573 0553 CPC R21,R3
0574 0564 CPC R22,R4
0575 0575 CPC R23,R5
0576 F504 BGE 0x0597
(0184) temper=-20*r+3068600;
0577 01FE MOVW R30,R28
0578 8420 LDD R2,Z+8
0579 8431 LDD R3,Z+9
057A 8442 LDD R4,Z+10
057B 8453 LDD R5,Z+11
057C EE4C LDI R20,0xEC
057D EF5F LDI R21,0xFF
057E EF6F LDI R22,0xFF
057F EF7F LDI R23,0xFF
0580 925A ST R5,-Y
0581 924A ST R4,-Y
0582 923A ST R3,-Y
0583 922A ST R2,-Y
0584 018A MOVW R16,R20
0585 019B MOVW R18,R22
0586 D389 RCALL empy32s
0587 EB48 LDI R20,0xB8
0588 ED52 LDI R21,0xD2
0589 E26E LDI R22,0x2E
058A E070 LDI R23,0
058B 0118 MOVW R2,R16
058C 0129 MOVW R4,R18
058D 0E24 ADD R2,R20
058E 1E35 ADC R3,R21
058F 1E46 ADC R4,R22
0590 1E57 ADC R5,R23
0591 01FE MOVW R30,R28
0592 8220 STD Z+0,R2
0593 8231 STD Z+1,R3
0594 8242 STD Z+2,R4
0595 8253 STD Z+3,R5
0596 C0D7 RJMP 0x066E
(0185) else if(r>36415)
0597 E34F LDI R20,0x3F
0598 E85E LDI R21,0x8E
0599 E060 LDI R
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -