📄 background.asm
字号:
.long 0x8
.long DBG233
.long 0x9
.long DBG234
.long 0xa
.long DBG235
.long 0xb
.long DBG236
.long 0xd
.long DBG237
.long 0xe
.long DBG238
.long 0xf
.long DBG239
.long 0x10
.long DBG240
.long 0x11
.long DBG241
.long 0x12
.long DBG242
.long 0x13
.long DBG243
.long 0x14
.long DBG244
.long 0x15
.long DBG245
.long 0x16
.long DBG246
.long 0x17
.long DBG247
.long 0x18
.long DBG248
.long 0x19
.long DBG249
.long 0x1a
.long DBG250
.long 0x1b
.long DBG251
.long 0x1c
.long DBG252
.long 0x1d
.long DBG253
.long 0x1e
.long DBG254
.long 0x1f
.long DBG255
.long 0x20
.long DBG256
.long 0x21
.long DBG257
.long 0x22
.long DBG258
.long 0x23
.long DBG259
.long 0x24
.long DBG260
.long 0x25
.long DBG261
.long 0x26
.long DBG262
.long 0x27
.long DBG263
.long 0x28
.long DBG264
.long 0x29
.long DBG266
.long 0x2a
.long DBG267
.long 0x2b
.long DBG268
.long 0x2c
.long DBG269
.long 0x2d
.long DBG270
.long 0x2e
.long DBG271
.long 0x2f
.long DBG272
.long 0x30
.long DBG274
.long 0x31
.long DBG275
.long 0x32
.long DBG276
.long 0x34
.long DBG277
.long 0x35
.pseg background_code
.global _BT_ISR
_BT_ISR:
push r12
push r13
push r14
push r15
DBG230:
DBG229:
DBG228:
; ENTRY
; uc_BT_Int_Count is background_V3 size 1
; uiKeyDelay is background_V5 size 2
; {
; static uint8 uc_BT_Int_Count;
; static uint16 uiKeyDelay;
; CheckExternVoltage();
call #_CheckExternVoltage
DBG231:
; if( ++uc_BT_Int_Count >= 15)
add.b #0x1,&background_V3
mov.b &background_V3,r12
cmp.b #0xf,r12
jnc BT_ISR_L1
DBG233:
DBG232:
; {
; uc_BT_Int_Count = 0;
mov.b #0x0,&background_V3
DBG234:
; emeter.ui_meter_status |= (0x1000) ;
bis #0x1000,&_emeter
DBG236:
DBG235:
; }
BT_ISR_L1:
; if((P1IN & (0x0001) ) == 0)
bit.b #0x1,&0x20
jne BT_ISR_L2
DBG238:
DBG237:
; {
; if( ++uiKeyDelay >= 32)
add #0x1,&background_V5
mov &background_V5,r12
cmp #0x20,r12
jnc BT_ISR_L3
DBG240:
DBG239:
; {
; switch(emeter.ucCalibrationMode)
jmp BT_ISR_L5
DBG242:
DBG241:
; {
; case 1:
BT_ISR_L6:
; {
DBG243:
; emeter.ui_meter_status |= (0x0400) ;
DBG244:
bis #0x400,&_emeter
DBG245:
; Switch_CalibrationOption_Add();
call #_Switch_CalibrationOption_Add
DBG246:
; break;
jmp BT_ISR_L4
DBG248:
DBG247:
; }
; case 2:
BT_ISR_L7:
; {
DBG249:
; emeter.ui_meter_status |= (0x0400) ;
DBG250:
bis #0x400,&_emeter
DBG251:
; Switch_CalibrationOption_Sub();
call #_Switch_CalibrationOption_Sub
DBG252:
; break;
jmp BT_ISR_L4
DBG254:
DBG253:
; }
; default:
BT_ISR_L8:
; {
DBG255:
; break;
DBG256:
jmp BT_ISR_L4
DBG258:
DBG257:
; }
BT_ISR_L5:
mov.b &_emeter+0x5e,r12
; swcode: switch has 2 cases - min 1 max 2
cmp #0x1,r12
jeq BT_ISR_L6
cmp #0x2,r12
jeq BT_ISR_L7
jmp BT_ISR_L8
BT_ISR_L4:
; }
DBG259:
; }
DBG260:
BT_ISR_L3:
; if(uiKeyDelay >= 33)
cmp #0x21,&background_V5
jnc BT_ISR_L10
DBG262:
DBG261:
; {
; uiKeyDelay = 33;
mov #0x21,&background_V5
DBG264:
DBG263:
; }
BT_ISR_L9:
DBG265:
; }
DBG266:
jmp BT_ISR_L10
BT_ISR_L2:
; else
; {
DBG267:
; if(uiKeyDelay >= 33)
DBG268:
cmp #0x21,&background_V5
jnc BT_ISR_L11
DBG270:
DBG269:
; {
; if((emeter.ui_anti_tamperring_status & (0x0002) ) == (0x0002) )
mov &_emeter+0x2,r12
and #0x2,r12
cmp #0x2,r12
jne BT_ISR_L12
DBG271:
; emeter.ui_meter_status |= (0x0010) ;
bis #0x10,&_emeter
DBG272:
BT_ISR_L12:
DBG273:
; }
DBG274:
BT_ISR_L11:
; uiKeyDelay = 0;
mov #0x0,&background_V5
DBG275:
BT_ISR_L10:
; }
; _BIC_SR_IRQ( ( (0x0080) + (0x0040) + (0x0010) ) );
DBG276:
bic #0xd0,0x8(sp)
DBG278:
DBG277:
; EXIT
; .temp5 at stkloc 0 (0x0) size 8
pop r15
pop r14
pop r13
pop r12
reti
.dbgseg dbg_syms
.long 0x0
.long DBG51
.long 0x8
.long 0x0
.long 0x10002
.long 0x0
.long DBG52
.long 0x2
.long 0x0
.long 0x10002
.long 0x504e5f5f
.long 0x534d5241
.long 0x0
.long 0x0
.long 0x10002
.long 0x0
.long DBG279
.long background_V3
.long 0xc
.long 0x30002
.long 0x0
.long DBG280
.long background_V5
.long 0xe
.long 0x30002
.long 0x66652e
.long 0x0
.long DBG278
.long 0x0
.long 0x1650001
.long 0x0
.long 0x10f
.long 0x0
.long 0x0
.long 0x0
.pseg background_code
DBG224:
.dbgseg dbg_syms
.long 0x495f5442
.long 0x5253
.long DBG224
.long 0x0
.long 0xff0001
; }
; _INTERRUPT [ (4 * 2) ] void P1_ISR(void)
.iseg background_ivec_8,abs=0xffe8
.data _P1_ISR
.dbgseg dbg_syms
DBG223:
.long 0x495f3150
.long 0x5253
.long _P1_ISR
.long 0x40
.long 0x1020001
.long DBG227
.long DBG282-DBG283
.long DBG284
.long DBG281
.long 0x0
.pseg background_code
DBG283:
.dbgseg dbg_syms
DBG227:
.long 0x66622e
.long 0x0
.long DBG283
.long 0x0
.long 0x1650001
.long 0x0
.long 0x116
.long 0x0
.long DBG285
.long 0x0
.dbgseg dbg_line
DBG284:
.long DBG223
.long 0x0
.long _P1_ISR
.long 0x1
.long DBG287
.long 0x2
.long DBG288
.long 0x3
.long DBG289
.long 0x4
.long DBG290
.long 0x5
.long DBG291
.long 0x6
.long DBG292
.long 0x7
.long DBG293
.long 0x8
.long DBG294
.long 0x9
.long DBG295
.long 0xa
.long DBG296
.long 0xb
.long DBG297
.long 0xc
.long DBG298
.long 0xd
.long DBG299
.long 0xe
.long DBG300
.long 0xf
.long DBG301
.long 0x10
.long DBG302
.long 0x11
.long DBG303
.long 0x12
.long DBG304
.long 0x13
.long DBG305
.long 0x14
.long DBG306
.long 0x15
.long DBG307
.long 0x16
.long DBG308
.long 0x17
.long DBG309
.long 0x18
.long DBG310
.long 0x19
.long DBG311
.long 0x1a
.long DBG312
.long 0x1b
.long DBG313
.long 0x1c
.long DBG314
.long 0x1d
.long DBG315
.long 0x1e
.long DBG316
.long 0x1f
.long DBG317
.long 0x20
.long DBG318
.long 0x21
.long DBG319
.long 0x22
.long DBG320
.long 0x23
.long DBG321
.long 0x25
.long DBG322
.long 0x26
.long DBG323
.long 0x27
.long DBG324
.long 0x28
.long DBG325
.long 0x29
.long DBG326
.long 0x2a
.long DBG327
.long 0x2b
.long DBG328
.long 0x2c
.long DBG329
.long 0x2d
.long DBG330
.long 0x2e
.long DBG331
.long 0x2f
.long DBG332
.long 0x30
.pseg background_code
.global _P1_ISR
_P1_ISR:
push r12
push r13
push r14
push r15
DBG288:
DBG287:
DBG286:
; ENTRY
; {
; if((P1IFG & (0x0001) ) == (0x0001) )
mov.b &0x23,r12
and.b #0x1,r12
cmp.b #0x1,r12
jne P1_ISR_L1
DBG290:
DBG289:
; {
; switch(emeter.ucCalibrationMode)
jmp P1_ISR_L3
DBG292:
DBG291:
; {
; case 1:
P1_ISR_L4:
; {
DBG293:
; emeter.ui_meter_status |= (0x0400) ;
DBG294:
bis #0x400,&_emeter
DBG295:
; if((emeter.ui_anti_tamperring_status & (0x0002) ) == (0x0002) )
mov &_emeter+0x2,r12
and #0x2,r12
cmp #0x2,r12
jne P1_ISR_L5
DBG296:
; emeter.ui_meter_status |= (0x0010) ;
bis #0x10,&_emeter
DBG297:
P1_ISR_L5:
; Switch_CalibrationOption_Add();
call #_Switch_CalibrationOption_Add
DBG298:
; break;
jmp P1_ISR_L2
DBG300:
DBG299:
; }
; case 2:
P1_ISR_L6:
; {
DBG301:
; emeter.ui_meter_status |= (0x0400) ;
DBG302:
bis #0x400,&_emeter
DBG303:
; if((emeter.ui_anti_tamperring_status & (0x0002) ) == (0x0002) )
mov &_emeter+0x2,r12
and #0x2,r12
cmp #0x2,r12
jne P1_ISR_L7
DBG304:
; emeter.ui_meter_status |= (0x0010) ;
bis #0x10,&_emeter
DBG305:
P1_ISR_L7:
; Switch_CalibrationOption_Sub();
call #_Switch_CalibrationOption_Sub
DBG306:
; break;
jmp P1_ISR_L2
DBG308:
DBG307:
; }
; case 3:
P1_ISR_L8:
; {
DBG309:
; emeter.ui_meter_status |= (0x0400) ;
DBG310:
bis #0x400,&_emeter
DBG311:
; if( ++emeter.ucCalibrationOption > 9)
mov.b #0x9,r13
add.b #0x1,&_emeter+0x5f
mov.b &_emeter+0x5f,r12
cmp.b r12,r13
jc P1_ISR_L2
DBG312:
; emeter.ucCalibrationOption = 1;
mov.b #0x1,&_emeter+0x5f
DBG313:
P1_ISR_L9:
; break;
jmp P1_ISR_L2
DBG315:
DBG314:
; }
; default:
P1_ISR_L10:
; {
DBG316:
; break;
DBG317:
jmp P1_ISR_L2
DBG319:
DBG318:
; }
P1_ISR_L3:
mov.b &_emeter+0x5e,r12
; swcode: switch has 3 cases - min 1 max 3
cmp #0x1,r12
jeq P1_ISR_L4
cmp #0x2,r12
jeq P1_ISR_L6
cmp #0x3,r12
jeq P1_ISR_L8
jmp P1_ISR_L10
P1_ISR_L2:
; }
DBG320:
; }
DBG321:
P1_ISR_L1:
; if((P1IFG & (0x0002) ) == (0x0002) )
mov.b &0x23,r12
and.b #0x2,r12
cmp.b #0x2,r12
jne P1_ISR_L11
DBG323:
DBG322:
; {
; if( ++emeter.ucCalibrationMode >= 4)
add.b #0x1,&_emeter+0x5e
mov.b &_emeter+0x5e,r12
cmp.b #0x4,r12
jnc P1_ISR_L12
DBG325:
DBG324:
; {
; emeter.ucCalibrationMode = 0;
mov.b #0x0,&_emeter+0x5e
DBG326:
; emeter.ui_meter_status |= (0x0200) ;
bis #0x200,&_emeter
DBG328:
DBG327:
; }
P1_ISR_L12:
; emeter.ui_meter_status |= (0x0400) ;
bis #0x400,&_emeter
DBG330:
DBG329:
; }
P1_ISR_L11:
; P1IFG = 0;
mov.b #0x0,&0x23
DBG331:
; _BIC_SR_IRQ( ( (0x0080) + (0x0040) + (0x0010) ) );
bic #0xd0,0x8(sp)
DBG333:
DBG332:
; EXIT
; .temp6 at stkloc 0 (0x0) size 8
pop r15
pop r14
pop r13
pop r12
reti
.dbgseg dbg_syms
.long 0x0
.long DBG51
.long 0x8
.long 0x0
.long 0x10002
.long 0x0
.long DBG52
.long 0x2
.long 0x0
.long 0x10002
.long 0x504e5f5f
.long 0x534d5241
.long 0x0
.long 0x0
.long 0x10002
.long 0x66652e
.long 0x0
.long DBG333
.long 0x0
.long 0x1650001
.long 0x0
.long 0x145
.long 0x0
.long 0x0
.long 0x0
.pseg background_code
DBG282:
.dbgseg dbg_syms
.long 0x495f3150
.long 0x5253
.long DBG282
.long 0x0
.long 0xff0001
; }
.dseg background_bss
.align 0x2
.global _ul_total_power_infact
_ul_total_power_infact:
.bss 0x4
; ul_total_power_infact size 4
.align 0x2
_ul_energy_accu:
.bss 0x4
; ul_energy_accu size 4
.align 0x2
_total_energy_led_remaining_time:
.bss 0x2
; total_energy_led_remaining_time size 2
.align 0x2
.global _ul_actensper1
_ul_actensper1:
.bss 0x4
; ul_actensper1 size 4
.align 0x2
.global _ul_actensper2
_ul_actensper2:
.bss 0x4
; ul_actensper2 size 4
.align 0x2
.global _ds
_ds:
.bss 0x4
; ds size 4
.align 0x2
.global _ui_step_counter
_ui_step_counter:
.bss 0x2
; ui_step_counter size 2
.extern _imul16_up
.extern _emeter
.extern _CheckExternVoltage
.extern _dc_filter
.extern _phase
.extern _accum48
.extern __s_add
.extern __s_sub
.dbgseg dbg_syms
emeter_var_1:
DBG4:
.long 0x0
.long DBG335
.long 0x0
.long 0x8
.long 0x10afffe
.long 0x0
.long 0x660000
.long 0x0
.long DBG334
.long 0x0
.long 0x0
.long DBG336
.long 0x0
.long 0xe
.long 0x8ffff
.long 0x0
.long DBG337
.long 0x2
.long 0xe
.long 0x8ffff
.long 0x0
.long DBG338
.long 0x4
.long 0xe
.long 0x8ffff
.long 0x0
.long DBG339
.long 0x6
.long 0xc
.long 0x8ffff
.long 0x0
.long DBG340
.long 0x8
.long 0xe
.long 0x8ffff
.long 0x0
.long DBG341
.long 0xa
.long 0xe
.long 0x8ffff
.long 0x0
.long DBG342
.long 0xc
.long 0xe
.long 0x8ffff
.long 0x0
.long DBG343
.long 0xe
.long 0x4
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -