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

📄 dashboard.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 5 页
字号:
000048  f7fff7ff          BL       __aeabi_dadd
00004c  a224              ADR      r2,|L10.224|
00004e  ca0c              LDM      r2,{r2,r3}
000050  f7fff7ff          BL       __aeabi_ddiv
000054  f7fff7ff          BL       __aeabi_d2f
000058  4681              MOV      r9,r0
;;;6452     _MagnifyPolygon(_aNeedle, _aNeedleSrc[Shape], NumPoints, Radius / 100.);
00005a  4923              LDR      r1,|L10.232|
00005c  eb05eb05          ADD      r0,r5,r5,LSL #2
000060  eb01eb01          ADD      r5,r1,r0,LSL #2
000064  4638              MOV      r0,r7
000066  f7fff7ff          BL       __aeabi_i2d
00006a  4604              MOV      r4,r0
00006c  a01f              ADR      r0,|L10.236|
00006e  c80c              LDM      r0!,{r2,r3}
000070  4620              MOV      r0,r4
000072  f7fff7ff          BL       __aeabi_ddiv
000076  f7fff7ff          BL       __aeabi_d2f
00007a  4f1e              LDR      r7,|L10.244|
00007c  4680              MOV      r8,r0
00007e  2400              MOVS     r4,#0
                  |L10.128|
000080  f935f935          LDRSH    r0,[r5,r4,LSL #2]
000084  f7fff7ff          BL       __aeabi_i2f
000088  4641              MOV      r1,r8
00008a  f7fff7ff          BL       __aeabi_fmul
00008e  f7fff7ff          BL       __aeabi_f2iz
000092  f827f827          STRH     r0,[r7,r4,LSL #2]
000096  eb05eb05          ADD      r0,r5,r4,LSL #2
00009a  f9b0f9b0          LDRSH    r0,[r0,#2]
00009e  f7fff7ff          BL       __aeabi_i2f
0000a2  4641              MOV      r1,r8
0000a4  f7fff7ff          BL       __aeabi_fmul
0000a8  f7fff7ff          BL       __aeabi_f2iz
0000ac  eb07eb07          ADD      r1,r7,r4,LSL #2
0000b0  1c64              ADDS     r4,r4,#1
0000b2  8048              STRH     r0,[r1,#2]
0000b4  42b4              CMP      r4,r6
0000b6  dbe3              BLT      |L10.128|
;;;6453     GUI_RotatePolygon(_aNeedle, _aNeedle, NumPoints, Angel);
0000b8  490e              LDR      r1,|L10.244|
0000ba  464b              MOV      r3,r9
0000bc  4632              MOV      r2,r6
0000be  4608              MOV      r0,r1
0000c0  f7fff7ff          BL       GUI_RotatePolygon
;;;6454     return NumPoints;
0000c4  4630              MOV      r0,r6
;;;6455   }
0000c6  e8bde8bd          POP      {r4-r10,pc}
;;;6456   
                          ENDP

0000ca  0000              DCW      0x0000
                  |L10.204|
0000cc  00000018          DCD      ||.data||+0x18
                  |L10.208|
0000d0  544486e0
0000d4  400921fb          DCFD     0x400921fb544486e0 ; 3.1415926536000001
                  |L10.216|
0000d8  00000000
0000dc  40868000          DCFD     0x4086800000000000 ; 720
                  |L10.224|
0000e0  00000000
0000e4  c0668000          DCFD     0xc066800000000000 ; -180
                  |L10.232|
0000e8  00001484          DCD      ||.constdata||+0x1484
                  |L10.236|
0000ec  00000000
0000f0  40590000          DCFD     0x4059000000000000 ; 100
                  |L10.244|
0000f4  000005e0          DCD      ||.bss||+0x5e0

                          AREA ||i._CalcPointX||, CODE, READONLY, ALIGN=2

                  _CalcPointX PROC
;;;6460   */
;;;6461   static int _CalcPointX(int r, int Angel) {
000000  b570              PUSH     {r4-r6,lr}
000002  4606              MOV      r6,r0
;;;6462     return r * cos((Angel - 90) * PI / 180.);
000004  f1a1f1a1          SUB      r0,r1,#0x5a
000008  f7fff7ff          BL       __aeabi_i2d
00000c  4604              MOV      r4,r0
00000e  a00d              ADR      r0,|L11.68|
000010  c80c              LDM      r0!,{r2,r3}
000012  4620              MOV      r0,r4
000014  f7fff7ff          BL       __aeabi_dmul
000018  4604              MOV      r4,r0
00001a  a00c              ADR      r0,|L11.76|
00001c  c80c              LDM      r0!,{r2,r3}
00001e  4620              MOV      r0,r4
000020  f7fff7ff          BL       __aeabi_ddiv
000024  f7fff7ff          BL       ||cos||
000028  4605              MOV      r5,r0
00002a  460c              MOV      r4,r1
00002c  4630              MOV      r0,r6
00002e  f7fff7ff          BL       __aeabi_i2d
000032  4623              MOV      r3,r4
000034  462a              MOV      r2,r5
000036  f7fff7ff          BL       __aeabi_dmul
00003a  e8bde8bd          POP      {r4-r6,lr}
00003e  f7fff7ff          B.W      __aeabi_d2iz
;;;6463   }
;;;6464   
                          ENDP

000042  0000              DCW      0x0000
                  |L11.68|
000044  544486e0
000048  400921fb          DCFD     0x400921fb544486e0 ; 3.1415926536000001
                  |L11.76|
00004c  00000000
000050  40668000          DCFD     0x4066800000000000 ; 180

                          AREA ||i._CalcPointY||, CODE, READONLY, ALIGN=2

                  _CalcPointY PROC
;;;6468   */
;;;6469   static int _CalcPointY(int r, int Angel) {
000000  b570              PUSH     {r4-r6,lr}
000002  4606              MOV      r6,r0
;;;6470     return r * sin((Angel - 90) * PI / 180.);
000004  f1a1f1a1          SUB      r0,r1,#0x5a
000008  f7fff7ff          BL       __aeabi_i2d
00000c  4604              MOV      r4,r0
00000e  a00d              ADR      r0,|L12.68|
000010  c80c              LDM      r0!,{r2,r3}
000012  4620              MOV      r0,r4
000014  f7fff7ff          BL       __aeabi_dmul
000018  4604              MOV      r4,r0
00001a  a00c              ADR      r0,|L12.76|
00001c  c80c              LDM      r0!,{r2,r3}
00001e  4620              MOV      r0,r4
000020  f7fff7ff          BL       __aeabi_ddiv
000024  f7fff7ff          BL       ||sin||
000028  4605              MOV      r5,r0
00002a  460c              MOV      r4,r1
00002c  4630              MOV      r0,r6
00002e  f7fff7ff          BL       __aeabi_i2d
000032  4623              MOV      r3,r4
000034  462a              MOV      r2,r5
000036  f7fff7ff          BL       __aeabi_dmul
00003a  e8bde8bd          POP      {r4-r6,lr}
00003e  f7fff7ff          B.W      __aeabi_d2iz
;;;6471   }
;;;6472   
                          ENDP

000042  0000              DCW      0x0000
                  |L12.68|
000044  544486e0
000048  400921fb          DCFD     0x400921fb544486e0 ; 3.1415926536000001
                  |L12.76|
00004c  00000000
000050  40668000          DCFD     0x4066800000000000 ; 180

                          AREA ||i._GetNeedleRect||, CODE, READONLY, ALIGN=2

                  _GetNeedleRect PROC
;;;6503   */
;;;6504   static void _GetNeedleRect(const SCALE* pObj, int Index, GUI_RECT* pRect) {
000000  e92de92d          PUSH     {r4-r10,lr}
000004  4680              MOV      r8,r0
000006  4691              MOV      r9,r2
;;;6505     int NumPoints, i;
;;;6506     int x, y, r;
;;;6507     int x0 =  4096, y0 =  4096;
;;;6508     int x1 = -4096, y1 = -4096;
;;;6509     r = (pObj->ArcRadius + pObj->PenSize3) * pObj->NeedleRadius / 100;
000008  6980              LDR      r0,[r0,#0x18]
00000a  f8d8f8d8          LDR      r2,[r8,#0x44]
00000e  f44ff44f          MOV      r4,#0x1000            ;6507
000012  4410              ADD      r0,r0,r2
000014  f8d8f8d8          LDR      r2,[r8,#0x4c]
000018  4266              RSBS     r6,r4,#0              ;6508
00001a  4350              MULS     r0,r2,r0
00001c  2264              MOVS     r2,#0x64
00001e  fb90fb90          SDIV     r2,r0,r2
000022  4625              MOV      r5,r4                 ;6507
000024  4637              MOV      r7,r6                 ;6508
;;;6510     NumPoints = _CalcNeedle(pObj, Index, r);
000026  4640              MOV      r0,r8
000028  f7fff7ff          BL       _CalcNeedle
;;;6511     for (i = 0; i < NumPoints; i++) {
00002c  2100              MOVS     r1,#0
00002e  f8dff8df          LDR      r12,|L13.160|
000032  f04ff04f          MOV      lr,#6
000036  e016              B        |L13.102|
                  |L13.56|
;;;6512       x = _aNeedle[i].x / FACTOR;
000038  f93cf93c          LDRSH    r2,[r12,r1,LSL #2]
;;;6513       y = _aNeedle[i].y / FACTOR;
00003c  eb0ceb0c          ADD      r3,r12,r1,LSL #2
000040  f9b3f9b3          LDRSH    r3,[r3,#2]
000044  fb92fb92          SDIV     r2,r2,lr              ;6512
000048  fb93fb93          SDIV     r3,r3,lr
;;;6514       x0 = _Min(x0, x);
00004c  4294              CMP      r4,r2
00004e  db00              BLT      |L13.82|
000050  4614              MOV      r4,r2
                  |L13.82|
;;;6515       y0 = _Min(y0, y);
000052  429d              CMP      r5,r3
000054  db00              BLT      |L13.88|
000056  461d              MOV      r5,r3
                  |L13.88|
;;;6516       x1 = _Max(x1, x);
000058  4296              CMP      r6,r2
00005a  dc00              BGT      |L13.94|
00005c  4616              MOV      r6,r2
                  |L13.94|
;;;6517       y1 = _Max(y1, y);
00005e  429f              CMP      r7,r3
000060  dc00              BGT      |L13.100|
000062  461f              MOV      r7,r3
                  |L13.100|
000064  1c49              ADDS     r1,r1,#1              ;6511
                  |L13.102|
000066  4281              CMP      r1,r0                 ;6511
000068  dbe6              BLT      |L13.56|
;;;6518     }
;;;6519     pRect->x0 = pObj->x0 + x0 - 1;
00006a  f8d8f8d8          LDR      r0,[r8,#8]
00006e  1e64              SUBS     r4,r4,#1
000070  4420              ADD      r0,r0,r4
000072  f8a9f8a9          STRH     r0,[r9,#0]
;;;6520     pRect->y0 = pObj->y0 + y0 - 1;
000076  f8d8f8d8          LDR      r0,[r8,#0xc]
00007a  1e6d              SUBS     r5,r5,#1
00007c  4428              ADD      r0,r0,r5
00007e  f8a9f8a9          STRH     r0,[r9,#2]
;;;6521     pRect->x1 = pObj->x0 + x1 + 1;
000082  f8d8f8d8          LDR      r0,[r8,#8]
000086  1c76              ADDS     r6,r6,#1
000088  4430              ADD      r0,r0,r6
00008a  f8a9f8a9          STRH     r0,[r9,#4]
;;;6522     pRect->y1 = pObj->y0 + y1 + 1;
00008e  f8d8f8d8          LDR      r0,[r8,#0xc]
000092  1c7f              ADDS     r7,r7,#1
000094  4438              ADD      r0,r0,r7
000096  f8a9f8a9          STRH     r0,[r9,#6]
;;;6523   }
00009a  e8bde8bd          POP      {r4-r10,pc}
;;;6524   
                          ENDP

00009e  0000              DCW      0x0000
                  |L13.160|
0000a0  000005e0          DCD      ||.bss||+0x5e0

                          AREA ||i._MoveNeedle||, CODE, READONLY, ALIGN=2

                  _MoveNeedle PROC
;;;6539   */
;;;6540   static void _MoveNeedle(NEEDLE* pObj, int Index) {
000000  e92de92d          PUSH     {r0-r8,lr}
000004  4604              MOV      r4,r0
;;;6541     if (pObj->NeedleUPM) {
000006  6840              LDR      r0,[r0,#4]
000008  460f              MOV      r7,r1                 ;6540
00000a  2800              CMP      r0,#0
00000c  d059              BEQ      |L14.194|
;;;6542       GUI_RECT rOld, rNew;
;;;6543       int Dif, Time;
;;;6544       _GetNeedleRect(&_Scale[Index], Index, &rOld);
00000e  202f              MOVS     r0,#0x2f
000010  492d              LDR      r1,|L14.200|
000012  4378              MULS     r0,r7,r0
000014  eb01eb01          ADD      r6,r1,r0,LSL #2
000018  aa02              ADD      r2,sp,#8
00001a  4639              MOV      r1,r7
00001c  4630              MOV      r0,r6
00001e  f7fff7ff          BL       _GetNeedleRect
;;;6545       Time = GUI_GetTime();
000022  f7fff7ff          BL       GUI_GetTime
000026  4605              MOV      r5,r0
;;;6546       Dif = (Time - pObj->NeedlePrevTime) / (60000 / pObj->NeedleUPM / NEEDLE_GRAD);
000028  6860              LDR      r0,[r4,#4]
00002a  f64ef64e          MOV      r1,#0xea60
00002e  fb91fb91          SDIV     r0,r1,r0
000032  f44ff44f          MOV      r2,#0x2d0
000036  fb90fb90          SDIV     r1,r0,r2
00003a  68e3              LDR      r3,[r4,#0xc]
00003c  1ae8              SUBS     r0,r5,r3
00003e  fb90fb90          SDIV     r1,r0,r1
;;;6547       if (Dif != 0) {
000042  2900              CMP      r1,#0
000044  d03d              BEQ      |L14.194|
;;;6548         pObj->NeedlePos += (Dif * pObj->NeedleDir);
000046  6823              LDR      r3,[r4,#0]
000048  68a0              LDR      r0,[r4,#8]
00004a  fb01fb01          MLA      r1,r1,r0,r3
;;;6549         if (pObj->NeedlePos > NEEDLE_GRAD) {

⌨️ 快捷键说明

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