?? public.s
字號:
ldd R17,z+1
ldd R18,z+2
ldd R19,z+3
.dbline -2
L1:
adiw R28,10
xcall pop_gset5
.dbline 0 ; func end
ret
.dbsym l k 1 c
.dbsym l j 1 c
.dbsym r ucM 12 c
.dbsym r ucF 10 c
.dbsym l ucS 9 c
.dbsym l ucR 8 c
.dbsym l ucY 7 c
.dbsym l ucN 6 c
.dbsym l ulSeconds 0 l
.dbsym r i 14 c
.dbsym r nyrsfm 12 pc
.dbend
.dbfunc e SpanSecond _SpanSecond fl
; ultemp2 -> y+4
; ultemp1 -> y+0
; nyrsfm2 -> R10,R11
; nyrsfm1 -> R12,R13
.even
_SpanSecond::
xcall push_gset4
movw R10,R18
movw R12,R16
sbiw R28,8
.dbline -1
.dbline 112
; }
;
; //計算time1-time2的時間差,返回差值,單位s
; unsigned long SpanSecond(unsigned char * nyrsfm1,unsigned char * nyrsfm2)
; {
.dbline 115
; unsigned long ultemp1,ultemp2;
;
; ultemp1=count_seconds(nyrsfm1);
movw R16,R12
xcall _count_seconds
movw R30,R28
std z+0,R16
std z+1,R17
std z+2,R18
std z+3,R19
.dbline 116
; ultemp2=count_seconds(nyrsfm2);
movw R16,R10
xcall _count_seconds
movw R30,R28
std z+4,R16
std z+5,R17
std z+6,R18
std z+7,R19
.dbline 118
;
; if(ultemp1>ultemp2) return (ultemp1-ultemp2);
movw R30,R28
ldd R2,z+4
ldd R3,z+5
ldd R4,z+6
ldd R5,z+7
movw R30,R28
ldd R6,z+0
ldd R7,z+1
ldd R8,z+2
ldd R9,z+3
cp R2,R6
cpc R3,R7
cpc R4,R8
cpc R5,R9
brsh L30
.dbline 118
movw R30,R28
ldd R2,z+4
ldd R3,z+5
ldd R4,z+6
ldd R5,z+7
movw R30,R28
ldd R6,z+0
ldd R7,z+1
ldd R8,z+2
ldd R9,z+3
sub R6,R2
sbc R7,R3
sbc R8,R4
sbc R9,R5
movw R16,R6
movw R18,R8
xjmp L29
L30:
.dbline 119
; else return 0;
ldi R16,0
ldi R17,0
ldi R18,0
ldi R19,0
.dbline -2
L29:
adiw R28,8
xcall pop_gset4
.dbline 0 ; func end
ret
.dbsym l ultemp2 4 l
.dbsym l ultemp1 0 l
.dbsym r nyrsfm2 10 pc
.dbsym r nyrsfm1 12 pc
.dbend
.dbfunc e SpanDay1 _SpanDay1 fl
; ulDays2 -> y+4
; ulDays1 -> y+0
; nyr2 -> R10,R11
; nyr1 -> R12,R13
.even
_SpanDay1::
xcall push_gset4
movw R10,R18
movw R12,R16
sbiw R28,8
.dbline -1
.dbline 123
; }
;
; unsigned long SpanDay1(unsigned char * nyr1,unsigned char * nyr2) //每月按31天算
; {
.dbline 125
; unsigned long ulDays1,ulDays2;
; ulDays1=((unsigned long)nyr1[0])*((unsigned long)12)*((unsigned long)31)+((unsigned long)(nyr1[1]-1))*((unsigned long)31)+((unsigned long)(nyr1[2]-1));
movw R30,R12
ldd R2,z+0
clr R3
clr R4
clr R5
ldi R20,12
ldi R21,0
ldi R22,0
ldi R23,0
st -y,R5
st -y,R4
st -y,R3
st -y,R2
movw R16,R20
movw R18,R22
xcall empy32u
ldi R20,31
ldi R21,0
ldi R22,0
ldi R23,0
st -y,R19
st -y,R18
st -y,R17
st -y,R16
movw R16,R20
movw R18,R22
xcall empy32u
movw R2,R16
movw R4,R18
movw R30,R12
ldd R24,z+1
clr R25
sbiw R24,1
movw R6,R24
clr R8
sbrc R7,7
com R8
clr R9
sbrc R8,7
com R9
ldi R20,31
ldi R21,0
ldi R22,0
ldi R23,0
st -y,R9
st -y,R8
st -y,R7
st -y,R6
movw R16,R20
movw R18,R22
xcall empy32u
add R2,R16
adc R3,R17
adc R4,R18
adc R5,R19
movw R30,R12
ldd R24,z+2
clr R25
sbiw R24,1
movw R6,R24
clr R8
sbrc R7,7
com R8
clr R9
sbrc R8,7
com R9
add R2,R6
adc R3,R7
adc R4,R8
adc R5,R9
movw R30,R28
std z+0,R2
std z+1,R3
std z+2,R4
std z+3,R5
.dbline 126
; ulDays2=((unsigned long)nyr2[0])*((unsigned long)12)*((unsigned long)31)+((unsigned long)(nyr2[1]-1))*((unsigned long)31)+((unsigned long)(nyr2[2]-1));
movw R30,R10
ldd R2,z+0
clr R3
clr R4
clr R5
ldi R20,12
ldi R21,0
ldi R22,0
ldi R23,0
st -y,R5
st -y,R4
st -y,R3
st -y,R2
movw R16,R20
movw R18,R22
xcall empy32u
ldi R20,31
ldi R21,0
ldi R22,0
ldi R23,0
st -y,R19
st -y,R18
st -y,R17
st -y,R16
movw R16,R20
movw R18,R22
xcall empy32u
movw R2,R16
movw R4,R18
movw R30,R10
ldd R24,z+1
clr R25
sbiw R24,1
movw R6,R24
clr R8
sbrc R7,7
com R8
clr R9
sbrc R8,7
com R9
ldi R20,31
ldi R21,0
ldi R22,0
ldi R23,0
st -y,R9
st -y,R8
st -y,R7
st -y,R6
movw R16,R20
movw R18,R22
xcall empy32u
add R2,R16
adc R3,R17
adc R4,R18
adc R5,R19
movw R30,R10
ldd R24,z+2
clr R25
sbiw R24,1
movw R6,R24
clr R8
sbrc R7,7
com R8
clr R9
sbrc R8,7
com R9
add R2,R6
adc R3,R7
adc R4,R8
adc R5,R9
movw R30,R28
std z+4,R2
std z+5,R3
std z+6,R4
std z+7,R5
.dbline 127
; if(ulDays1>ulDays2) return (ulDays1-ulDays2);
movw R30,R28
ldd R2,z+4
ldd R3,z+5
ldd R4,z+6
ldd R5,z+7
movw R30,R28
ldd R6,z+0
ldd R7,z+1
ldd R8,z+2
ldd R9,z+3
cp R2,R6
cpc R3,R7
cpc R4,R8
cpc R5,R9
brsh L33
.dbline 127
movw R30,R28
ldd R2,z+4
ldd R3,z+5
ldd R4,z+6
ldd R5,z+7
movw R30,R28
ldd R6,z+0
ldd R7,z+1
ldd R8,z+2
ldd R9,z+3
sub R6,R2
sbc R7,R3
sbc R8,R4
sbc R9,R5
movw R16,R6
movw R18,R8
xjmp L32
L33:
.dbline 128
; else return 0;
ldi R16,0
ldi R17,0
ldi R18,0
ldi R19,0
.dbline -2
L32:
adiw R28,8
xcall pop_gset4
.dbline 0 ; func end
ret
.dbsym l ulDays2 4 l
.dbsym l ulDays1 0 l
.dbsym r nyr2 10 pc
.dbsym r nyr1 12 pc
.dbend
.dbfunc e SpanMonth _SpanMonth fl
; ulMonth2 -> y+4
; ulMonth1 -> y+0
; ny2 -> R10,R11
; ny1 -> R12,R13
.even
_SpanMonth::
xcall push_gset4
movw R10,R18
movw R12,R16
sbiw R28,8
.dbline -1
.dbline 132
; }
;
; unsigned long SpanMonth(unsigned char * ny1,unsigned char * ny2)
; {
.dbline 134
; unsigned long ulMonth1,ulMonth2;
; ulMonth1=((unsigned long)ny1[0])*((unsigned long)12)+ny1[1]-1;
movw R30,R12
ldd R2,z+0
clr R3
clr R4
clr R5
ldi R20,12
ldi R21,0
ldi R22,0
ldi R23,0
st -y,R5
st -y,R4
st -y,R3
st -y,R2
movw R16,R20
movw R18,R22
xcall empy32u
movw R2,R16
movw R4,R18
movw R30,R12
ldd R6,z+1
clr R7
clr R8
clr R9
add R2,R6
adc R3,R7
adc R4,R8
adc R5,R9
ldi R20,1
ldi R21,0
ldi R22,0
ldi R23,0
sub R2,R20
sbc R3,R21
sbc R4,R22
sbc R5,R23
movw R30,R28
std z+0,R2
std z+1,R3
std z+2,R4
std z+3,R5
.dbline 135
; ulMonth2=((unsigned long)ny2[0])*((unsigned long)12)+ny2[1]-1;
movw R30,R10
ldd R2,z+0
clr R3
clr R4
clr R5
ldi R20,12
ldi R21,0
ldi R22,0
ldi R23,0
st -y,R5
st -y,R4
st -y,R3
st -y,R2
movw R16,R20
movw R18,R22
xcall empy32u
movw R2,R16
movw R4,R18
movw R30,R10
ldd R6,z+1
clr R7
clr R8
clr R9
add R2,R6
adc R3,R7
adc R4,R8
adc R5,R9
ldi R20,1
ldi R21,0
ldi R22,0
ldi R23,0
sub R2,R20
sbc R3,R21
sbc R4,R22
sbc R5,R23
movw R30,R28
std z+4,R2
std z+5,R3
std z+6,R4
std z+7,R5
.dbline 136
; if(ulMonth1>ulMonth2) return (ulMonth1-ulMonth2);
movw R30,R28
ldd R2,z+4
ldd R3,z+5
ldd R4,z+6
ldd R5,z+7
movw R30,R28
ldd R6,z+0
ldd R7,z+1
ldd R8,z+2
ldd R9,z+3
cp R2,R6
cpc R3,R7
cpc R4,R8
cpc R5,R9
brsh L36
.dbline 136
movw R30,R28
ldd R2,z+4
ldd R3,z+5
ldd R4,z+6
ldd R5,z+7
movw R30,R28
ldd R6,z+0
ldd R7,z+1
ldd R8,z+2
ldd R9,z+3
sub R6,R2
sbc R7,R3
sbc R8,R4
sbc R9,R5
movw R16,R6
movw R18,R8
xjmp L35
L36:
.dbline 137
; else return 0;
ldi R16,0
ldi R17,0
ldi R18,0
ldi R19,0
.dbline -2
L35:
adiw R28,8
xcall pop_gset4
.dbline 0 ; func end
ret
.dbsym l ulMonth2 4 l
.dbsym l ulMonth1 0 l
.dbsym r ny2 10 pc
.dbsym r ny1 12 pc
.dbend
.dbfunc e SpanYear _SpanYear fl
; n2 -> R18,R19
; n1 -> R16,R17
.even
_SpanYear::
xcall push_gset2
.dbline -1
.dbline 141
; }
;
; unsigned long SpanYear(unsigned char * n1,unsigned char * n2)
; {
.dbline 142
; if(*n1>*n2) return (*n1-*n2);
movw R30,R18
ldd R2,z+0
movw R30,R16
ldd R3,z+0
cp R2,R3
brsh L39
.dbline 142
movw R30,R18
ldd R2,z+0
clr R3
movw R30,R16
ldd R4,z+0
clr R5
sub R4,R2
sbc R5,R3
movw R2,R4
clr R4
sbrc R3,7
com R4
clr R5
sbrc R4,7
com R5
movw R16,R2
movw R18,R4
xjmp L38
L39:
.dbline 143
; else return 0;
ldi R16,0
ldi R17,0
ldi R18,0
ldi R19,0
.dbline -2
L38:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r n2 18 pc
.dbsym r n1 16 pc
.dbend
.dbfunc e delay _delay fV
; ticks -> R16
.even
_delay::
.dbline -1
.dbline 153
; }
;
;
; // delay time=ticks * 6 +15 clock time tosc
; // the fosc=11.0592MHz in this application,
; // when ticks=0x00: 1.356us
; // when ticks=0xFF: 139.7us
;
; void delay(unsigned char ticks)
; {
L42:
.dbline 154
L43:
.dbline 154
; while(ticks--);
mov R2,R16
clr R3
subi R16,1
tst R2
brne L42
.dbline -2
L41:
.dbline 0 ; func end
ret
.dbsym r ticks 16 c
.dbend
.dbfunc e delayus _delayus fV
; ticks -> R16
.even
_delayus::
.dbline -1
.dbline 159
; }
;
; //
; void delayus(unsigned char ticks)
; {
L46:
.dbline 160
L47:
.dbline 160
; while(ticks--);
mov R2,R16
clr R3
subi R16,1
tst R2
brne L46
.dbline -2
L45:
.dbline 0 ; func end
ret
.dbsym r ticks 16 c
.dbend
.dbfunc e delayms _delayms fV
; i -> R20
; j -> R22
; k -> R10
; ticks -> R16
.even
_delayms::
xcall push_gset3
.dbline -1
.dbline 164
; }
;
; void delayms(unsigned char ticks)
; {
.dbline 166
; unsigned char i,j,k;
; for(i=0;i<ticks;i++)
clr R20
xjmp L53
L50:
.dbline 167
; {
.dbline 168
; for(j=0;j<10;j++)
clr R22
xjmp L57
L54:
.dbline 169
; {
.dbline 170
; k=182;
ldi R24,182
mov R10,R24
L58:
.dbline 171
L59:
.dbline 171
mov R2,R10
clr R3
mov R24,R2
subi R24,1
mov R10,R24
tst R2
brne L58
.dbline 172
L55:
.dbline 168
inc R22
L57:
.dbline 168
cpi R22,10
brlo L54
.dbline 173
L51:
.dbline 166
inc R20
L53:
.dbline 166
cp R20,R16
brlo L50
.dbline -2
L49:
xcall pop_gset3
.dbline 0 ; func end
ret
.dbsym r i 20 c
.dbsym r j 22 c
.dbsym r k 10 c
.dbsym r ticks 16 c
.dbend
.dbfunc e c_wd _c_wd fV
.even
_c_wd::
.dbline -1
.dbline 178
; while(k--); //about 100us
; }
; }
; }
;
;
; void c_wd(void)
; {
.dbline 179
; SETBIT(PORTC, BIT1);
sbi 0x15,1
.dbline 180
; NOP();
nop
.dbline 181
; NOP();
nop
.dbline 182
; CLEARBIT(PORTC, BIT1);
cbi 0x15,1
.dbline -2
L61:
.dbline 0 ; func end
ret
.dbend
.area bss(ram, con, rel)
.dbfile D:\ATP_AVR\Public.c
_RECORD::
.blkb 1048
.dbsym e RECORD _RECORD A[1048:1048]c
_ucChannelConfig::
.blkb 80
.dbsym e ucChannelConfig _ucChannelConfig A[80:80]c
_ucSystemConfig::
.blkb 80
.dbsym e ucSystemConfig _ucSystemConfig A[80:80]c
_TREC::
.blkb 4
.dbsym e TREC _TREC A[4:4]c
_FTREC::
.blkb 4
.dbsym e FTREC _FTREC A[4:4]c
_ucNowValuePerCOM::
.blkb 8
.dbsym e ucNowValuePerCOM _ucNowValuePerCOM A[8:8]c
_ucNowValuePer::
.blkb 8
.dbsym e ucNowValuePer _ucNowValuePer A[8:8]c
_ucDTTime::
.blkb 6
.dbsym e ucDTTime _ucDTTime A[6:6]c
_ucLastFlashTime::
.blkb 6
.dbsym e ucLastFlashTime _ucLastFlashTime A[6:6]c
_ucNowTime::
.blkb 6
.dbsym e ucNowTime _ucNowTime A[6:6]c
_ucUpDownTime::
.blkb 12
.dbsym e ucUpDownTime _ucUpDownTime A[12:12]c
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -