?? public.lis
字號:
.module Public.c
.area text(rom, con, rel)
0000 .dbfile D:\ATP_AVR\Public.c
0000 .dbfunc e count_seconds _count_seconds fl
0000 ; k -> <dead>
0000 ; j -> <dead>
0000 ; ucM -> R12
0000 ; ucF -> R10
0000 ; ucS -> y+9
0000 ; ucR -> y+8
0000 ; ucY -> y+7
0000 ; ucN -> y+6
0000 ; ulSeconds -> y+0
0000 ; i -> R14
0000 ; nyrsfm -> R12,R13
.even
0000 _count_seconds::
0000 0E940000 xcall push_gset5
0004 6801 movw R12,R16
0006 2A97 sbiw R28,10
0008 .dbline -1
0008 .dbline 38
0008 ;
0008 ; //#include "public.h"
0008 ; #include <iom128v.h>
0008 ; #include <macros.h>
0008 ; #include <string.h>
0008 ; #include <math.h>
0008 ; #include "DC_Defines.h"
0008 ;
0008 ;
0008 ; #define u8 unsigned char
0008 ; #define s8 char
0008 ; #define u16 unsigned short
0008 ; #define s16 short
0008 ; #define u32 unsigned long
0008 ; #define s32 long
0008 ; #define pu16 (unsigned short *)
0008 ; #define ps16 (short *)
0008 ; #define pu32 (unsigned long *)
0008 ; #define ps32 (long *)
0008 ;
0008 ; //全局變量定義
0008 ; unsigned char ucUpDownTime[12];
0008 ; unsigned char ucNowTime[6];
0008 ; unsigned char ucLastFlashTime[6];
0008 ; unsigned char ucDTTime[6];
0008 ; unsigned char ucNowValuePer[8];
0008 ; unsigned char ucNowValuePerCOM[8];
0008 ; unsigned char FTREC[4];
0008 ; unsigned char TREC[4];
0008 ; unsigned char ucSystemConfig[80];
0008 ; unsigned char ucChannelConfig[80];
0008 ; unsigned char RECORD[1048];
0008 ;
0008 ;
0008 ;
0008 ; //計算該時間與2000-01-01 00:00:00 的間隔秒數
0008 ; unsigned long count_seconds(unsigned char * nyrsfm)
0008 ; {
0008 .dbline 42
0008 ; unsigned char ucN,ucY,ucR,ucS,ucF,ucM;//年月日時分秒
0008 ; unsigned char i,j,k;
0008 ; unsigned long ulSeconds;
0008 ; ucN=nyrsfm[0];
0008 F601 movw R30,R12
000A 2080 ldd R2,z+0
000C 2E82 std y+6,R2
000E .dbline 43
000E ; ucY=nyrsfm[1];
000E 2180 ldd R2,z+1
0010 2F82 std y+7,R2
0012 .dbline 44
0012 ; ucR=nyrsfm[2];
0012 F601 movw R30,R12
0014 2280 ldd R2,z+2
0016 2886 std y+8,R2
0018 .dbline 45
0018 ; ucS=nyrsfm[3];
0018 F601 movw R30,R12
001A 2380 ldd R2,z+3
001C 2986 std y+9,R2
001E .dbline 46
001E ; ucF=nyrsfm[4];
001E F601 movw R30,R12
0020 A480 ldd R10,z+4
0022 .dbline 47
0022 ; ucM=nyrsfm[5];
0022 F601 movw R30,R12
0024 C580 ldd R12,z+5
0026 .dbline 49
0026 ;
0026 ; ulSeconds=0;
0026 40E0 ldi R20,0
0028 50E0 ldi R21,0
002A 60E0 ldi R22,0
002C 70E0 ldi R23,0
002E FE01 movw R30,R28
0030 4083 std z+0,R20
0032 5183 std z+1,R21
0034 6283 std z+2,R22
0036 7383 std z+3,R23
0038 .dbline 51
0038 ;
0038 ; for(i=0;i<ucN;i++)
0038 EE24 clr R14
003A 2CC0 xjmp L5
003C L2:
003C .dbline 52
003C ; {
003C .dbline 53
003C ; if((i%4)==0) ulSeconds+=((unsigned long)366)*((unsigned long)24)*((unsigned long)3600); //如果是閏年,加上366的秒數
003C 14E0 ldi R17,4
003E 0E2D mov R16,R14
0040 0E940000 xcall mod8u
0044 0023 tst R16
0046 99F4 brne L6
0048 .dbline 53
0048 40E0 ldi R20,0
004A 55E8 ldi R21,133
004C 62EE ldi R22,226
004E 71E0 ldi R23,1
0050 FE01 movw R30,R28
0052 2080 ldd R2,z+0
0054 3180 ldd R3,z+1
0056 4280 ldd R4,z+2
0058 5380 ldd R5,z+3
005A 240E add R2,R20
005C 351E adc R3,R21
005E 461E adc R4,R22
0060 571E adc R5,R23
0062 FE01 movw R30,R28
0064 2082 std z+0,R2
0066 3182 std z+1,R3
0068 4282 std z+2,R4
006A 5382 std z+3,R5
006C 12C0 xjmp L7
006E L6:
006E .dbline 54
006E ; else ulSeconds+=((unsigned long)365)*((unsigned long)24)*((unsigned long)3600); //如果是平年,加上365的秒數
006E 40E8 ldi R20,128
0070 53E3 ldi R21,51
0072 61EE ldi R22,225
0074 71E0 ldi R23,1
0076 FE01 movw R30,R28
0078 2080 ldd R2,z+0
007A 3180 ldd R3,z+1
007C 4280 ldd R4,z+2
007E 5380 ldd R5,z+3
0080 240E add R2,R20
0082 351E adc R3,R21
0084 461E adc R4,R22
0086 571E adc R5,R23
0088 FE01 movw R30,R28
008A 2082 std z+0,R2
008C 3182 std z+1,R3
008E 4282 std z+2,R4
0090 5382 std z+3,R5
0092 L7:
0092 .dbline 55
0092 L3:
0092 .dbline 51
0092 E394 inc R14
0094 L5:
0094 .dbline 51
0094 0E80 ldd R0,y+6
0096 E014 cp R14,R0
0098 08F4 brsh X1
009A D0CF xjmp L2
009C X1:
009C .dbline 56
009C ; }
009C ; for(i=1;i<ucY;i++)
009C EE24 clr R14
009E E394 inc R14
00A0 3FC1 xjmp L11
00A2 L8:
00A2 .dbline 57
00A2 ; {
00A2 .dbline 58
00A2 ; switch(i)
00A2 2E2C mov R2,R14
00A4 3324 clr R3
00A6 3D82 std y+5,R3
00A8 2C82 std y+4,R2
00AA C101 movw R24,R2
00AC 8130 cpi R24,1
00AE E0E0 ldi R30,0
00B0 9E07 cpc R25,R30
00B2 09F4 brne X2
00B4 38C0 xjmp L15
00B6 X2:
00B6 8230 cpi R24,2
00B8 E0E0 ldi R30,0
00BA 9E07 cpc R25,R30
00BC 09F4 brne X3
00BE 46C0 xjmp L16
00C0 X3:
00C0 8330 cpi R24,3
00C2 E0E0 ldi R30,0
00C4 9E07 cpc R25,R30
00C6 09F4 brne X4
00C8 6DC0 xjmp L19
00CA X4:
00CA 8430 cpi R24,4
00CC E0E0 ldi R30,0
00CE 9E07 cpc R25,R30
00D0 09F4 brne X5
00D2 7BC0 xjmp L20
00D4 X5:
00D4 8530 cpi R24,5
00D6 E0E0 ldi R30,0
00D8 9E07 cpc R25,R30
00DA 09F4 brne X6
00DC 89C0 xjmp L21
00DE X6:
00DE 8630 cpi R24,6
00E0 E0E0 ldi R30,0
00E2 9E07 cpc R25,R30
00E4 09F4 brne X7
00E6 97C0 xjmp L22
00E8 X7:
00E8 8730 cpi R24,7
00EA E0E0 ldi R30,0
00EC 9E07 cpc R25,R30
00EE 09F4 brne X8
00F0 A5C0 xjmp L23
00F2 X8:
00F2 8830 cpi R24,8
00F4 E0E0 ldi R30,0
00F6 9E07 cpc R25,R30
00F8 09F4 brne X9
00FA B3C0 xjmp L24
00FC X9:
00FC 8930 cpi R24,9
00FE E0E0 ldi R30,0
0100 9E07 cpc R25,R30
0102 09F4 brne X10
0104 C1C0 xjmp L25
0106 X10:
0106 8A30 cpi R24,10
0108 E0E0 ldi R30,0
010A 9E07 cpc R25,R30
010C 09F4 brne X11
010E CFC0 xjmp L26
0110 X11:
0110 8B30 cpi R24,11
0112 E0E0 ldi R30,0
0114 9E07 cpc R25,R30
0116 09F4 brne X12
0118 DDC0 xjmp L27
011A X12:
011A 8C30 cpi R24,12
011C E0E0 ldi R30,0
011E 9E07 cpc R25,R30
0120 09F4 brne X13
0122 EBC0 xjmp L28
0124 X13:
0124 FCC0 xjmp L13
0126 X0:
0126 .dbline 59
0126 ; {
0126 L15:
0126 .dbline 61
0126 ; case 1:
0126 ; ulSeconds+=((unsigned long)31)*((unsigned long)24)*((unsigned long)3600);
0126 40E8 ldi R20,128
0128 5EED ldi R21,222
012A 68E2 ldi R22,40
012C 70E0 ldi R23,0
012E FE01 movw R30,R28
0130 2080 ldd R2,z+0
0132 3180 ldd R3,z+1
0134 4280 ldd R4,z+2
0136 5380 ldd R5,z+3
0138 240E add R2,R20
013A 351E adc R3,R21
013C 461E adc R4,R22
013E 571E adc R5,R23
0140 FE01 movw R30,R28
0142 2082 std z+0,R2
0144 3182 std z+1,R3
0146 4282 std z+2,R4
0148 5382 std z+3,R5
014A .dbline 62
014A ; break;
014A E9C0 xjmp L13
014C L16:
014C .dbline 64
014C ; case 2:
014C ; if((ucN%4)==0) ulSeconds+=((unsigned long)29)*((unsigned long)24)*((unsigned long)3600);
014C 14E0 ldi R17,4
014E 0E81 ldd R16,y+6
0150 0E940000 xcall mod8u
0154 0023 tst R16
0156 99F4 brne L17
0158 .dbline 64
0158 40E8 ldi R20,128
015A 5BE3 ldi R21,59
015C 66E2 ldi R22,38
015E 70E0 ldi R23,0
0160 FE01 movw R30,R28
0162 2080 ldd R2,z+0
0164 3180 ldd R3,z+1
0166 4280 ldd R4,z+2
0168 5380 ldd R5,z+3
016A 240E add R2,R20
016C 351E adc R3,R21
016E 461E adc R4,R22
0170 571E adc R5,R23
0172 FE01 movw R30,R28
0174 2082 std z+0,R2
0176 3182 std z+1,R3
0178 4282 std z+2,R4
017A 5382 std z+3,R5
017C D0C0 xjmp L13
017E L17:
017E .dbline 65
017E ; else ulSeconds+=((unsigned long)28)*((unsigned long)24)*((unsigned long)3600);
017E 40E0 ldi R20,0
0180 5AEE ldi R21,234
0182 64E2 ldi R22,36
0184 70E0 ldi R23,0
0186 FE01 movw R30,R28
0188 2080 ldd R2,z+0
018A 3180 ldd R3,z+1
018C 4280 ldd R4,z+2
018E 5380 ldd R5,z+3
0190 240E add R2,R20
0192 351E adc R3,R21
0194 461E adc R4,R22
0196 571E adc R5,R23
0198 FE01 movw R30,R28
019A 2082 std z+0,R2
019C 3182 std z+1,R3
019E 4282 std z+2,R4
01A0 5382 std z+3,R5
01A2 .dbline 66
01A2 ; break;
01A2 BDC0 xjmp L13
01A4 L19:
01A4 .dbline 68
01A4 ; case 3:
01A4 ; ulSeconds+=((unsigned long)31)*((unsigned long)24)*((unsigned long)3600);
01A4 40E8 ldi R20,128
01A6 5EED ldi R21,222
01A8 68E2 ldi R22,40
01AA 70E0 ldi R23,0
01AC FE01 movw R30,R28
01AE 2080 ldd R2,z+0
01B0 3180 ldd R3,z+1
01B2 4280 ldd R4,z+2
01B4 5380 ldd R5,z+3
01B6 240E add R2,R20
01B8 351E adc R3,R21
01BA 461E adc R4,R22
01BC 571E adc R5,R23
01BE FE01 movw R30,R28
01C0 2082 std z+0,R2
01C2 3182 std z+1,R3
01C4 4282 std z+2,R4
01C6 5382 std z+3,R5
01C8 .dbline 69
01C8 ; break;
01C8 AAC0 xjmp L13
01CA L20:
01CA .dbline 71
01CA ; case 4:
01CA ; ulSeconds+=((unsigned long)30)*((unsigned long)24)*((unsigned long)3600);
01CA 40E0 ldi R20,0
01CC 5DE8 ldi R21,141
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -