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

📄 progbar.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 3 页
字号:
;;;441        pObj = PROGBAR_H2P(hObj);
000008  4620              MOV      r0,r4
00000a  f7fffffe          BL       GUI_ALLOC_h2p
;;;442        pObj->TextAlign = Align;
00000e  f8a05046          STRH     r5,[r0,#0x46]
;;;443        WM_InvalidateWindow(hObj);
000012  4620              MOV      r0,r4
000014  e8bd4070          POP      {r4-r6,lr}
000018  f7ffbffe          B.W      WM_InvalidateWindow
                  |L6.28|
;;;444        WM_UNLOCK();
;;;445      }
;;;446    }
00001c  bd70              POP      {r4-r6,pc}
;;;447    
                          ENDP


                          AREA ||i.PROGBAR_SetTextColor||, CODE, READONLY, ALIGN=1

                  PROGBAR_SetTextColor PROC
;;;394    */
;;;395    void PROGBAR_SetTextColor(PROGBAR_Handle hObj, unsigned int Index, GUI_COLOR color) {
000000  b570              PUSH     {r4-r6,lr}
000002  0005              MOVS     r5,r0
000004  460c              MOV      r4,r1
000006  4616              MOV      r6,r2
;;;396      PROGBAR_Obj* pObj;
;;;397      if (hObj) {
000008  d00c              BEQ      |L7.36|
;;;398        WM_LOCK();
;;;399        pObj = PROGBAR_H2P(hObj);
00000a  4628              MOV      r0,r5
00000c  f7fffffe          BL       GUI_ALLOC_h2p
;;;400        if (Index < GUI_COUNTOF(pObj->TextColor)) {
000010  2c02              CMP      r4,#2
000012  d207              BCS      |L7.36|
;;;401          pObj->TextColor[Index] = color;
000014  eb000084          ADD      r0,r0,r4,LSL #2
;;;402          WM_InvalidateWindow(hObj);
000018  6386              STR      r6,[r0,#0x38]
00001a  4628              MOV      r0,r5
00001c  e8bd4070          POP      {r4-r6,lr}
000020  f7ffbffe          B.W      WM_InvalidateWindow
                  |L7.36|
;;;403        }
;;;404        WM_UNLOCK();
;;;405      }
;;;406    }
000024  bd70              POP      {r4-r6,pc}
;;;407    
                          ENDP


                          AREA ||i.PROGBAR_SetTextPos||, CODE, READONLY, ALIGN=1

                  PROGBAR_SetTextPos PROC
;;;451    */
;;;452    void PROGBAR_SetTextPos(PROGBAR_Handle hObj, int XOff, int YOff) {
000000  b570              PUSH     {r4-r6,lr}
000002  0004              MOVS     r4,r0
000004  460d              MOV      r5,r1
000006  4616              MOV      r6,r2
;;;453      PROGBAR_Obj* pObj;
;;;454      if (hObj) {
000008  d00a              BEQ      |L8.32|
;;;455        WM_LOCK();
;;;456        pObj = PROGBAR_H2P(hObj);
00000a  4620              MOV      r0,r4
00000c  f7fffffe          BL       GUI_ALLOC_h2p
;;;457        pObj->XOff = XOff;
000010  f8205f42          STRH     r5,[r0,#0x42]!
;;;458        pObj->YOff = YOff;
000014  8046              STRH     r6,[r0,#2]
;;;459        WM_InvalidateWindow(hObj);
000016  4620              MOV      r0,r4
000018  e8bd4070          POP      {r4-r6,lr}
00001c  f7ffbffe          B.W      WM_InvalidateWindow
                  |L8.32|
;;;460        WM_UNLOCK();
;;;461      }
;;;462    }
000020  bd70              POP      {r4-r6,pc}
;;;463    
                          ENDP


                          AREA ||i.PROGBAR_SetValue||, CODE, READONLY, ALIGN=1

                  PROGBAR_SetValue PROC
;;;314    */
;;;315    void PROGBAR_SetValue(PROGBAR_Handle hObj, int v) {
000000  b5f0              PUSH     {r4-r7,lr}
000002  b087              SUB      sp,sp,#0x1c
000004  0006              MOVS     r6,r0
000006  460d              MOV      r5,r1
;;;316      if (hObj) {
000008  d056              BEQ      |L9.184|
;;;317        PROGBAR_Obj* pObj;
;;;318        WM_LOCK();
;;;319        pObj= PROGBAR_H2P(hObj);
00000a  4630              MOV      r0,r6
00000c  f7fffffe          BL       GUI_ALLOC_h2p
000010  4604              MOV      r4,r0
;;;320        /* Put v into legal range */
;;;321        if (v < pObj->Min) {
000012  6c80              LDR      r0,[r0,#0x48]
000014  42a8              CMP      r0,r5
000016  dd00              BLE      |L9.26|
;;;322    	    v = pObj->Min;
000018  4605              MOV      r5,r0
                  |L9.26|
;;;323        }
;;;324        if (v > pObj->Max) {
00001a  6ce0              LDR      r0,[r4,#0x4c]
00001c  42a8              CMP      r0,r5
00001e  da00              BGE      |L9.34|
;;;325    	    v = pObj->Max;
000020  4605              MOV      r5,r0
                  |L9.34|
;;;326        }
;;;327        if (pObj->v != v) {
000022  6aa1              LDR      r1,[r4,#0x28]
000024  42a9              CMP      r1,r5
000026  d047              BEQ      |L9.184|
;;;328          GUI_RECT r;
;;;329          /* Get x values */
;;;330          if (v < pObj->v) {
000028  dd07              BLE      |L9.58|
;;;331            r.x0 = _Value2X(pObj, v);
00002a  4629              MOV      r1,r5
00002c  4620              MOV      r0,r4
00002e  f7fffffe          BL       _Value2X
000032  f8ad0014          STRH     r0,[sp,#0x14]
;;;332            r.x1 = _Value2X(pObj, pObj->v);
000036  6aa1              LDR      r1,[r4,#0x28]
000038  e005              B        |L9.70|
                  |L9.58|
;;;333          } else {
;;;334            r.x0 = _Value2X(pObj, pObj->v);
00003a  4620              MOV      r0,r4
00003c  f7fffffe          BL       _Value2X
000040  f8ad0014          STRH     r0,[sp,#0x14]
;;;335            r.x1 = _Value2X(pObj, v);
000044  4629              MOV      r1,r5
                  |L9.70|
000046  4620              MOV      r0,r4
000048  f7fffffe          BL       _Value2X
00004c  f8ad0018          STRH     r0,[sp,#0x18]
;;;336          }
;;;337    		  r.y0    = 0;
000050  2000              MOVS     r0,#0
000052  f8ad0016          STRH     r0,[sp,#0x16]
;;;338    		  r.y1    = 4095;
000056  f64070ff          MOV      r0,#0xfff
00005a  f8ad001a          STRH     r0,[sp,#0x1a]
;;;339          if (pObj->hpText == 0) {
00005e  f8b40040          LDRH     r0,[r4,#0x40]
000062  bb20              CBNZ     r0,|L9.174|
;;;340            const GUI_FONT GUI_UNI_PTR * pOldFont;
;;;341            char acBuffer[5];
;;;342            GUI_RECT rText;
;;;343            pOldFont = GUI_SetFont(pObj->pFont);
000064  6ae0              LDR      r0,[r4,#0x2c]
000066  f7fffffe          BL       GUI_SetFont
00006a  4607              MOV      r7,r0
;;;344            _GetTextRect(pObj, &rText, _GetText(pObj, acBuffer));
00006c  a903              ADD      r1,sp,#0xc
00006e  4620              MOV      r0,r4
000070  f7fffffe          BL       _GetText
000074  4602              MOV      r2,r0
000076  a901              ADD      r1,sp,#4
000078  4620              MOV      r0,r4
00007a  f7fffffe          BL       _GetTextRect
;;;345            GUI_MergeRect(&r, &r, &rText);
00007e  aa01              ADD      r2,sp,#4
000080  a905              ADD      r1,sp,#0x14
000082  a805              ADD      r0,sp,#0x14
000084  f7fffffe          BL       GUI_MergeRect
;;;346            pObj->v = v;
;;;347            _GetTextRect(pObj, &rText, _GetText(pObj, acBuffer));
000088  a903              ADD      r1,sp,#0xc
00008a  4620              MOV      r0,r4
00008c  62a5              STR      r5,[r4,#0x28]
00008e  f7fffffe          BL       _GetText
000092  4602              MOV      r2,r0
000094  a901              ADD      r1,sp,#4
000096  4620              MOV      r0,r4
000098  f7fffffe          BL       _GetTextRect
;;;348            GUI_MergeRect(&r, &r, &rText);
00009c  aa01              ADD      r2,sp,#4
00009e  a905              ADD      r1,sp,#0x14
0000a0  a805              ADD      r0,sp,#0x14
0000a2  f7fffffe          BL       GUI_MergeRect
;;;349            GUI_SetFont(pOldFont);
0000a6  4638              MOV      r0,r7
0000a8  f7fffffe          BL       GUI_SetFont
;;;350          } else {
0000ac  e000              B        |L9.176|
                  |L9.174|
;;;351            pObj->v = v;
0000ae  62a5              STR      r5,[r4,#0x28]
                  |L9.176|
;;;352          }
;;;353          WM_InvalidateRect(hObj, &r);
0000b0  a905              ADD      r1,sp,#0x14
0000b2  4630              MOV      r0,r6
0000b4  f7fffffe          BL       WM_InvalidateRect
                  |L9.184|
;;;354        }
;;;355        WM_UNLOCK();
;;;356      }
;;;357    }
0000b8  b007              ADD      sp,sp,#0x1c
0000ba  bdf0              POP      {r4-r7,pc}
;;;358    
                          ENDP


                          AREA ||i._DrawPart||, CODE, READONLY, ALIGN=1

                  _DrawPart PROC
;;;149    */
;;;150    static void _DrawPart(const PROGBAR_Obj* pObj, int Index,
000000  e92d41f0          PUSH     {r4-r8,lr}
;;;151    										  int xText, int yText, const char* pText) {
;;;152      LCD_SetBkColor(pObj->BarColor[Index]);
000004  eb000481          ADD      r4,r0,r1,LSL #2
000008  4615              MOV      r5,r2                 ;151
00000a  461e              MOV      r6,r3                 ;151
00000c  9f06              LDR      r7,[sp,#0x18]
00000e  6b20              LDR      r0,[r4,#0x30]
000010  f7fffffe          BL       LCD_SetBkColor
;;;153      LCD_SetColor(pObj->TextColor[Index]);
000014  6ba0              LDR      r0,[r4,#0x38]
000016  f7fffffe          BL       LCD_SetColor
;;;154      GUI_Clear();
00001a  f7fffffe          BL       GUI_Clear
;;;155      GUI_GotoXY(xText, yText);
00001e  4631              MOV      r1,r6
000020  4628              MOV      r0,r5
000022  f7fffffe          BL       GUI_GotoXY
;;;156      GUI_DispString(pText);
000026  4638              MOV      r0,r7
000028  e8bd41f0          POP      {r4-r8,lr}
00002c  f7ffbffe          B.W      GUI_DispString
;;;157    }
;;;158    
                          ENDP


                          AREA ||i._GetText||, CODE, READONLY, ALIGN=1

                  _GetText PROC
;;;162    */
;;;163    static const char* _GetText(const PROGBAR_Obj* pObj, char* pBuffer) {
000000  b513              PUSH     {r0,r1,r4,lr}
;;;164      char* pText;
;;;165      if (pObj->hpText) {
000002  f9b01040          LDRSH    r1,[r0,#0x40]
000006  b121              CBZ      r1,|L11.18|
000008  4608              MOV      r0,r1
;;;166        pText = (char*) GUI_ALLOC_h2p(pObj->hpText);
00000a  f7fffffe          BL       GUI_ALLOC_h2p
00000e  4604              MOV      r4,r0
000010  e013              B        |L11.58|
                  |L11.18|
;;;167      } else {
;;;168        pText = pBuffer;
;;;169        GUI_AddDecMin((100 * (I32)(pObj->v - pObj->Min)) / (pObj->Max - pObj->Min), &pBuffer);
000012  6a82              LDR      r2,[r0,#0x28]
000014  6c81              LDR      r1,[r0,#0x48]
000016  6cc0              LDR      r0,[r0,#0x4c]
000018  1a52              SUBS     r2,r2,r1
00001a  2364              MOVS     r3,#0x64
00001c  1a40              SUBS     r0,r0,r1
00001e  435a              MULS     r2,r3,r2
000020  fb92f0f0          SDIV     r0,r2,r0
000024  9c01              LDR      r4,[sp,#4]
000026  a901              ADD      r1,sp,#4
000028  f7fffffe          BL       GUI_AddDecMin
;;;170        *pBuffer++ = '%';
00002c  9801              LDR      r0,[sp,#4]
00002e  2125              MOVS     r1,#0x25
000030  f8001b01          STRB     r1,[r0],#1
;;;171    		*pBuffer   = 0;

⌨️ 快捷键说明

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