?? main.s
字號:
rjmp L35
X2:
.dbline 122
; {
.dbline 123
; intA += ( (float) MAX_A[0] * k / 375.0 );
movw R30,R28
ldd R2,z+0
ldd R3,z+1
ldd R4,z+2
ldd R5,z+3
st -y,R5
st -y,R4
st -y,R3
st -y,R2
ldi R16,<L30
ldi R17,>L30
rcall lpm32
st -y,R19
st -y,R18
st -y,R17
st -y,R16
lds R16,_MAX_A
lds R17,_MAX_A+1
lsr R17
ror R16
rcall int2fp
st -y,R19
st -y,R18
st -y,R17
st -y,R16
rcall empy32fs
lds R16,_MAX_A
lds R17,_MAX_A+1
andi R16,1
andi R17,0
rcall int2fp
st -y,R19
st -y,R18
st -y,R17
st -y,R16
rcall add32fs
ldi R16,<L30
ldi R17,>L30
rcall lpm32
st -y,R19
st -y,R18
st -y,R17
st -y,R16
movw R16,R10
lsr R17
ror R16
rcall int2fp
st -y,R19
st -y,R18
st -y,R17
st -y,R16
rcall empy32fs
movw R16,R10
andi R16,1
andi R17,0
rcall int2fp
st -y,R19
st -y,R18
st -y,R17
st -y,R16
rcall add32fs
rcall empy32fs
ldi R16,<L39
ldi R17,>L39
rcall lpm32
st -y,R19
st -y,R18
st -y,R17
st -y,R16
rcall div32fs
rcall add32f
movw R30,R28
std z+0,R16
std z+1,R17
std z+2,R18
std z+3,R19
.dbline 124
; }
rjmp L34
L35:
.dbline 125
; else if ( adc_data[1] < 136)
lds R4,_adc_data+4+2
lds R5,_adc_data+4+2+1
lds R2,_adc_data+4
lds R3,_adc_data+4+1
st -y,R5
st -y,R4
st -y,R3
st -y,R2
ldi R16,<L43
ldi R17,>L43
rcall lpm32
st -y,R19
st -y,R18
st -y,R17
st -y,R16
rcall cmp32f
brlt X3
rjmp L34
X3:
.dbline 126
; {
.dbline 127
; intA += ( (float) MAX_A[0] * k / 600.0 );
movw R30,R28
ldd R2,z+0
ldd R3,z+1
ldd R4,z+2
ldd R5,z+3
st -y,R5
st -y,R4
st -y,R3
st -y,R2
ldi R16,<L30
ldi R17,>L30
rcall lpm32
st -y,R19
st -y,R18
st -y,R17
st -y,R16
lds R16,_MAX_A
lds R17,_MAX_A+1
lsr R17
ror R16
rcall int2fp
st -y,R19
st -y,R18
st -y,R17
st -y,R16
rcall empy32fs
lds R16,_MAX_A
lds R17,_MAX_A+1
andi R16,1
andi R17,0
rcall int2fp
st -y,R19
st -y,R18
st -y,R17
st -y,R16
rcall add32fs
ldi R16,<L30
ldi R17,>L30
rcall lpm32
st -y,R19
st -y,R18
st -y,R17
st -y,R16
movw R16,R10
lsr R17
ror R16
rcall int2fp
st -y,R19
st -y,R18
st -y,R17
st -y,R16
rcall empy32fs
movw R16,R10
andi R16,1
andi R17,0
rcall int2fp
st -y,R19
st -y,R18
st -y,R17
st -y,R16
rcall add32fs
rcall empy32fs
ldi R16,<L44
ldi R17,>L44
rcall lpm32
st -y,R19
st -y,R18
st -y,R17
st -y,R16
rcall div32fs
rcall add32f
movw R30,R28
std z+0,R16
std z+1,R17
std z+2,R18
std z+3,R19
.dbline 128
; }
.dbline 129
; }
rjmp L34
L33:
.dbline 131
; else
; {
.dbline 132
; intA = 0.0;
ldi R16,<L25
ldi R17,>L25
rcall lpm32
movw R30,R28
std z+0,R16
std z+1,R17
std z+2,R18
std z+3,R19
.dbline 133
; }
L34:
.dbline 134
; n = (int)intA;
movw R30,R28
ldd R16,z+0
ldd R17,z+1
ldd R18,z+2
ldd R19,z+3
rcall fp2int
movw R12,R16
.dbline 135
; for ( i = 0; i < 4; i++ )
clr R14
clr R15
rjmp L48
L45:
.dbline 136
; {
.dbline 137
; pch[i] = n % 10 ;
ldi R18,10
ldi R19,0
movw R16,R12
rcall mod16u
mov R2,R16
movw R30,R14
ldd R0,y+22
ldd R1,y+23
add R30,R0
adc R31,R1
std z+0,R2
.dbline 138
; n /= 10.0;
ldi R16,<L30
ldi R17,>L30
rcall lpm32
st -y,R19
st -y,R18
st -y,R17
st -y,R16
movw R16,R12
lsr R17
ror R16
rcall int2fp
st -y,R19
st -y,R18
st -y,R17
st -y,R16
rcall empy32fs
movw R16,R12
andi R16,1
andi R17,0
rcall int2fp
st -y,R19
st -y,R18
st -y,R17
st -y,R16
rcall add32fs
ldi R16,<L51
ldi R17,>L51
rcall lpm32
st -y,R19
st -y,R18
st -y,R17
st -y,R16
rcall div32f
movw R30,R28
std z+8,R16
std z+9,R17
std z+10,R18
std z+11,R19
movw R30,R28
ldd R2,z+8
ldd R3,z+9
ldd R4,z+10
ldd R5,z+11
st -y,R5
st -y,R4
st -y,R3
st -y,R2
ldi R16,<L52
ldi R17,>L52
rcall lpm32
st -y,R19
st -y,R18
st -y,R17
st -y,R16
rcall cmp32f
brlt L49
movw R30,R28
ldd R2,z+8
ldd R3,z+9
ldd R4,z+10
ldd R5,z+11
st -y,R5
st -y,R4
st -y,R3
st -y,R2
ldi R16,<L52
ldi R17,>L52
rcall lpm32
st -y,R19
st -y,R18
st -y,R17
st -y,R16
rcall sub32f
rcall fp2int
movw R24,R16
subi R24,0 ; offset = 32768
sbci R25,128
movw R10,R24
rjmp L50
L49:
movw R30,R28
ldd R16,z+8
ldd R17,z+9
ldd R18,z+10
ldd R19,z+11
rcall fp2int
movw R10,R16
L50:
movw R12,R10
.dbline 139
L46:
.dbline 135
movw R24,R14
adiw R24,1
movw R14,R24
L48:
.dbline 135
movw R24,R14
cpi R24,4
ldi R30,0
cpc R25,R30
brsh X4
rjmp L45
X4:
.dbline -2
L24:
adiw R28,12
rcall pop_gset5
adiw R28,2
.dbline 0 ; func end
ret
.dbsym r k 10 i
.dbsym l temp 4 D
.dbsym l intA 0 D
.dbsym r n 12 i
.dbsym r i 14 i
.dbsym l pch 22 pc
.dbend
.dbfunc e SET_A _SET_A fV
; intA -> R20,R21
; i -> R22,R23
; pch -> R10,R11
.even
_SET_A::
rcall push_gset3
movw R10,R16
.dbline -1
.dbline 143
; }
; }
;
; void SET_A( unsigned char* pch )
; {
.dbline 145
; unsigned int intA,i;
; intA = MAX_A[0] ;
lds R20,_MAX_A
lds R21,_MAX_A+1
.dbline 146
; for ( i = 0; i < 4; i++ )
clr R22
clr R23
rjmp L57
L54:
.dbline 147
.dbline 148
ldi R18,10
ldi R19,0
movw R16,R20
rcall mod16u
movw R30,R22
add R30,R10
adc R31,R11
std z+0,R16
.dbline 149
ldi R18,10
ldi R19,0
movw R16,R20
rcall div16u
movw R20,R16
.dbline 150
L55:
.dbline 146
subi R22,255 ; offset = 1
sbci R23,255
L57:
.dbline 146
cpi R22,4
ldi R30,0
cpc R23,R30
brlo L54
.dbline 151
; {
; pch[i] = intA % 10;
; intA /= 10;
; }
; if ( pch[3] == 0 )
movw R30,R10
ldd R2,z+3
tst R2
brne L58
.dbline 152
; {
.dbline 153
; pch[3] = 0x0a;
ldi R24,10
movw R30,R10
std z+3,R24
.dbline 154
; if ( pch[2] == 0 )
movw R30,R10
ldd R2,z+2
tst R2
brne L60
.dbline 155
; {
.dbline 156
; pch[2] = 0x0a;
movw R30,R10
std z+2,R24
.dbline 157
; if ( pch[1] == 0 )
movw R30,R10
ldd R2,z+1
tst R2
brne L62
.dbline 158
; {
.dbline 159
; pch[1] = 0x0a;
movw R30,R10
std z+1,R24
.dbline 160
; }
L62:
.dbline 161
; }
L60:
.dbline 162
L58:
.dbline -2
L53:
rcall pop_gset3
.dbline 0 ; func end
ret
.dbsym r intA 20 i
.dbsym r i 22 i
.dbsym r pch 10 pc
.dbend
.dbfunc e CHECK_EDATA_A _CHECK_EDATA_A fV
.even
_CHECK_EDATA_A::
sbiw R28,2
.dbline -1
.dbline 166
; }
; }
;
; void CHECK_EDATA_A(void)
; {
.dbline 167
; if ( MAX_A[1] == MAX_A[2] )
lds R2,_MAX_A+4
lds R3,_MAX_A+4+1
lds R4,_MAX_A+2
lds R5,_MAX_A+2+1
cp R4,R2
cpc R5,R3
brne L65
.dbline 168
; {
.dbline 169
; if ( MAX_A[0] != MAX_A[1] )
lds R2,_MAX_A+2
lds R3,_MAX_A+2+1
lds R4,_MAX_A
lds R5,_MAX_A+1
cp R4,R2
cpc R5,R3
breq L66
.dbline 170
; {
.dbline 171
; MAX_A[0] = MAX_A[1];
lds R2,_MAX_A+2
lds R3,_MAX_A+2+1
sts _MAX_A+1,R3
sts _MAX_A,R2
.dbline 172
; eeprom_busy_wait();
rcall _eeprom_busy_wait
.dbline 173
; cli();
rcall _cli
.dbline 174
; eeprom_write_block((char*)MAX_A,(char*)0x20,6 );
ldi R24,6
ldi R25,0
std y+1,R25
std y+0,R24
ldi R18,32
ldi R19,0
ldi R16,<_MAX_A
ldi R17,>_MAX_A
rcall _eeprom_write_block
.dbline 175
; sei();
rcall _sei
.dbline 176
; }
.dbline 177
; }
rjmp L66
L65:
.dbline 179
.dbline 180
lds R2,_MAX_A
lds R3,_MAX_A+1
sts _MAX_A+2+1,R3
sts _MAX_A+2,R2
sts _MAX_A+4+1,R3
sts _MAX_A+4,R2
.dbline 181
rcall _eeprom_busy_wait
.dbline 182
rcall _cli
.dbline 183
ldi R24,6
ldi R25,0
std y+1,R25
std y+0,R24
ldi R18,32
ldi R19,0
ldi R16,<_MAX_A
ldi R17,>_MAX_A
rcall _eeprom_write_block
.dbline 184
rcall _sei
.dbline 185
L66:
.dbline -2
L64:
adiw R28,2
.dbline 0 ; func end
ret
.dbend
.dbfunc e SIGNAL _SIGNAL fI
; SIG_ADC -> R16,R17
.even
_SIGNAL::
.dbline -1
.dbline 190
; else
; {
; MAX_A[2] = MAX_A[1] = MAX_A[0];
; eeprom_busy_wait();
; cli();
; eeprom_write_block((char*)MAX_A,(char*)0x20,6 );
; sei();
; }
; }
;
; //#pragma interrupt_handler adc_isr:15
; SIGNAL(SIG_ADC)
; {
.dbline 191
; adc_data_temp = ADC & 0x3FF;
in R24,0x4
in R25,0x5
andi R25,3
sts _adc_data_temp+1,R25
sts _adc_data_temp,R24
.dbline -2
L75:
.dbline 0 ; func end
ret
.dbsym r SIG_ADC 16 I
.dbend
.area bss(ram, con, rel)
.dbfile F:\網絡下載\AVR\完整應用\電流電壓表\SOF\main.c
_UP_DOWN_POWER::
.blkb 1
.dbfile F:\網絡下載\AVR\完整應用\電流電壓表\SOF/init.h
.dbsym e UP_DOWN_POWER _UP_DOWN_POWER c
_KEY_AUTO_MAN_STATE::
.blkb 1
.dbsym e KEY_AUTO_MAN_STATE _KEY_AUTO_MAN_STATE c
_KEY_CC_CV_STATE::
.blkb 1
.dbsym e KEY_CC_CV_STATE _KEY_CC_CV_STATE c
_POWER_STATE::
.blkb 1
.dbsym e POWER_STATE _POWER_STATE c
_KEY_A_V_STATE::
.blkb 1
.dbsym e KEY_A_V_STATE _KEY_A_V_STATE c
_KEY_INPUT::
.blkb 1
.dbsym e KEY_INPUT _KEY_INPUT c
_KEY_TEMP::
.blkb 1
.dbsym e KEY_TEMP _KEY_TEMP c
_SET_STATU::
.blkb 1
.dbsym e SET_STATU _SET_STATU c
_TIMER_EN::
.blkb 1
.dbsym e TIMER_EN _TIMER_EN c
_TIMER_NUM::
.blkb 2
.dbsym e TIMER_NUM _TIMER_NUM i
_adc_data_temp::
.blkb 2
.dbsym e adc_data_temp _adc_data_temp i
.area lit(rom, con, rel)
L52:
.word 0x0,0x4700
L51:
.word 0x0,0x4120
L44:
.word 0x0,0x4416
L43:
.word 0x0,0x4308
L39:
.word 0x8000,0x43bb
L38:
.word 0x0,0x4204
L32:
.word 0x0,0x42c8
L31:
.word 0xc28f,0x40fd
L30:
.word 0x0,0x4000
L29:
.word 0x0,0x4000
L25:
.word 0x0,0x0
L17:
.word 0x0,0x4480
L16:
.word 0x0,0x44fa
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -