📄 foreground.asm
字号:
; Archelon URCC C 3.20 2005/04/19
; MSP430 CIF 2005/04/06
; Compiled "E:\Developing\freq\Anti-Tamperring Emeter\key_check_emeter\source_file\foreground.c" Fri Sep 09 15:45:01 2005
;
.dbgseg dbg_syms
.align 0x2
.long 0x6c69662e
.long 0x65
.long 0x1
.long 0x0
.long 0x167fffe
.long 0x0
.long DBG5
.long 0x0
.long 0x0
.long 0x0
; __builtin__ unsigned short _BIS_SR(unsigned short);
; __builtin__ unsigned short _BIC_SR(unsigned short);
; __builtin__ unsigned short _BIS_SR_IRQ(unsigned short);
; __builtin__ unsigned short _BIC_SR_IRQ(unsigned short);
; __builtin__ void _DINT(void);
; __builtin__ void _EINT(void);
; __builtin__ void _NOP(void);
; __builtin__ void _OPC(const unsigned short op);
; __builtin__ short _SWPB(short);
; __builtin__ long _SWPB_LONG(long);
; __builtin__ float _SWPB_FLOAT(float);
; sfrb IE1 = (0x0000) ;
; sfrb IFG1 = (0x0002) ;
; sfrb ME1 = (0x0004) ;
; sfrb IE2 = (0x0001) ;
; sfrb IFG2 = (0x0003) ;
; sfrw WDTCTL = (0x0120) ;
; const sfrb P1IN = (0x0020) ;
; sfrb P1OUT = (0x0021) ;
; sfrb P1DIR = (0x0022) ;
; sfrb P1IFG = (0x0023) ;
; sfrb P1IES = (0x0024) ;
; sfrb P1IE = (0x0025) ;
; sfrb P1SEL = (0x0026) ;
; const sfrb P2IN = (0x0028) ;
; sfrb P2OUT = (0x0029) ;
; sfrb P2DIR = (0x002A) ;
; sfrb P2IFG = (0x002B) ;
; sfrb P2IES = (0x002C) ;
; sfrb P2IE = (0x002D) ;
; sfrb P2SEL = (0x002E) ;
; sfrb BTCTL = (0x0040) ;
; sfrb BTCNT1 = (0x0046) ;
; sfrb BTCNT2 = (0x0047) ;
; sfrb SCFI0 = (0x0050) ;
; sfrb SCFI1 = (0x0051) ;
; sfrb SCFQCTL = (0x0052) ;
; sfrb FLL_CTL0 = (0x0053) ;
; sfrb FLL_CTL1 = (0x0054) ;
; sfrb SVSCTL = (0x0056) ;
; sfrb LCDCTL = (0x0090) ;
; sfrb LCDM1 = (0x0091) ;
; sfrb LCDM2 = (0x0092) ;
; sfrb LCDM3 = (0x0093) ;
; sfrb LCDM4 = (0x0094) ;
; sfrb LCDM5 = (0x0095) ;
; sfrb LCDM6 = (0x0096) ;
; sfrb LCDM7 = (0x0097) ;
; sfrb LCDM8 = (0x0098) ;
; sfrb LCDM9 = (0x0099) ;
; sfrb LCDM10 = (0x009A) ;
; sfrb LCDM11 = (0x009B) ;
; sfrb LCDM12 = (0x009C) ;
; sfrb LCDM13 = (0x009D) ;
; sfrb LCDM14 = (0x009E) ;
; sfrb LCDM15 = (0x009F) ;
; sfrb LCDM16 = (0x00A0) ;
; sfrb LCDM17 = (0x00A1) ;
; sfrb LCDM18 = (0x00A2) ;
; sfrb LCDM19 = (0x00A3) ;
; sfrb LCDM20 = (0x00A4) ;
; sfrb U0CTL = (0x0070) ;
; sfrb U0TCTL = (0x0071) ;
; sfrb U0RCTL = (0x0072) ;
; sfrb U0MCTL = (0x0073) ;
; sfrb U0BR0 = (0x0074) ;
; sfrb U0BR1 = (0x0075) ;
; const sfrb U0RXBUF = (0x0076) ;
; sfrb U0TXBUF = (0x0077) ;
; const sfrw TAIV = (0x012E) ;
; sfrw TACTL = (0x0160) ;
; sfrw TACCTL0 = (0x0162) ;
; sfrw TACCTL1 = (0x0164) ;
; sfrw TACCTL2 = (0x0166) ;
; sfrw TAR = (0x0170) ;
; sfrw TACCR0 = (0x0172) ;
; sfrw TACCR1 = (0x0174) ;
; sfrw TACCR2 = (0x0176) ;
; sfrw FCTL1 = (0x0128) ;
; sfrw FCTL2 = (0x012A) ;
; sfrw FCTL3 = (0x012C) ;
; sfrw MPY = (0x0130) ;
; sfrw MPYS = (0x0132) ;
; sfrw MAC = (0x0134) ;
; sfrw MACS = (0x0136) ;
; sfrw OP2 = (0x0138) ;
; sfrw RESLO = (0x013A) ;
; sfrw RESHI = (0x013C) ;
; const sfrw SUMEXT = (0x013E) ;
; sfrb SD16INCTL0 = (0x00B0) ;
; sfrb SD16INCTL1 = (0x00B1) ;
; sfrb SD16INCTL2 = (0x00B2) ;
; sfrb SD16PRE0 = (0x00B8) ;
; sfrb SD16PRE1 = (0x00B9) ;
; sfrb SD16PRE2 = (0x00BA) ;
; sfrb SD16TRIM1 = (0x00BF) ;
; sfrb SD16CONF0 = (0x00B7) ;
; sfrb SD16CONF1 = (0x00BF) ;
; sfrw SD16CTL = (0x0100) ;
; sfrw SD16CCTL0 = (0x0102) ;
; sfrw SD16CCTL1 = (0x0104) ;
; sfrw SD16CCTL2 = (0x0106) ;
; sfrw SD16IV = (0x0110) ;
; sfrw SD16MEM0 = (0x0112) ;
; sfrw SD16MEM1 = (0x0114) ;
; sfrw SD16MEM2 = (0x0116) ;
; sfrw ESPCTL = (0x0150) ;
; sfrw MBCTL = (0x0152) ;
; sfrw MBIN0 = (0x0154) ;
; sfrw MBIN1 = (0x0156) ;
; sfrw MBOUT0 = (0x0158) ;
; sfrw MBOUT1 = (0x015A) ;
; const sfrw RET0 = (0x01C0) ;
; const sfrw RET1 = (0x01C2) ;
; const sfrw RET2 = (0x01C4) ;
; const sfrw RET3 = (0x01C6) ;
; const sfrw RET4 = (0x01C8) ;
; const sfrw RET5 = (0x01CA) ;
; const sfrw RET6 = (0x01CC) ;
; const sfrw RET7 = (0x01CE) ;
; const sfrw RET8 = (0x01D0) ;
; const sfrw RET9 = (0x01D2) ;
; const sfrw RET10 = (0x01D4) ;
; const sfrw RET11 = (0x01D6) ;
; const sfrw RET12 = (0x01D8) ;
; const sfrw RET13 = (0x01DA) ;
; const sfrw RET14 = (0x01DC) ;
; const sfrw RET15 = (0x01DE) ;
; const sfrw RET16 = (0x01E0) ;
; const sfrw RET17 = (0x01E2) ;
; const sfrw RET18 = (0x01E4) ;
; const sfrw RET19 = (0x01E6) ;
; const sfrw RET20 = (0x01E8) ;
; const sfrw RET21 = (0x01EA) ;
; const sfrw RET22 = (0x01EC) ;
; const sfrw RET23 = (0x01EE) ;
; const sfrw RET24 = (0x01F0) ;
; const sfrw RET25 = (0x01F2) ;
; const sfrw RET26 = (0x01F4) ;
; const sfrw RET27 = (0x01F6) ;
; const sfrw RET28 = (0x01F8) ;
; const sfrw RET29 = (0x01FA) ;
; const sfrw RET30 = (0x01FC) ;
; const sfrw RET31 = (0x01FE) ;
; typedef unsigned char uint8;
; uint8 size 1
; typedef signed char int8;
; int8 size 1
; typedef unsigned int uint16;
; uint16 size 2
; typedef signed int int16;
; int16 size 2
; typedef unsigned long uint32;
; uint32 size 4
; typedef signed long int32;
; int32 size 4
; typedef unsigned char uint8_t;
; uint8_t size 1
; typedef signed char int8_t;
; int8_t size 1
; typedef unsigned int uint16_t;
; uint16_t size 2
; typedef signed int int16_t;
; int16_t size 2
; typedef unsigned long uint32_t;
; uint32_t size 4
; typedef signed long int32_t;
; int32_t size 4
; extern const unsigned char lcd_digit_table[];
; struct emeter_var
; {
; uint16 ui_meter_status;
; uint16 ui_anti_tamperring_status;
; uint16 ui_firmware_version;
; uint8 uc_display_stage;
; uint16 ui_sec_count;
; uint16 ui_main_frequency;
; uint16 ui_power_factor;
; int16 i_last_temperature;
; int16 i_temperature;
; int16 i_temperature_offset;
; uint16 ui_current_IRMS;
; uint16 ui_voltage_V1RMS;
; float f_total_energy;
; uint32 ul_total_power;
; uint32 ul_act_power_counter;
; uint32 ul_act_power1;
; uint32 ul_act_power2;
; uint32 ul_react_power;
; uint32 ul_app_power;
; float f_re_total_power;
; uint8 ucFlashOperated[2];
; float f_Cz1;
; float f_Cz2;
; uint16 ui_GainCorr1;
; uint16 ui_GainCorr2;
; int32 l_PowerOffset1;
; int32 l_PowerOffset2;
; float f_PhaseCorr1;
; float f_PhaseCorr2;
; uint16 ui_SD16_CurrentCorr1;
; uint16 ui_SD16_CurrentCorr2;
; uint16 ui_SD16_VoltageCorr1;
; uint16 ul_TempSampleOffset;
; uint8 ucCalibrationMode;
; uint8 ucCalibrationOption;
; uint8 uc_pout_hc595;
; uint8 uc_restart_esp_delay;
; uint8 uc_lcd_remaining_times;
; uint8 uc_switch_delay_counter;
; uint8 display_stage;
; };
; extern struct emeter_var emeter;
; union signed_long_word
; {
; int32 l;
; uint16 w[2];
; };
; extern union signed_long_word ds;
; extern uint32 ul_total_power_infact;
; extern uint16 ui_step_counter;
; struct current_sensor_parms_s
; {
; uint16 V_rms;
; uint16 I_rms;
; int32_t I_dc_estimate;
; int16_t P_accum[3];
; int16_t P_accum_logged[3];
; int16_t I_sq_accum[3];
; int16_t I_sq_accum_logged[3];
; int16_t sample_count;
; int16_t sample_count_logged;
; int16_t fir_beta;
; int16_t fir_step;
; int16_t fir_gain;
; int16_t I_history[2];
; int8_t I_endstops;
; };
; struct phase_parms_s
; {
; uint16_t V_rms;
; uint16_t I_rms;
; int32_t V_dc_estimate[2];
; int16_t V_history[4];
; int16_t V_sq_accum[3];
; int16_t V_sq_accum_logged[3];
; struct current_sensor_parms_s current;
; struct current_sensor_parms_s neutral;
; int16_t sample_count;
; int16_t sample_count_logged;
; uint16_t status;
; int8_t V_endstops;
; int8_t V_history_index;
; };
; extern struct phase_parms_s *phase;
; enum
; {
; DISPLAY_STAGE_ACT_ENERGY_1 = 1,
; DISPLAY_STAGE_ACT_ENERGY_2,
; DISPLAY_STAGE_CURRENT,
; DISPLAY_STAGE_VOLTAGE,
; DISPLAY_STAGE_FREQUENCY,
; DISPLAY_STAGE_POWERFACTOR,
; DISPLAY_STAGE_REACT_ENERGY,
; DISPLAY_STAGE_APP_ENERGY,
; DISPLAY_STAGE_TEMPERATURE,
; DISPLAY_STAGE_TIME,
; DISPLAY_STAGE_DATE,
; DISPLAY_STAGE_TEST1,
; DISPLAY_STAGE_TEST2,
; DISPLAY_STAGE_TEST3,
; DISPLAY_STAGE_TEST4,
; DISPLAY_STAGE_TEST5,
; DISPLAY_STAGE_TEST6,
; DISPLAY_STAGE_TEST7,
; DISPLAY_STAGE_TEST8,
; DISPLAY_STAGE_TEST9,
; DISPLAY_STAGE_LAST
; };
; struct rtc_s
; {
; uint8 second;
; uint8 minute;
; uint8 hour;
; uint8 day;
; uint8 week;
; uint8 month;
; uint8 year;
; uint8 sumcheck;
; };
; extern struct rtc_s rtc;
; extern uint32 ul_actensper1;
; extern uint32 ul_actensper2;
; extern void display (unsigned int value);
; extern void update_display(void);
; extern void LCDudec16(unsigned int value, int pos, int digits, int after);
; extern void LCDudec32(unsigned long value, int pos, int digits, int after);
; extern void LCDicon(int id, int on);
; extern void LCDmodify_char(unsigned char ch, int pos, int on);
; extern void LCDchar(unsigned char ch, int pos);
; extern void clr_lcd_display(void);
; extern void bin2bcd32(unsigned char bcd[5], unsigned long bin);
; extern void bin2bcd16(unsigned char bcd[3], unsigned int bin);
; extern unsigned long scale_long(unsigned long l, float f);
; extern unsigned int scale_int(unsigned int i, float f);
; extern void set_rtc_sumcheck(void);
; extern int check_rtc_sumcheck(void);
; extern int bump_rtc(void);
; extern int weekday(void);
; extern void rtc_bumper(void);
; extern void correct_rtc(void);
; extern void init_analog_front_end_ESP(void);
; extern void init_esp_parameter(void);
; extern void set_parameter(unsigned int param, unsigned int data);
; extern void start_measurement(void);
; extern char store_flash_var(char *ptr,char *from, int len);
; extern void EnergyReadyIntMapping(void);
; extern void ActensperReadyIntMapping(void);
; extern void BasicTimerIntMapping(void);
; void init_analog_front_end_SD16(void);
; extern void tpd_gen(void);
; extern int16_t dc_filter(register int32_t *p, register int16_t x);
; extern int32_t imul16_up(register int16_t x, register int16_t y);
; extern void accum48(register int16_t x[3], register int32_t y);
; extern void log_parameters(void);
; extern void transfer48(register int16_t y[3], register int16_t x[3]);
; extern int32_t div48(register int16_t x[3], register int16_t y);
; extern int32_t isqrt32(register int32_t h);
; extern int32_t div_sh48(register int16_t x[3], int sh, register int16_t y);
; extern int32_t current(void);
; extern int32_t voltage(void);
; extern void CheckExternVoltage(void);
; extern void EnterSD16Measure (void);
; extern void ExitSD16Measure (void);
; extern void EnterESPMeasure (void);
; extern void ExitESPMeasure (void);
; extern void SwitchToSD16Measure(void);
; extern void SwitchToESPMeasure(void);
; extern void OnlyRTCMode(void);
; void ClrDispVary(unsigned char OpMode);
; extern uint32 ul_actensper1;
; extern uint32 ul_actensper2;
; struct phase_parms_s phase_nv;
; struct phase_parms_s *phase = &phase_nv;
.iseg foreground_idata
.align 0x2
foreground_V1:
.align 0x2
.align 0x2
.data _phase_nv
.dseg foreground_data
.align 0x2
foreground_V2:
.align 0x2
.global _phase
_phase:
.bss 0x2
; phase size 2
; struct emeter_var emeter;
; static __inline__ void init_fll(void)
; }
; static __inline__ void goto_high_freq(void)
; }
; static __inline__ void init_bt(void)
; }
; static __inline__ void init_TA(void)
; }
; static __inline__ void init_sys(void)
; }
; static __inline__ void DefaultSetting(void)
; }
; static __inline__ void ReadDataFromFlash(void)
; }
; void main (void)
.dbgseg dbg_syms
DBG3:
.long 0x6e69616d
.long 0x0
.long _main
.long 0x40
.long 0x1020001
.long DBG1
.long DBG7-DBG8
.long DBG9
.long DBG6
.long 0x0
.pseg foreground_code
DBG8:
.dbgseg dbg_syms
DBG1:
.long 0x66622e
.long 0x0
.long DBG8
.long 0x0
.long 0x1650001
.long 0x0
.long 0x97
.long 0x0
.long DBG10
.long 0x0
.dbgseg dbg_line
.align 0x2
DBG9:
.long DBG3
.long 0x0
.long _main
.long 0x1
.long DBG12
.long 0x2
.long DBG13
.long 0x4
.long DBG14
.long 0x6
.long DBG32
.long 0x7
.long DBG41
.long 0x8
.long DBG63
.long 0x9
.long DBG69
.long 0xa
.long DBG76
.long 0xb
.long DBG83
.long 0xc
.long DBG91
.long 0xd
.long DBG92
.long 0x12
.long DBG93
.long 0x13
.long DBG94
.long 0x15
.long DBG95
.long 0x16
.long DBG96
.long 0x17
.long DBG97
.long 0x18
.long DBG98
.long 0x19
.long DBG99
.long 0x1a
.long DBG100
.long 0x1b
.long DBG101
.long 0x1d
.long DBG102
.long 0x1e
.long DBG103
.long 0x1f
.long DBG104
.long 0x20
.long DBG105
.long 0x21
.long DBG106
.long 0x22
.long DBG107
.long 0x23
.long DBG108
.long 0x24
.long DBG109
.long 0x25
.long DBG110
.long 0x26
.long DBG111
.long 0x27
.long DBG112
.long 0x28
.long DBG113
.long 0x29
.long DBG114
.long 0x2a
.long DBG115
.long 0x2b
.long DBG116
.long 0x2d
.long DBG117
.long 0x2e
.long DBG118
.long 0x30
.long DBG119
.long 0x31
.long DBG120
.long 0x32
.long DBG121
.long 0x33
.long DBG122
.long 0x34
.long DBG123
.long 0x35
.long DBG124
.long 0x36
.long DBG125
.long 0x37
.long DBG126
.long 0x38
.long DBG127
.long 0x39
.long DBG128
.long 0x3a
.long DBG129
.long 0x3b
.long DBG131
.long 0x3c
.long DBG132
.long 0x3d
.long DBG133
.long 0x3e
.long DBG134
.long 0x41
.long DBG135
.long 0x42
.long DBG136
.long 0x43
.long DBG137
.long 0x44
.long DBG138
.long 0x45
.long DBG139
.long 0x48
.long DBG140
.long 0x49
.long DBG141
.long 0x4a
.long DBG142
.long 0x4b
.long DBG143
.long 0x4c
.long DBG144
.long 0x4d
.long DBG145
.long 0x4e
.long DBG146
.long 0x4f
.long DBG147
.long 0x51
.long DBG148
.long 0x52
.long DBG149
.long 0x53
.long DBG150
.long 0x54
.long DBG151
.long 0x55
.long DBG152
.long 0x56
.long DBG153
.long 0x57
.long DBG154
.long 0x58
.long DBG156
.long 0x59
.long DBG157
.long 0x5a
.long DBG158
.long 0x5c
.long DBG159
.long 0x5d
.long DBG160
.long 0x5e
.long DBG161
.long 0x5f
.long DBG162
.long 0x60
.long DBG163
.long 0x61
.long DBG164
.long 0x62
.long DBG165
.long 0x63
.long DBG166
.long 0x64
.long DBG167
.long 0x65
.long DBG168
.long 0x66
.long DBG169
.long 0x67
.long DBG170
.long 0x68
.long DBG171
.long 0x69
.long DBG172
.long 0x6a
.long DBG173
.long 0x6b
.long DBG174
.long 0x6c
.long DBG175
.long 0x6d
.long DBG176
.long 0x6e
.long DBG177
.long 0x6f
.long DBG178
.long 0x70
.long DBG179
.long 0x71
.long DBG180
.long 0x72
.long DBG181
.long 0x73
.pseg foreground_code
.global _main
_main:
; ENTRY
DBG11:
; flash_ptr in reg size 2
; ram_ptr in reg size 2
; i in reg size 1
; {
DBG12:
; WDTCTL = (0x5A00) + (0x0080) ;
DBG13:
mov #0x5a80,&0x120
DBG16:
DBG15:
DBG14:
; init_sys();
; {
; if (!check_rtc_sumcheck())
call #_check_rtc_sumcheck
cmp #0x0,r12
jne main_L1
DBG18:
DBG17:
; {
; rtc.second = 1;
mov.b #0x1,&_rtc
DBG19:
; rtc.minute = 1;
mov.b #0x1,&_rtc+0x1
DBG20:
; rtc.hour = 1;
mov.b #0x1,&_rtc+0x2
DBG21:
; rtc.day = 1;
mov.b #0x1,&_rtc+0x3
DBG22:
; rtc.month = 1;
mov.b #0x1,&_rtc+0x5
DBG23:
; rtc.year = 5;
mov.b #0x5,&_rtc+0x6
DBG24:
; set_rtc_sumcheck();
call #_set_rtc_sumcheck
DBG26:
DBG25:
; }
main_L1:
; P1SEL &= ~( (0x0001) + (0x0002) );
mov.b #0xfc,r12
and.b r12,&0x26
DBG27:
; P1IES |= (0x0001) + (0x0002) ;
mov.b #0x3,r13
bis.b r13,&0x24
DBG28:
; P1DIR &= ~( (0x0001) + (0x0002) );
and.b r12,&0x22
DBG29:
; P1IFG = 0;
mov.b #0x0,&0x23
DBG30:
; P1IE |= (0x0001) + (0x0002) ;
bis.b r13,&0x25
DBG34:
DBG33:
DBG32:
DBG31:
; ReadDataFromFlash();
; {
; char * flash_ptr;
; char * ram_ptr;
; uint8 i;
; flash_ptr = (char *)0x1010;
mov #0x1010,r13
DBG35:
; ram_ptr = (char *)&emeter.ucFlashOperated[0];
mov #_emeter+0x38,r14
DBG36:
; for(i=0;i< 38 ;i++)
mov.b #0x0,r12
main_L2:
; {
DBG37:
; * ram_ptr++ = * flash_ptr++;
DBG38:
mov r14,r15
add #0x1,r14
mov.b @r13+,0(r15)
DBG39:
add.b #0x1,r12
cmp.b #0x26,r12
jnc main_L2
DBG43:
DBG42:
DBG41:
DBG40:
; }
; DefaultSetting();
; {
; if((emeter.ucFlashOperated[0] != 0x55) || (emeter.ucFlashOperated[1] != 0x55))
mov.b #0x55,r12
cmp.b r12,&_emeter+0x38
jne main_L4
cmp.b r12,&_emeter+0x39
jeq main_L3
main_L4:
; {
DBG44:
; emeter.ucFlashOperated[0] = 0x55;
DBG45:
mov.b #0x55,r12
mov.b r12,&_emeter+0x38
DBG46:
; emeter.ucFlashOperated[1] = 0x55;
mov.b r12,&_emeter+0x39
DBG47:
; emeter.f_Cz1 = ( 0.0000270576 *100) ;
mov #0x531e,&_emeter+0x3a
mov #0x3b31,&_emeter+0x3c
DBG48:
; emeter.f_Cz2 = ( 0.0000455807 *100) ;
mov #0x5bdc,&_emeter+0x3e
mov #0x3b95,&_emeter+0x40
DBG49:
; emeter.l_PowerOffset1 = 0;
mov #0x0,&_emeter+0x46
mov #0x0,&_emeter+0x48
DBG50:
; emeter.l_PowerOffset2 = 0;
mov #0x0,&_emeter+0x4a
mov #0x0,&_emeter+0x4c
DBG51:
; emeter.f_PhaseCorr1 = 0;
mov #0x0,r12
mov #0x0,r13
mov r12,&_emeter+0x4e
mov r13,&_emeter+0x50
DBG52:
; emeter.f_PhaseCorr2 = 0;
mov r12,&_emeter+0x52
mov r13,&_emeter+0x54
DBG53:
; emeter.ui_GainCorr1 = 0x4000;
mov #0x4000,r12
mov r12,&_emeter+0x42
DBG54:
; emeter.ui_GainCorr2 = 0x4000;
mov r12,&_emeter+0x44
DBG55:
; emeter.ui_SD16_CurrentCorr1 = 2300;
mov #0x8fc,&_emeter+0x56
DBG56:
; emeter.ui_SD16_CurrentCorr2 = 2228;
mov #0x8b4,&_emeter+0x58
DBG57:
; emeter.ui_SD16_VoltageCorr1 = 9359;
mov #0x248f,&_emeter+0x5a
DBG58:
; emeter.ul_TempSampleOffset = 2680 ;
mov #0xa78,&_emeter+0x5c
DBG59:
; store_flash_var((char *)0x1010,(char *)&emeter.ucFlashOperated[0], 38 );
mov #0x26,r14
mov #_emeter+0x38,r13
mov #0x1010,r12
call #_store_flash_var
DBG61:
DBG60:
; }
main_L3:
DBG62:
; init_bt();
DBG63:
; {
DBG64:
; LCDCTL = 0x03D;
DBG65:
mov.b #0x3d,&0x90
DBG66:
; BTCTL = (0x00) | ( (0x02) ) | ( (0x20) ) ;
mov.b #0x22,&0x40
DBG67:
; IE2 |= (0x80) ;
mov.b #0x80,r12
bis.b r12,&0x1
DBG71:
DBG70:
DBG69:
DBG68:
; init_TA();
; {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -