📄 function.lis
字号:
.module function.c
.area text(rom, con, rel)
0000 .dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\报警灯板CAN网\function.c
.area data(ram, con, rel)
0000 .dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\报警灯板CAN网\function.c
0000 _addr_led7::
0000 .blkb 2
.area idata
0000 0021 .word 8448
.area data(ram, con, rel)
0002 .dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\报警灯板CAN网\function.c
0002 .blkb 2
.area idata
0002 0029 .word 10496
.area data(ram, con, rel)
0004 .dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\报警灯板CAN网\function.c
0004 .blkb 2
.area idata
0004 0025 .word 9472
.area data(ram, con, rel)
0006 .dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\报警灯板CAN网\function.c
0006 .blkb 2
.area idata
0006 002D .word 11520
.area data(ram, con, rel)
0008 .dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\报警灯板CAN网\function.c
0008 .blkb 2
.area idata
0008 0023 .word 8960
.area data(ram, con, rel)
000A .dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\报警灯板CAN网\function.c
000A .blkb 2
.area idata
000A 002B .word 11008
.area data(ram, con, rel)
000C .dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\报警灯板CAN网\function.c
000C .dbsym e addr_led7 _addr_led7 A[12:6]i
000C _led7_data::
000C .blkb 2
.area idata
000C C0F9 .byte 192,249
.area data(ram, con, rel)
000E .dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\报警灯板CAN网\function.c
000E .blkb 2
.area idata
000E A4B0 .byte 164,176
.area data(ram, con, rel)
0010 .dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\报警灯板CAN网\function.c
0010 .blkb 2
.area idata
0010 9992 .byte 153,146
.area data(ram, con, rel)
0012 .dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\报警灯板CAN网\function.c
0012 .blkb 2
.area idata
0012 82F8 .byte 130,248
.area data(ram, con, rel)
0014 .dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\报警灯板CAN网\function.c
0014 .blkb 2
.area idata
0014 8090 .byte 128,144
.area data(ram, con, rel)
0016 .dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\报警灯板CAN网\function.c
0016 .blkb 2
.area idata
0016 8688 .byte 134,136
.area data(ram, con, rel)
0018 .dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\报警灯板CAN网\function.c
0018 .blkb 2
.area idata
0018 FFC8 .byte 255,200
.area data(ram, con, rel)
001A .dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\报警灯板CAN网\function.c
001A .blkb 2
.area idata
001A 8E86 .byte 142,134
.area data(ram, con, rel)
001C .dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\报警灯板CAN网\function.c
001C .blkb 2
.area idata
001C AFA3 .byte 175,163
.area data(ram, con, rel)
001E .dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\报警灯板CAN网\function.c
001E .dbsym e led7_data _led7_data A[18:18]c
001E _key::
001E .blkb 2
.area idata
001E A5A5 .byte 165,165
.area data(ram, con, rel)
0020 .dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\报警灯板CAN网\function.c
0020 .blkb 2
.area idata
0020 A5A5 .byte 165,165
.area data(ram, con, rel)
0022 .dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\报警灯板CAN网\function.c
0022 .blkb 2
.area idata
0022 A5A5 .byte 165,165
.area data(ram, con, rel)
0024 .dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\报警灯板CAN网\function.c
0024 .blkb 2
.area idata
0024 A5A5 .byte 165,165
.area data(ram, con, rel)
0026 .dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\报警灯板CAN网\function.c
0026 .dbsym e key _key A[8:8]c
.area text(rom, con, rel)
0000 .dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\报警灯板CAN网\function.c
0000 .dbfunc e current_jisuan _current_jisuan fi
0000 ; tt -> R10,R11
0000 ; temp -> y+8
0000 ; result -> y+4
0000 ; k0 -> y+0
0000 ; current -> y+28
0000 ; fullscal -> y+24
.even
0000 _current_jisuan::
0000 0E940000 xcall push_arg4
0004 0E940000 xcall push_gset4
0008 6097 sbiw R28,16
000A .dbline -1
000A .dbline 17
000A ; #include "main.h"
000A ;
000A ;
000A ; unsigned int addr_led7[6] = {0x2100,0x2900,0x2500,0x2d00,0x2300,0x2b00};
000A ; unsigned char led7_data[18]= {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x86,0x88,0xff,0xc8,0x8e,0x86,0xaf,0xa3};
000A ; SHD_LED pannel_led[48];
000A ; unsigned char key[8]={0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5};
000A ; extern unsigned char mode_flag ;
000A ; extern unsigned char T1,channel;
000A ; extern VCI_CAN_OBJ rece_data[20],sendmsg;
000A ; extern unsigned char soundoff[48];
000A ; unsigned char out_state;
000A ; VCI_CAN_OBJ sendmsg;
000A ; extern long id4;
000A ;
000A ; unsigned int current_jisuan(float fullscal,unsigned int current)
000A ; {
000A .dbline 20
000A ; float result,temp,k0;
000A ; unsigned int tt;
000A ; CLI();
000A F894 cli
000C .dbline 21
000C ; WDR();
000C A895 wdr
000E .dbline 22
000E ; temp = (float)(current/100.0); //电流测量值计算
000E 00E0 ldi R16,<L2
0010 10E0 ldi R17,>L2
0012 0E940000 xcall lpm32
0016 1801 movw R2,R16
0018 2901 movw R4,R18
001A 0C8D ldd R16,y+28
001C 1D8D ldd R17,y+29
001E 1695 lsr R17
0020 0795 ror R16
0022 0E940000 xcall int2fp
0026 3A93 st -y,R19
0028 2A93 st -y,R18
002A 1A93 st -y,R17
002C 0A93 st -y,R16
002E 8101 movw R16,R2
0030 9201 movw R18,R4
0032 0E940000 xcall fpmule2
0036 1801 movw R2,R16
0038 2901 movw R4,R18
003A 0C8D ldd R16,y+28
003C 1D8D ldd R17,y+29
003E 0170 andi R16,1
0040 1070 andi R17,0
0042 0E940000 xcall int2fp
0046 3A93 st -y,R19
0048 2A93 st -y,R18
004A 1A93 st -y,R17
004C 0A93 st -y,R16
004E 8101 movw R16,R2
0050 9201 movw R18,R4
0052 0E940000 xcall fpadd2
0056 1801 movw R2,R16
0058 2901 movw R4,R18
005A 00E0 ldi R16,<L3
005C 10E0 ldi R17,>L3
005E 0E940000 xcall lpm32
0062 3A93 st -y,R19
0064 2A93 st -y,R18
0066 1A93 st -y,R17
0068 0A93 st -y,R16
006A 8101 movw R16,R2
006C 9201 movw R18,R4
006E 0E940000 xcall fpdiv2
0072 0887 std y+8,R16
0074 1987 std y+9,R17
0076 2A87 std y+10,R18
0078 3B87 std y+11,R19
007A .dbline 24
007A ;
007A ; k0 = fullscal/16.0; //斜率计算
007A 288C ldd R2,y+24
007C 398C ldd R3,y+25
007E 4A8C ldd R4,y+26
0080 5B8C ldd R5,y+27
0082 00E0 ldi R16,<L4
0084 10E0 ldi R17,>L4
0086 0E940000 xcall lpm32
008A 3A93 st -y,R19
008C 2A93 st -y,R18
008E 1A93 st -y,R17
0090 0A93 st -y,R16
0092 8101 movw R16,R2
0094 9201 movw R18,R4
0096 0E940000 xcall fpdiv2
009A 0883 std y+0,R16
009C 1983 std y+1,R17
009E 2A83 std y+2,R18
00A0 3B83 std y+3,R19
00A2 .dbline 26
00A2 ;
00A2 ; result = k0*temp -4*k0; //显示值计算
00A2 0881 ldd R16,y+0
00A4 1981 ldd R17,y+1
00A6 2A81 ldd R18,y+2
00A8 3B81 ldd R19,y+3
00AA CE01 movw R24,R28
00AC 0896 adiw R24,8
00AE 9A93 st -y,R25
00B0 8A93 st -y,R24
00B2 0E940000 xcall fpmule1
00B6 1801 movw R2,R16
00B8 2901 movw R4,R18
00BA 00E0 ldi R16,<L5
00BC 10E0 ldi R17,>L5
00BE 0E940000 xcall lpm32
00C2 CE01 movw R24,R28
00C4 9A93 st -y,R25
00C6 8A93 st -y,R24
00C8 0E940000 xcall fpmule1x
00CC 8101 movw R16,R2
00CE 9201 movw R18,R4
00D0 0E940000 xcall fpsub2
00D4 0C83 std y+4,R16
00D6 1D83 std y+5,R17
00D8 2E83 std y+6,R18
00DA 3F83 std y+7,R19
00DC .dbline 28
00DC ;
00DC ; tt = (unsigned int )(result*100);
00DC 00E0 ldi R16,<L8
00DE 10E0 ldi R17,>L8
00E0 0E940000 xcall lpm32
00E4 CE01 movw R24,R28
00E6 0496 adiw R24,4
00E8 9A93 st -y,R25
00EA 8A93 st -y,R24
00EC 0E940000 xcall fpmule1
00F0 0C87 std y+12,R16
00F2 1D87 std y+13,R17
00F4 2E87 std y+14,R18
00F6 3F87 std y+15,R19
00F8 2C84 ldd R2,y+12
00FA 3D84 ldd R3,y+13
00FC 4E84 ldd R4,y+14
00FE 5F84 ldd R5,y+15
0100 00E0 ldi R16,<L9
0102 10E0 ldi R17,>L9
0104 0E940000 xcall lpm32
0108 3A93 st -y,R19
010A 2A93 st -y,R18
010C 1A93 st -y,R17
010E 0A93 st -y,R16
0110 8101 movw R16,R2
0112 9201 movw R18,R4
0114 0E940000 xcall fpcmp2
0118 BCF0 brlt L6
011A 2C84 ldd R2,y+12
011C 3D84 ldd R3,y+13
011E 4E84 ldd R4,y+14
0120 5F84 ldd R5,y+15
0122 00E0 ldi R16,<L9
0124 10E0 ldi R17,>L9
0126 0E940000 xcall lpm32
012A 3A93 st -y,R19
012C 2A93 st -y,R18
012E 1A93 st -y,R17
0130 0A93 st -y,R16
0132 8101 movw R16,R2
0134 9201 movw R18,R4
0136 0E940000 xcall fpsub2
013A 0E940000 xcall fpint
013E C801 movw R24,R16
0140 8050 subi R24,0 ; offset = 32768
0142 9048 sbci R25,128
0144 6C01 movw R12,R24
0146 07C0 xjmp L7
0148 L6:
0148 0C85 ldd R16,y+12
014A 1D85 ldd R17,y+13
014C 2E85 ldd R18,y+14
014E 3F85 ldd R19,y+15
0150 0E940000 xcall fpint
0154 6801 movw R12,R16
0156 L7:
0156 5601 movw R10,R12
0158 .dbline 29
0158 ; SEI();
0158 7894 sei
015A .dbline 31
015A ;
015A ; return tt;
015A 8501 movw R16,R10
015C .dbline -2
015C L1:
015C 6096 adiw R28,16
015E 0E940000 xcall pop_gset4
0162 2496 adiw R28,4
0164 .dbline 0 ; func end
0164 0895 ret
0166 .dbsym r tt 10 i
0166 .dbsym l temp 8 D
0166 .dbsym l result 4 D
0166 .dbsym l k0 0 D
0166 .dbsym l current 28 i
0166 .dbsym l fullscal 24 D
0166 .dbend
0166 .dbfunc e turn_display _turn_display fV
0166 ; t4 -> R22
0166 ; t3 -> R12
0166 ; t5 -> R20,R21
0166 ; t2 -> R10
0166 ; t1 -> R14
0166 ; data -> y+15
0166 ; point_flag -> y+13
0166 ; channel -> R20
.even
0166 _turn_display::
0166 3A93 st -y,r19
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -