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

📄 background.asm

📁 FE42X单相防窃电电表DEMO(编译器 AQ430 AQ430 V2.0.6.5)
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	.data Switch_CalibrationOption_Sub_L5
	.data Switch_CalibrationOption_Sub_L6
	.data Switch_CalibrationOption_Sub_L7
	.data Switch_CalibrationOption_Sub_L8
	.data Switch_CalibrationOption_Sub_L9
	.data Switch_CalibrationOption_Sub_L10
	.data Switch_CalibrationOption_Sub_L11
	.dbgseg dbg_line
	.long _Switch_CalibrationOption_Sub
	.long 0x1
	.long DBG63
	.long 0x2
	.long DBG64
	.long 0x3
	.long DBG65
	.long 0x4
	.long DBG66
	.long 0x5
	.long DBG67
	.long 0x6
	.long DBG68
	.long 0x7
	.long DBG69
	.long 0x8
	.long DBG70
	.long 0x9
	.long DBG71
	.long 0xa
	.long DBG72
	.long 0xb
	.long DBG73
	.long 0xc
	.long DBG74
	.long 0xd
	.long DBG75
	.long 0xe
	.long DBG76
	.long 0xf
	.long DBG77
	.long 0x10
	.long DBG78
	.long 0x11
	.long DBG79
	.long 0x12
	.long DBG80
	.long 0x13
	.long DBG81
	.long 0x14
	.long DBG82
	.long 0x15
	.long DBG83
	.long 0x16
	.long DBG84
	.long 0x17
	.long DBG85
	.long 0x18
	.long DBG86
	.long 0x19
	.long DBG87
	.long 0x1a
	.long DBG88
	.long 0x1b
	.long DBG89
	.long 0x1c
	.long DBG90
	.long 0x1d
	.long DBG91
	.long 0x1e
	.long DBG92
	.long 0x1f
	.long DBG93
	.long 0x20
	.long DBG94
	.long 0x21
	.long DBG95
	.long 0x22
	.pseg background_code
	.global _Switch_CalibrationOption_Sub
_Switch_CalibrationOption_Sub:
	push	r4
DBG64:
DBG63:
DBG62:
; ENTRY
; {
; 	switch(emeter.ucCalibrationOption)
	jmp	Switch_CalibrationOption_Sub_L2
DBG66:
DBG65:
; 	{
; 		case 1:   
Switch_CalibrationOption_Sub_L3:
; 			emeter.ui_GainCorr1 -= 1;	
DBG67:
	sub	#0x1,&_emeter+0x42
DBG68:
; 			break;
	jmp	Switch_CalibrationOption_Sub_LL2
DBG69:
; 		case 2:   
Switch_CalibrationOption_Sub_L4:
; 			emeter.l_PowerOffset1 -= 1;
DBG70:
	sub	#0x1,&_emeter+0x46
	subc	#0x0,&_emeter+0x48
DBG71:
; 			break;
	jmp	Switch_CalibrationOption_Sub_LL2
DBG72:
; 		case 3:   
Switch_CalibrationOption_Sub_L5:
; 			emeter.f_PhaseCorr1 -= 0.001;
DBG73:
	mov	#_emeter+0x4e,r4
	mov	#0x126e,r15
	mov	#0x3a83,r14
	mov	@r4,r13
	mov	0x2(r4),r12
DBG96:
	call	#__s_sub
DBG97:
	mov	r13,0(r4)
	mov	r12,0x2(r4)
DBG74:
; 			break;
	jmp	Switch_CalibrationOption_Sub_LL2
DBG75:
; 		case 4:   
Switch_CalibrationOption_Sub_L6:
; 			emeter.ui_GainCorr2 -= 1;	
DBG76:
	sub	#0x1,&_emeter+0x44
DBG77:
; 			break;
	jmp	Switch_CalibrationOption_Sub_LL2
DBG78:
; 		case 5:   
Switch_CalibrationOption_Sub_L7:
; 			emeter.l_PowerOffset2 -= 1;
DBG79:
	sub	#0x1,&_emeter+0x4a
	subc	#0x0,&_emeter+0x4c
DBG80:
; 			break;
	jmp	Switch_CalibrationOption_Sub_LL2
DBG81:
; 		case 6:   
Switch_CalibrationOption_Sub_L8:
; 			emeter.f_PhaseCorr2 -= 0.001;
DBG82:
	mov	#_emeter+0x52,r4
	mov	#0x126e,r15
	mov	#0x3a83,r14
	mov	@r4,r13
	mov	0x2(r4),r12
DBG98:
	call	#__s_sub
DBG99:
	mov	r13,0(r4)
	mov	r12,0x2(r4)
DBG83:
; 			break;
	jmp	Switch_CalibrationOption_Sub_LL2
DBG84:
; 		case 7:   
Switch_CalibrationOption_Sub_L9:
; 			emeter.ui_SD16_CurrentCorr1 += 1;
DBG85:
	add	#0x1,&_emeter+0x56
DBG86:
; 			break;
	jmp	Switch_CalibrationOption_Sub_LL2
DBG87:
; 		case 8:   
Switch_CalibrationOption_Sub_L10:
; 			emeter.ui_SD16_CurrentCorr2 += 1;
DBG88:
	add	#0x1,&_emeter+0x58
DBG89:
; 			break;
	jmp	Switch_CalibrationOption_Sub_LL2
DBG90:
; 		case 9:   
Switch_CalibrationOption_Sub_L11:
; 			emeter.ui_SD16_VoltageCorr1 += 1;
DBG91:
	add	#0x1,&_emeter+0x5a
DBG92:
; 			break;
	jmp	Switch_CalibrationOption_Sub_LL2
DBG93:
; 		default:break;
Switch_CalibrationOption_Sub_L12:
	jmp	Switch_CalibrationOption_Sub_LL2
DBG94:
Switch_CalibrationOption_Sub_L2:
	mov.b	&_emeter+0x5f,r13
; swcode: switch has 9 cases - min 1 max 9
	sub	#0x1,r13
	jl	Switch_CalibrationOption_Sub_L12
	mov	#0x8,r12
	cmp	r13,r12
	jl	Switch_CalibrationOption_Sub_L12
	rla	r13
	br	Switch_CalibrationOption_Sub_LL3(r13)
Switch_CalibrationOption_Sub_L1:
; 	}
DBG95:
Switch_CalibrationOption_Sub_LL2:
; EXIT
; .temp1 at stkloc 0 (0x0) size 2
DBG100:
	pop	r4
	ret
	.dbgseg dbg_syms
	.long 0x0
	.long DBG51
	.long 0x2
	.long 0x0
	.long 0x10002
	.long 0x0
	.long DBG52
	.long 0x2
	.long 0x0
	.long 0x10002
	.long 0x504e5f5f
	.long 0x534d5241
	.long 0x0
	.long 0x0
	.long 0x10002
DBG55:
	.long 0x62622e
	.long 0x0
	.long DBG96
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0xd
	.long 0x0
	.long DBG101
	.long 0x0
	.long 0x0
	.long DBG54
	.long 0x0
	.long 0x0
	.long 0x10002
	.long 0x62652e
	.long 0x0
	.long DBG97
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0xd
	.long 0x0
	.long 0x0
	.long 0x0
DBG101:
	.long 0x62622e
	.long 0x0
	.long DBG98
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0x16
	.long 0x0
	.long DBG102
	.long 0x0
	.long 0x0
	.long DBG54
	.long 0x0
	.long 0x0
	.long 0x10002
	.long 0x62652e
	.long 0x0
	.long DBG99
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0x16
	.long 0x0
	.long 0x0
	.long 0x0
	.long 0x66652e
	.long 0x0
	.long DBG100
	.long 0x0
	.long 0x1650001
	.long 0x0
	.long 0x54
	.long 0x0
	.long 0x0
	.long 0x0
	.pseg background_code
DBG57:
	.dbgseg dbg_syms
	.long 0x0
	.long DBG60
	.long DBG57
	.long 0x0
	.long 0xff0001
; }
; static int16 total_energy_led_remaining_time;
; uint32 ul_actensper1,ul_actensper2;
; union signed_long_word ds;
;  _INTERRUPT [ (13 * 2) ] void esp_isr (void)
	.iseg background_ivec_26,abs=0xfffa
	.align 0x2
	.data _esp_isr
	.dbgseg dbg_syms
DBG56:
	.long 0x5f707365
	.long 0x727369
	.long _esp_isr
	.long 0x40
	.long 0x1020001
	.long DBG61
	.long DBG104-DBG105
	.long DBG106
	.long DBG103
	.long 0x0
	.pseg background_code
DBG105:
	.dbgseg dbg_syms
DBG61:
	.long 0x66622e
	.long 0x0
	.long DBG105
	.long 0x0
	.long 0x1650001
	.long 0x0
	.long 0x5f
	.long 0x0
	.long DBG107
	.long 0x0
	.dbgseg dbg_line
DBG106:
	.long DBG56
	.long 0x0
	.long _esp_isr
	.long 0x1
	.long DBG109
	.long 0x2
	.long DBG110
	.long 0x3
	.long DBG111
	.long 0x4
	.long DBG112
	.long 0x8
	.long DBG113
	.long 0x9
	.long DBG114
	.long 0xb
	.long DBG115
	.long 0xc
	.long DBG116
	.long 0xd
	.long DBG117
	.long 0xe
	.long DBG118
	.long 0xf
	.long DBG119
	.long 0x12
	.long DBG120
	.long 0x13
	.long DBG121
	.long 0x14
	.long DBG122
	.long 0x15
	.long DBG123
	.long 0x17
	.long DBG124
	.long 0x18
	.long DBG125
	.long 0x19
	.long DBG126
	.long 0x1a
	.long DBG127
	.long 0x1b
	.long DBG128
	.long 0x1c
	.long DBG129
	.long 0x1d
	.long DBG130
	.long 0x1e
	.long DBG131
	.long 0x1f
	.long DBG132
	.long 0x21
	.long DBG134
	.long 0x23
	.long DBG135
	.long 0x24
	.long DBG136
	.long 0x25
	.long DBG137
	.long 0x26
	.long DBG138
	.long 0x28
	.long DBG139
	.long 0x2a
	.pseg background_code
	.global _esp_isr
_esp_isr:
	push	r4
	push	r5
	push	r12
	push	r13
	push	r14
	push	r15
DBG110:
DBG109:
DBG108:
; ENTRY
; msg_data in reg  size 2
; msg in reg  size 2
; {
;     uint16 msg_data= MBIN1;
	mov	&0x156,r5
DBG111:
;     uint16 msg     = MBIN0;
	mov	&0x154,r12
DBG112:
;     if (msg == (0x0001) )
	cmp	#0x1,r12
	jne	esp_isr_L1
DBG114:
DBG113:
;     {
;         if (msg_data & (0x0008) )
	bit	#0x8,r5
	jeq	esp_isr_L2
DBG116:
DBG115:
;         {
;             emeter.ui_meter_status |= (0x0080) ;
	bis	#0x80,&_emeter
DBG117:
;             _BIC_SR_IRQ( ( (0x0010) ) );
	bic	#0x10,0xc(sp)
DBG119:
DBG118:
;         }    
esp_isr_L2:
;         if (msg_data & (0x0020) )
	bit	#0x20,r5
	jeq	esp_isr_L3
DBG121:
DBG120:
;         {
;             emeter.ui_meter_status |= (0x0040) ;
	bis	#0x40,&_emeter
DBG123:
DBG122:
;         }
esp_isr_L3:
;         if ((msg_data & (0x0010) ) && (emeter.ui_meter_status & (0x0040) ))
	bit	#0x10,r5
	jeq	esp_isr_L4
	bit	#0x40,&_emeter
	jeq	esp_isr_L4
DBG125:
DBG124:
;         {
;             emeter.ui_meter_status &= ~ (0x0040) ;
	and	#0xffbf,&_emeter
DBG126:
;             ul_actensper1 = (((uint32) RET17 ) <<16)+ RET16 ;
	mov	&0x1e0,r14
	mov	#0x0,r15
	mov	&0x1e2,r4
	mov	#0x0,r13
	add	r14,r13
	addc	r15,r4
	mov	r13,&_ul_actensper1
	mov	r4,&_ul_actensper1+0x2
DBG127:
;     		ul_actensper2 = (((uint32) RET19 ) <<16)+ RET18 ;
	mov	&0x1e4,r14
	mov	#0x0,r15
	mov	&0x1e6,r13
	mov	#0x0,r4
	add	r14,r4
	addc	r15,r13
	mov	r4,&_ul_actensper2
	mov	r13,&_ul_actensper2+0x2
DBG128:
;     		emeter.ui_meter_status |= (0x0800) ;
	bis	#0x800,&_emeter
DBG129:
;             emeter.ui_meter_status |= (0x0004) ;
	bis	#0x4,&_emeter
DBG130:
;             _BIC_SR_IRQ( ( (0x0010) ) );  
	bic	#0x10,0xc(sp)
DBG132:
DBG131:
; 		}
esp_isr_L4:
DBG133:
;     } 
DBG134:
esp_isr_L1:
;     if (msg == (0x0003) )
	cmp	#0x3,r12
	jne	esp_isr_L5
DBG136:
DBG135:
;     {
;     	emeter.i_temperature= msg_data;
	mov	r5,&_emeter+0x10
DBG137:
;         emeter.ui_meter_status |= (0x0100) ;
	bis	#0x100,&_emeter
DBG139:
DBG138:
;     }  
esp_isr_L5:
DBG140:
; EXIT
; .temp2 at stkloc 0 (0x0) size 12
DBG141:
	pop	r15
	pop	r14
	pop	r13
	pop	r12
	pop	r5
	pop	r4
	reti
	.dbgseg dbg_syms
	.long 0x0
	.long DBG51
	.long 0xc
	.long 0x0
	.long 0x10002
	.long 0x0
	.long DBG52
	.long 0x2
	.long 0x0
	.long 0x10002
	.long 0x504e5f5f
	.long 0x534d5241
	.long 0x0
	.long 0x0
	.long 0x10002
DBG102:
	.long 0x62622e
	.long 0x0
	.long DBG111
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0x4
	.long 0x0
	.long DBG142
	.long 0x0
	.long 0x5f67736d
	.long 0x61746164
	.long 0x50102
	.long 0xe
	.long 0x4ffff
DBG142:
	.long 0x62622e
	.long 0x0
	.long DBG112
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0x8
	.long 0x0
	.long DBG143
	.long 0x0
	.long 0x67736d
	.long 0x0
	.long 0xc0102
	.long 0xe
	.long 0x4ffff
	.long 0x62652e
	.long 0x0
	.long DBG140
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0x2a
	.long 0x0
	.long 0x0
	.long 0x0
	.long 0x62652e
	.long 0x0
	.long DBG140
	.long 0x0
	.long 0x1640001
	.long 0x0
	.long 0x2a
	.long 0x0
	.long 0x0
	.long 0x0
	.long 0x66652e
	.long 0x0
	.long DBG141
	.long 0x0
	.long 0x1650001
	.long 0x0
	.long 0x88
	.long 0x0
	.long 0x0
	.long 0x0
	.pseg background_code
DBG104:
	.dbgseg dbg_syms
	.long 0x5f707365
	.long 0x727369
	.long DBG104
	.long 0x0
	.long 0xff0001
; }
;  _INTERRUPT [ (12 * 2) ] void SD16_ISR(void)
	.iseg background_ivec_24,abs=0xfff8
	.data _SD16_ISR
	.dbgseg dbg_syms
DBG103:
	.long 0x36314453
	.long 0x5253495f
	.long _SD16_ISR
	.long 0x40
	.long 0x1020001
	.long DBG107
	.long DBG145-DBG146
	.long DBG147
	.long DBG144
	.long 0x0
	.pseg background_code
DBG146:
	.dbgseg dbg_syms
DBG107:
	.long 0x66622e
	.long 0x0
	.long DBG146
	.long 0x0
	.long 0x1650001
	.long 0x0
	.long 0x8e
	.long 0x0
	.long DBG148
	.long 0x0
	.dbgseg dbg_line
DBG147:
	.long DBG103
	.long 0x0
	.long _SD16_ISR
	.long 0x1
	.long DBG150
	.long 0x2
	.long DBG151
	.long 0xa
	.long DBG152
	.long 0xb
	.long DBG153
	.long 0xc
	.long DBG154
	.long 0xe
	.long DBG155
	.long 0x11
	.long DBG156
	.long 0x12
	.long DBG157
	.long 0x13
	.long DBG158
	.long 0x14
	.long DBG159
	.long 0x15
	.long DBG160
	.long 0x16
	.long DBG161
	.long 0x18
	.long DBG162
	.long 0x19
	.long DBG163
	.long 0x1a
	.long DBG164
	.long 0x1b
	.long DBG165
	.long 0x1c
	.long DBG166
	.long 0x1d
	.long DBG167
	.long 0x1e
	.long DBG168
	.long 0x1f
	.long DBG169
	.long 0x20
	.long DBG170
	.long 0x22
	.long DBG171
	.long 0x23
	.long DBG172
	.long 0x24
	.long DBG173
	.long 0x25
	.long DBG174
	.long 0x26
	.long DBG175
	.long 0x27
	.long DBG176
	.long 0x28
	.long DBG177
	.long 0x29
	.long DBG178
	.long 0x2a
	.long DBG179
	.long 0x2c
	.long DBG180
	.long 0x2d
	.long DBG181
	.long 0x2f
	.long DBG182
	.long 0x30
	.long DBG183
	.long 0x31
	.long DBG184
	.long 0x32
	.long DBG185
	.long 0x33
	.long DBG186
	.long 0x34
	.pseg background_code
	.global _SD16_ISR
_SD16_ISR:
	push	r4
	push	r5

⌨️ 快捷键说明

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