⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rtc.asm

📁 FE42X单相防窃电电表DEMO(编译器 AQ430 AQ430 V2.0.6.5)
💻 ASM
📖 第 1 页 / 共 3 页
字号:
; {
DBG81:
; 	int i;
;     int days;
; 	days = rtc.day + 6;
DBG82:
	mov.b	&_rtc+0x3,r12
	add	#0x6,r12
DBG83:
; 	for (i = 1;  i < rtc.month;  i++)
	mov	#0x1,r13
	mov.b	&_rtc+0x5,r14
	cmp	r14,r13
	jge	weekday_L1
weekday_L2:
; 		days += month_lengths[i];
DBG84:
	mov.b	_month_lengths(r13),r14
	sxt	r14
	add	r14,r12
	add	#0x1,r13
	mov.b	&_rtc+0x5,r14
	cmp	r14,r13
	jl	weekday_L2
weekday_L1:
; 	if ((rtc.year & 0x03) == 0  &&  rtc.month <= 2)
DBG85:
	bit.b	#0x3,&_rtc+0x6
	jne	weekday_L3
	mov.b	#0x2,r13
	cmp.b	&_rtc+0x5,r13
	jnc	weekday_L3
DBG86:
; 		days--;
	sub	#0x1,r12
DBG87:
weekday_L3:
; 	days += rtc.year;
	mov.b	&_rtc+0x6,r13
	add	r13,r12
DBG88:
; 	days += (rtc.year >> 2);
	mov.b	&_rtc+0x6,r13
	clrc
	rrc	r13
	rra	r13
	add	r13,r12
DBG89:
; 	days %= 7;
	mov	#0x7,r13
DBG92:
	call	#__sdiv16
DBG90:
DBG93:
; 	return days;
	mov	r13,r12
DBG94:
DBG91:
; EXIT
	ret
	.dbgseg dbg_syms
	.long 0x0
	.long DBG17
	.long 0x0
	.long 0x0
	.long 0x10002
	.long 0x0
	.long DBG18
	.long 0x2
	.long 0x0
	.long 0x10002
	.long 0x504e5f5f
	.long 0x534d5241
	.long 0x0
	.long 0x0
	.long 0x10002
DBG2:
	.long 0x62622e
	.long 0x0
	.long DBG83
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0xb
	.long 0x0
	.long DBG95
	.long 0x0
	.long 0x73796164
	.long 0x0
	.long 0xc0102
	.long 0x4
	.long 0x4ffff
DBG95:
	.long 0x62622e
	.long 0x0
	.long DBG84
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0xc
	.long 0x0
	.long DBG96
	.long 0x0
	.long 0x69
	.long 0x0
	.long 0xd0102
	.long 0x4
	.long 0x4ffff
	.long 0x62652e
	.long 0x0
	.long DBG86
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0xf
	.long 0x0
	.long 0x0
	.long 0x0
DBG96:
	.long 0x62622e
	.long 0x0
	.long DBG92
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0x15
	.long 0x0
	.long DBG97
	.long 0x0
	.long 0x0
	.long DBG98
	.long 0x0
	.long 0x0
	.long 0x10002
	.long 0x62652e
	.long 0x0
	.long DBG93
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0x15
	.long 0x0
	.long 0x0
	.long 0x0
	.long 0x62652e
	.long 0x0
	.long DBG90
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0x15
	.long 0x0
	.long 0x0
	.long 0x0
DBG97:
	.long 0x62622e
	.long 0x0
	.long DBG90
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0x15
	.long 0x0
	.long DBG99
	.long 0x0
	.long 0x73796164
	.long 0x0
	.long 0xd0102
	.long 0x4
	.long 0x4ffff
	.long 0x62652e
	.long 0x0
	.long DBG91
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0x16
	.long 0x0
	.long 0x0
	.long 0x0
	.long 0x66652e
	.long 0x0
	.long DBG94
	.long 0x0
	.long 0x1650001
	.long 0x0
	.long 0x79
	.long 0x0
	.long 0x0
	.long 0x0
	.pseg rtc_code
DBG76:
	.dbgseg dbg_syms
	.long 0x6b656577
	.long 0x796164
	.long DBG76
	.long 0x0
	.long 0xff0001
; }
; void rtc_bumper(void)
DBG75:
	.long 0x0
	.long DBG104
	.long _rtc_bumper
	.long 0x40
	.long 0x1020001
	.long DBG79
	.long DBG101-DBG102
	.long DBG103
	.long DBG100
	.long 0x0
	.pseg rtc_code
DBG102:
	.dbgseg dbg_syms
DBG79:
	.long 0x66622e
	.long 0x0
	.long DBG102
	.long 0x0
	.long 0x1650001
	.long 0x0
	.long 0x7b
	.long 0x0
	.long DBG105
	.long 0x0
	.dbgseg dbg_line
DBG103:
	.long DBG75
	.long 0x0
	.long _rtc_bumper
	.long 0x1
	.long DBG107
	.long 0x2
	.long DBG108
	.long 0x5
	.long DBG109
	.long 0x28
	.pseg rtc_code
	.global _rtc_bumper
_rtc_bumper:
; ENTRY
DBG106:
; i in reg  size 2
; {
DBG107:
;     int i;
;     i = bump_rtc();
DBG108:
	call	#_bump_rtc
DBG110:
DBG109:
; EXIT
	ret
	.dbgseg dbg_syms
	.long 0x0
	.long DBG17
	.long 0x0
	.long 0x0
	.long 0x10002
	.long 0x0
	.long DBG18
	.long 0x2
	.long 0x0
	.long 0x10002
	.long 0x504e5f5f
	.long 0x534d5241
	.long 0x0
	.long 0x0
	.long 0x10002
	.long 0x66652e
	.long 0x0
	.long DBG110
	.long 0x0
	.long 0x1650001
	.long 0x0
	.long 0xa2
	.long 0x0
	.long 0x0
	.long 0x0
	.pseg rtc_code
DBG101:
	.dbgseg dbg_syms
	.long 0x0
	.long DBG104
	.long DBG101
	.long 0x0
	.long 0xff0001
; }
; void correct_rtc(void)
DBG100:
	.long 0x0
	.long DBG115
	.long _correct_rtc
	.long 0x40
	.long 0x1020001
	.long DBG105
	.long DBG112-DBG113
	.long DBG114
	.long DBG111
	.long 0x0
	.pseg rtc_code
DBG113:
	.dbgseg dbg_syms
DBG105:
	.long 0x66622e
	.long 0x0
	.long DBG113
	.long 0x0
	.long 0x1650001
	.long 0x0
	.long 0xa3
	.long 0x0
	.long DBG116
	.long 0x0
	.dbgseg dbg_line
DBG114:
	.long DBG100
	.long 0x0
	.long _correct_rtc
	.long 0x1
	.long DBG118
	.long 0x2
	.long DBG119
	.long 0x3
	.long DBG120
	.long 0x4
	.long DBG121
	.long 0x5
	.long DBG122
	.long 0x6
	.long DBG123
	.long 0x8
	.long DBG124
	.long 0x9
	.long DBG125
	.long 0xa
	.long DBG126
	.long 0xe
	.long DBG127
	.long 0xf
	.long DBG128
	.long 0x10
	.long DBG129
	.long 0x11
	.long DBG130
	.long 0x12
	.long DBG131
	.long 0x13
	.long DBG132
	.long 0x14
	.long DBG133
	.long 0x16
	.long DBG134
	.long 0x17
	.long DBG135
	.long 0x18
	.long DBG137
	.long 0x19
	.long DBG138
	.long 0x1a
	.long DBG139
	.long 0x1b
	.long DBG140
	.long 0x1c
	.long DBG141
	.long 0x1d
	.long DBG142
	.long 0x1e
	.long DBG143
	.long 0x20
	.long DBG144
	.long 0x21
	.long DBG145
	.long 0x22
	.long DBG147
	.long 0x23
	.pseg rtc_code
	.global _correct_rtc
_correct_rtc:
; ENTRY
DBG117:
; temp in reg  size 4
; {
DBG118:
;     int32 temp =0;
DBG119:
;     temp = emeter.i_temperature - emeter.ul_TempSampleOffset;
DBG120:
	mov	&_emeter+0x10,r13
	sub	&_emeter+0x5c,r13
	mov	#0x0,r12
DBG148:
DBG121:
;     temp = ((((float)temp)/32768.0) * 640.0 - 343.349)/1.257 + 0.5 ; 
	call	#__l_to_s
DBG149:
	mov	#0x0,r15
	mov	#0x4700,r14
DBG150:
	call	#__s_div
DBG151:
	mov	#0x0,r15
	mov	#0x4420,r14
DBG152:
	call	#__s_mul
DBG153:
	mov	#0xacac,r15
	mov	#0x43ab,r14
DBG154:
	call	#__s_sub
DBG155:
	mov	#0xe560,r15
	mov	#0x3fa0,r14
DBG156:
	call	#__s_div
DBG157:
	mov	#0x0,r15
	mov	#0x3f00,r14
DBG158:
	call	#__s_add
DBG159:
	call	#__s_to_l
DBG122:
DBG160:
;     emeter.i_last_temperature = (int16)temp; 
	mov	r13,&_emeter+0xe
DBG123:
;     temp -= 25;
	sub	#0x19,r13
	subc	#0x0,r12
DBG124:
;     temp = temp*temp*35* 5 ;
	mov	r13,r15
	mov	r12,r14
DBG161:
	call	#__smult32
DBG162:
	mov	#0xaf,r15
	mov	#0x0,r14
DBG163:
	call	#__smult32
DBG125:
DBG164:
;     temp = -temp;
	mov	#0x0,r15
	mov	#0x0,r14
	sub	r13,r15
	subc	r12,r14
DBG126:
;     temp += 0 ;
	add	#0x0,r14
DBG127:
;     if (rtc_correction >= 0)
	cmp	#0x0,&_rtc_correction+0x2
	jl	correct_rtc_L1
DBG129:
DBG128:
;     {
;         rtc_correction += temp;
	add	r15,&_rtc_correction
	addc	r14,&_rtc_correction+0x2
	mov	&_rtc_correction,r13
	mov	&_rtc_correction+0x2,r12
DBG130:
;         if (rtc_correction >= 1000000000)
	mov	#0xca00,r14
	mov	#0x3b9a,r15
	sub	r14,r13
	subc	r15,r12
	jl	correct_rtc_L3
DBG132:
DBG131:
;         {
;             rtc_correction -= 1000000000;
	sub	r14,&_rtc_correction
	subc	r15,&_rtc_correction+0x2
DBG133:
;             emeter.ui_meter_status |= (0x0001) ;
	bis	#0x1,&_emeter
DBG135:
DBG134:
;         }
correct_rtc_L2:
DBG136:
;     }
DBG137:
	jmp	correct_rtc_LL2
correct_rtc_L1:
;     else
;     {
DBG138:
;         rtc_correction += temp;
DBG139:
	add	r15,&_rtc_correction
	addc	r14,&_rtc_correction+0x2
	mov	&_rtc_correction,r15
	mov	&_rtc_correction+0x2,r13
DBG140:
;         if (rtc_correction <= -1000000000)
	mov	#0x3600,r14
	mov	#-0x3b9b,r12
	sub	r15,r14
	subc	r13,r12
	jl	correct_rtc_L4
DBG142:
DBG141:
;         {
;             rtc_correction += 1000000000;
	add	#0xca00,&_rtc_correction
	addc	#0x3b9a,&_rtc_correction+0x2
DBG143:
;             rtc_bumper();
	call	#_rtc_bumper
DBG145:
DBG144:
;         }
correct_rtc_L4:
DBG146:
correct_rtc_L3:
;     }
DBG147:
correct_rtc_LL2:
; EXIT
DBG165:
	ret
	.dbgseg dbg_syms
	.long 0x0
	.long DBG17
	.long 0x0
	.long 0x0
	.long 0x10002
	.long 0x0
	.long DBG18
	.long 0x2
	.long 0x0
	.long 0x10002
	.long 0x504e5f5f
	.long 0x534d5241
	.long 0x0
	.long 0x0
	.long 0x10002
DBG99:
	.long 0x62622e
	.long 0x0
	.long DBG121
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0x5
	.long 0x0
	.long DBG166
	.long 0x0
	.long 0x706d6574
	.long 0x0
	.long 0x200
	.long 0x5
	.long 0x204ffff
	.long 0x706d6574
	.long 0x0
	.long 0xc0102
	.long 0x5
	.long 0x104ffff
	.long 0x706d6574
	.long 0x0
	.long 0xd0102
	.long 0x5
	.long 0x4ffff
DBG166:
	.long 0x62622e
	.long 0x0
	.long DBG148
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0x6
	.long 0x0
	.long DBG167
	.long 0x0
	.long 0x0
	.long DBG98
	.long 0x0
	.long 0x0
	.long 0x10002
	.long 0x62652e
	.long 0x0
	.long DBG149
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0x6
	.long 0x0
	.long 0x0
	.long 0x0
DBG167:
	.long 0x62622e
	.long 0x0
	.long DBG150
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0x6
	.long 0x0
	.long DBG168
	.long 0x0
	.long 0x0
	.long DBG98
	.long 0x0
	.long 0x0
	.long 0x10002
	.long 0x62652e
	.long 0x0
	.long DBG151
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0x6
	.long 0x0
	.long 0x0
	.long 0x0
DBG168:
	.long 0x62622e
	.long 0x0
	.long DBG152
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0x6
	.long 0x0
	.long DBG169
	.long 0x0
	.long 0x0
	.long DBG98
	.long 0x0
	.long 0x0
	.long 0x10002
	.long 0x62652e
	.long 0x0
	.long DBG153
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0x6
	.long 0x0
	.long 0x0
	.long 0x0
DBG169:
	.long 0x62622e
	.long 0x0
	.long DBG154
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0x6
	.long 0x0
	.long DBG170
	.long 0x0
	.long 0x0
	.long DBG98
	.long 0x0
	.long 0x0
	.long 0x10002
	.long 0x62652e
	.long 0x0
	.long DBG155
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0x6
	.long 0x0
	.long 0x0
	.long 0x0
DBG170:
	.long 0x62622e
	.long 0x0
	.long DBG156
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0x6
	.long 0x0
	.long DBG171
	.long 0x0
	.long 0x0
	.long DBG98
	.long 0x0
	.long 0x0
	.long 0x10002
	.long 0x62652e
	.long 0x0
	.long DBG157
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0x6
	.long 0x0
	.long 0x0
	.long 0x0
DBG171:
	.long 0x62622e
	.long 0x0
	.long DBG158
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0x6
	.long 0x0
	.long DBG172
	.long 0x0
	.long 0x0
	.long DBG98
	.long 0x0
	.long 0x0
	.long 0x10002
	.long 0x62652e
	.long 0x0
	.long DBG159
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0x6
	.long 0x0
	.long 0x0
	.long 0x0
DBG172:
	.long 0x62622e
	.long 0x0
	.long DBG159
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0x6
	.long 0x0
	.long DBG173
	.long 0x0
	.long 0x0
	.long DBG98
	.long 0x0
	.long 0x0
	.long 0x10002
	.long 0x62652e
	.long 0x0
	.long DBG160
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0x6
	.long 0x0
	.long 0x0
	.long 0x0
	.long 0x62652e
	.long 0x0
	.long DBG122
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0x6
	.long 0x0
	.long 0x0
	.long 0x0
DBG173:
	.long 0x62622e
	.long 0x0
	.long DBG122
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0x6
	.long 0x0
	.long DBG174
	.long 0x0
	.long 0x706d6574
	.long 0x0
	.long 0x200
	.long 0x5
	.long 0x204ffff
	.long 0x706d6574
	.long 0x0
	.long 0xc0102
	.long 0x5
	.long 0x104ffff
	.long 0x706d6574
	.long 0x0
	.long 0xd0102
	.long 0x5
	.long 0x4ffff
DBG174:
	.long 0x62622e
	.long 0x0
	.long DBG124
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0x9
	.long 0x0
	.long DBG175
	.long 0x0
	.long 0x706d6574
	.long 0x0
	.long 0x200
	.long 0x5
	.long 0x204ffff
	.long 0x706d6574
	.long 0x0
	.long 0xc0102
	.long 0x5
	.long 0x104ffff
	.long 0x706d6574
	.long 0x0
	.long 0xd0102
	.long 0x5
	.long 0x4ffff
DBG175:
	.long 0x62622e
	.long 0x0
	.long DBG161
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0xa
	.long 0x0
	.long DBG176
	.long 0x0
	.long 0x0
	.long DBG98
	.long 0x0
	.long 0x0
	.long 0x10002
	.long 0x62652e
	.long 0x0
	.long DBG162
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0xa
	.long 0x0
	.long 0x0
	.long 0x0
DBG176:
	.long 0x62622e
	.long 0x0
	.long DBG163
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0xa
	.long 0x0
	.long DBG177
	.long 0x0
	.long 0x0
	.long DBG98
	.long 0x0
	.long 0x0
	.long 0x10002
	.long 0x62652e
	.long 0x0
	.long DBG164
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0xa
	.long 0x0
	.long 0x0
	.long 0x0
	.long 0x62652e
	.long 0x0
	.long DBG125
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0xa
	.long 0x0
	.long 0x0
	.long 0x0
	.long 0x62652e
	.long 0x0
	.long DBG125
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0xa
	.long 0x0
	.long 0x0
	.long 0x0
DBG177:
	.long 0x62622e
	.long 0x0
	.long DBG125
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0xa
	.long 0x0
	.long DBG178
	.long 0x0
	.long 0x706d6574
	.long 0x0
	.long 0x200
	.long 0x5
	.long 0x204ffff
	.long 0x706d6574
	.long 0x0

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -