📄 eepromoper.txt
字号:
;;;99 tmp = read(SYS_SUNJIAN_LIULIANG, data, 4);
0002c8 e3a02004 MOV r2,#4
0002cc e28d1000 ADD r1,sp,#0
0002d0 e3a00018 MOV r0,#0x18
0002d4 ebfffffe BL read
0002d8 e1a05000 MOV r5,r0
;;;100 val = convert_char_to_double(data);
0002dc e28d0000 ADD r0,sp,#0
0002e0 ebfffffe BL convert_char_to_double
0002e4 e1a04000 MOV r4,r0
;;;101 g_cur_measuredata.measuredata[P_ADDR_INSTANT].val = val;
0002e8 e59f06e4 LDR r0,|L1.2516|
0002ec e5804018 STR r4,[r0,#0x18]
;;;102 return val;
0002f0 e1a00004 MOV r0,r4
0002f4 e8bd403e POP {r1-r5,lr}
;;;103 }//读瞬时流量,2个小数位
0002f8 e12fff1e BX lr
;;;104
ENDP
setmilageflow PROC
;;;105 void setmilageflow(float val) {
0002fc e92d40fe PUSH {r1-r7,lr}
000300 e1a04000 MOV r4,r0
;;;106 unsigned char tmp;
;;;107 unsigned char data[10];
;;;108 strncpy(data, convert_float_to_char(val), 4);
000304 e1a00004 MOV r0,r4
000308 ebfffffe BL convert_float_to_char
00030c e1a06000 MOV r6,r0
000310 e3a02004 MOV r2,#4
000314 e1a01000 MOV r1,r0
000318 e28d0000 ADD r0,sp,#0
00031c ebfffffe BL strncpy
;;;109 tmp = write(SYS_LEIJI_LIULIANG, data, 4);
000320 e3a02004 MOV r2,#4
000324 e28d1000 ADD r1,sp,#0
000328 e3a0001c MOV r0,#0x1c
00032c ebfffffe BL write
000330 e1a05000 MOV r5,r0
;;;110 g_cur_measuredata.measuredata[P_ADDR_MILAGE].val = val;
000334 e59f0698 LDR r0,|L1.2516|
000338 e5804028 STR r4,[r0,#0x28]
;;;111 return;
;;;112 }
00033c e8bd40fe POP {r1-r7,lr}
000340 e12fff1e BX lr
;;;113
ENDP
readmilageflow PROC
;;;114 float readmilageflow(void) {
000344 e92d403e PUSH {r1-r5,lr}
;;;115 unsigned char tmp;
;;;116 unsigned char data[10];
;;;117 float val;
;;;118
;;;119 tmp = read(SYS_LEIJI_LIULIANG, data, 4);
000348 e3a02004 MOV r2,#4
00034c e28d1000 ADD r1,sp,#0
000350 e3a0001c MOV r0,#0x1c
000354 ebfffffe BL read
000358 e1a05000 MOV r5,r0
;;;120 val = convert_char_to_double(data);
00035c e28d0000 ADD r0,sp,#0
000360 ebfffffe BL convert_char_to_double
000364 e1a04000 MOV r4,r0
;;;121 g_cur_measuredata.measuredata[P_ADDR_MILAGE].val = val;
000368 e59f0664 LDR r0,|L1.2516|
00036c e5804028 STR r4,[r0,#0x28]
;;;122
;;;123 return val;
000370 e1a00004 MOV r0,r4
000374 e8bd403e POP {r1-r5,lr}
;;;124 }//读瞬时流量,2个小数位
000378 e12fff1e BX lr
;;;125
ENDP
setinstantvalrecpos PROC
;;;126 void setinstantvalrecpos(long pos) {
00037c e92d40fe PUSH {r1-r7,lr}
000380 e1a04000 MOV r4,r0
;;;127 unsigned char tmp;
;;;128 unsigned char data[10];
;;;129 strncpy(data, inttohexstr(pos), 4);
000384 e1a00004 MOV r0,r4
000388 ebfffffe BL inttohexstr
00038c e1a06000 MOV r6,r0
000390 e3a02004 MOV r2,#4
000394 e1a01000 MOV r1,r0
000398 e28d0000 ADD r0,sp,#0
00039c ebfffffe BL strncpy
;;;130 tmp = write(SYS_CURR_INSTANT_ADDR, data, 4);
0003a0 e3a02004 MOV r2,#4
0003a4 e28d1000 ADD r1,sp,#0
0003a8 e3a00028 MOV r0,#0x28
0003ac ebfffffe BL write
0003b0 e1a05000 MOV r5,r0
;;;131 return;
;;;132 }
0003b4 e8bd40fe POP {r1-r7,lr}
0003b8 e12fff1e BX lr
;;;133
ENDP
readinstantvalrecpos PROC
;;;134 int readinstantvalrecpos(void) {
0003bc e92d403e PUSH {r1-r5,lr}
;;;135 unsigned char tmp;
;;;136 unsigned char data[10];
;;;137
;;;138 tmp = read(SYS_CURR_INSTANT_ADDR, data, 4);
0003c0 e3a02004 MOV r2,#4
0003c4 e28d1000 ADD r1,sp,#0
0003c8 e3a00028 MOV r0,#0x28
0003cc ebfffffe BL read
0003d0 e1a04000 MOV r4,r0
;;;139
;;;140 return (long)hexstrtoint(data);
0003d4 e28d0000 ADD r0,sp,#0
0003d8 ebfffffe BL hexstrtoint
0003dc e8bd403e POP {r1-r5,lr}
;;;141 }
0003e0 e12fff1e BX lr
;;;142
ENDP
setinstantvalreclen PROC
;;;143 void setinstantvalreclen(int len) {
0003e4 e92d403e PUSH {r1-r5,lr}
0003e8 e1a04000 MOV r4,r0
;;;144 unsigned char data[10];
;;;145 strncpy(data, inttohexstr(len), 4);
0003ec e1a00004 MOV r0,r4
0003f0 ebfffffe BL inttohexstr
0003f4 e1a05000 MOV r5,r0
0003f8 e3a02004 MOV r2,#4
0003fc e1a01000 MOV r1,r0
000400 e28d0000 ADD r0,sp,#0
000404 ebfffffe BL strncpy
;;;146 write(SYS_INSTANT_STEP, data, 4);
000408 e3a02004 MOV r2,#4
00040c e28d1000 ADD r1,sp,#0
000410 e3a0002c MOV r0,#0x2c
000414 ebfffffe BL write
;;;147 return;
;;;148 }
000418 e8bd403e POP {r1-r5,lr}
00041c e12fff1e BX lr
;;;149 //设置瞬间值存储位置
ENDP
setlastreboottime PROC
;;;150 void setlastreboottime(char *rt) {}//设置最后重新启动时间
000420 e12fff1e BX lr
;;;151 char *readlastreboottime(void) {}
ENDP
readlastreboottime PROC
000424 e12fff1e BX lr
;;;152 void setlastdayreporttime(char *rt) {}//设置最后日值上报时间
ENDP
setlastdayreporttime PROC
000428 e12fff1e BX lr
;;;153 char *readlastdayreporttime(void) {}
ENDP
readlastdayreporttime PROC
00042c e12fff1e BX lr
;;;154 void setlasthourreporttime(char *rt) {}
ENDP
setlasthourreporttime PROC
000430 e12fff1e BX lr
;;;155 char *readlasthourreporttime(void) {}
ENDP
readlasthourreporttime PROC
000434 e12fff1e BX lr
;;;156 void setlastminreporttime(char *rt) {}//min
ENDP
setlastminreporttime PROC
000438 e12fff1e BX lr
;;;157 char *readlastminreporttime(void) {}
ENDP
readlastminreporttime PROC
00043c e12fff1e BX lr
;;;158 void setlastinstantreporttime(char *rt) {}//instant
ENDP
setlastinstantreporttime PROC
000440 e12fff1e BX lr
;;;159 char *readlastinstantreporttime(void) {}
ENDP
readlastinstantreporttime PROC
000444 e12fff1e BX lr
;;;160 void setlastlogreporttime(char *rt) {}
ENDP
setlastlogreporttime PROC
000448 e12fff1e BX lr
;;;161 char * readlastlogreporttime(void) {}
ENDP
readlastlogreporttime PROC
00044c e12fff1e BX lr
;;;162 void setlastreporttime(char *rt) {}
ENDP
setlastreporttime PROC
000450 e12fff1e BX lr
;;;163 char * readlastreporttime(void) {}
ENDP
readlastreporttime PROC
000454 e12fff1e BX lr
;;;164 void setlastalarmreporttime(char *rt) {}
ENDP
setlastalarmreporttime PROC
000458 e12fff1e BX lr
;;;165 char * readlastalarmreporttime(void) {}
ENDP
readlastalarmreporttime PROC
00045c e12fff1e BX lr
;;;166 /**************瞬间数据存储,存在EEPROM中 *******************************/
ENDP
addinstantdata PROC
;;;172 *****************************************/
;;;173 void addinstantdata(char *rt, MEASUREDATA *buf, unsigned int len) {
000460 e92d47f0 PUSH {r4-r10,lr}
000464 e24dd018 SUB sp,sp,#0x18
000468 e1a07000 MOV r7,r0
00046c e1a08001 MOV r8,r1
000470 e1a09002 MOV r9,r2
;;;174 //1.读当前地址,步进
;;;175 //2.写数据
;;;176 unsigned int iCurpos;
;;;177 unsigned int iStep;
;;;178 unsigned char uTemp[20];
;;;179 unsigned char bTemp;
;;;180
;;;181 iCurpos = readinstantvalrecpos();
000474 ebfffffe BL readinstantvalrecpos
000478 e1a04000 MOV r4,r0
;;;182 iStep = 0x50;
00047c e3a05050 MOV r5,#0x50
;;;183
;;;184 if (((iCurpos - 0x200)/iStep) >= 59)
000480 e2440c02 SUB r0,r4,#0x200
000484 e1a01005 MOV r1,r5
000488 ebfffffe BL __aeabi_uidivmod
00048c e350003b CMP r0,#0x3b
000490 3a000000 BCC |L1.1176|
;;;185 iCurpos = 0x200;
000494 e3a04c02 MOV r4,#0x200
|L1.1176|
;;;186
;;;187 uTemp[POS_Second] = g_cur_measuredata.measuretime[POS_Second];
000498 e59f0534 LDR r0,|L1.2516|
00049c e5d00007 LDRB r0,[r0,#7] ; g_cur_measuredata
0004a0 e5cd000b STRB r0,[sp,#0xb]
;;;188 uTemp[POS_Minute] = g_cur_measuredata.measuretime[POS_Minute];
0004a4 e59f0528 LDR r0,|L1.2516|
0004a8 e5d00006 LDRB r0,[r0,#6] ; g_cur_measuredata
0004ac e5cd000a STRB r0,[sp,#0xa]
;;;189 uTemp[POS_Hour] = g_cur_measuredata.measuretime[POS_Hour];
0004b0 e59f051c LDR r0,|L1.2516|
0004b4 e5d00005 LDRB r0,[r0,#5] ; g_cur_measuredata
0004b8 e5cd0009 STRB r0,[sp,#9]
;;;190 uTemp[POS_Week] = g_cur_measuredata.measuretime[POS_Week];
0004bc e59f0510 LDR r0,|L1.2516|
0004c0 e5d00004 LDRB r0,[r0,#4] ; g_cur_measuredata
0004c4 e5cd0008 STRB r0,[sp,#8]
;;;191 uTemp[POS_Date] = g_cur_measuredata.measuretime[POS_Date];
0004c8 e59f0504 LDR r0,|L1.2516|
0004cc e5d00003 LDRB r0,[r0,#3] ; g_cur_measuredata
0004d0 e5cd0007 STRB r0,[sp,#7]
;;;192 uTemp[POS_Month] = g_cur_measuredata.measuretime[POS_Month];
0004d4 e59f04f8 LDR r0,|L1.2516|
0004d8 e5d00002 LDRB r0,[r0,#2] ; g_cur_measuredata
0004dc e5cd0006 STRB r0,[sp,#6]
;;;193 uTemp[POS_YearL] = g_cur_measuredata.measuretime[POS_YearL];
0004e0 e59f04ec LDR r0,|L1.2516|
0004e4 e5d00001 LDRB r0,[r0,#1] ; g_cur_measuredata
0004e8 e5cd0005 STRB r0,[sp,#5]
;;;194 uTemp[POS_YearH] = g_cur_measuredata.measuretime[POS_YearH];
0004ec e59f04e0 LDR r0,|L1.2516|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -