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

📄 eepromoper.txt

📁 工厂环境污染控制数据采集器
💻 TXT
📖 第 1 页 / 共 5 页
字号:
;;;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 + -