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

📄 editfloat.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\editfloat.o --depend=.\Obj\editfloat.d --device=DARMSTM --apcs=interwork -O3 -I..\..\include -I..\..\..\FWLib\library\inc -I..\..\..\USBLib\library\inc -I..\..\Config -I..\..\GUI\Core -I..\..\GUI\Font -I..\..\GUI\ConvertColor -I..\..\GUI\AntiAlias -I..\..\GUI\ConvertMono -I..\..\GUI\JPEG -I..\..\GUI\MemDev -I..\..\GUI\MultiLayer -I..\..\GUI\Widget -I..\..\GUI\WM -IC:\Keil\ARM\INC\ST\STM32F10x ..\..\GUI\Widget\EDITFloat.c]
                          THUMB

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

                  EDIT_GetFloatValue PROC
;;;56     */
;;;57     float EDIT_GetFloatValue(EDIT_Handle hObj) {
000000  b570              PUSH     {r4-r6,lr}
000002  0001              MOVS     r1,r0
;;;58       float Value = 0;
000004  f04f0000          MOV      r0,#0
;;;59       if (hObj) {
000008  d013              BEQ      |L1.50|
;;;60         float Scale;
;;;61         EDIT_Obj * pObj;
;;;62         WM_LOCK();
;;;63         pObj  = EDIT_H2P(hObj);
00000a  4608              MOV      r0,r1
00000c  f7fffffe          BL       GUI_ALLOC_h2p
000010  4604              MOV      r4,r0
;;;64         Scale = (float)GUI_Pow10[pObj->NumDecs];
000012  f8900038          LDRB     r0,[r0,#0x38]
000016  4907              LDR      r1,|L1.52|
000018  f8510020          LDR      r0,[r1,r0,LSL #2]
00001c  f7fffffe          BL       __aeabi_ui2f
000020  4605              MOV      r5,r0
;;;65         Value = (float)(I32)pObj->CurrentValue / Scale;
000022  6be0              LDR      r0,[r4,#0x3c]
000024  f7fffffe          BL       __aeabi_i2f
000028  4629              MOV      r1,r5
00002a  e8bd4070          POP      {r4-r6,lr}
00002e  f7ffbffe          B.W      __aeabi_fdiv
                  |L1.50|
;;;66         WM_UNLOCK();
;;;67       }
;;;68       return Value;
;;;69     }
000032  bd70              POP      {r4-r6,pc}
;;;70     
                          ENDP

                  |L1.52|
                          DCD      GUI_Pow10

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

                  EDIT_SetFloatMode PROC
;;;38     */
;;;39     void EDIT_SetFloatMode(EDIT_Handle hEdit, float Value, float Min, float Max, int Shift, U8 Flags) {
000000  e92d5ffc          PUSH     {r2-r12,lr}
;;;40       I32 _Value, _Min, _Max;
;;;41       float Scale;
;;;42       if (hEdit) {
000004  e9dd6b0c          LDRD     r6,r11,[sp,#0x30]
000008  0005              MOVS     r5,r0                 ;39
00000a  460c              MOV      r4,r1                 ;39
00000c  4617              MOV      r7,r2                 ;39
00000e  469a              MOV      r10,r3                ;39
000010  d038              BEQ      |L2.132|
;;;43         WM_LOCK();
;;;44         Scale  =(float)GUI_Pow10[Shift];
000012  481d              LDR      r0,|L2.136|
000014  f8500026          LDR      r0,[r0,r6,LSL #2]
000018  f7fffffe          BL       __aeabi_ui2f
00001c  4680              MOV      r8,r0
;;;45         _Value = floor(Scale * Value + 0.5);
00001e  4621              MOV      r1,r4
000020  f7fffffe          BL       __aeabi_fmul
000024  f7fffffe          BL       __aeabi_f2d
000028  a418              ADR      r4,|L2.140|
00002a  e9d42300          LDRD     r2,r3,[r4,#0]
00002e  f7fffffe          BL       __aeabi_dadd
000032  f7fffffe          BL       floor
000036  f7fffffe          BL       __aeabi_d2iz
00003a  4681              MOV      r9,r0
;;;46         _Min   = floor(Scale * Min + 0.5);
00003c  4639              MOV      r1,r7
00003e  4640              MOV      r0,r8
000040  f7fffffe          BL       __aeabi_fmul
000044  f7fffffe          BL       __aeabi_f2d
000048  e9d42300          LDRD     r2,r3,[r4,#0]
00004c  f7fffffe          BL       __aeabi_dadd
000050  f7fffffe          BL       floor
000054  f7fffffe          BL       __aeabi_d2iz
000058  4607              MOV      r7,r0
;;;47         _Max   = floor(Scale * Max + 0.5);
00005a  4651              MOV      r1,r10
00005c  4640              MOV      r0,r8
00005e  f7fffffe          BL       __aeabi_fmul
000062  f7fffffe          BL       __aeabi_f2d
000066  cc0c              LDM      r4!,{r2,r3}
000068  f7fffffe          BL       __aeabi_dadd
00006c  f7fffffe          BL       floor
000070  f7fffffe          BL       __aeabi_d2iz
;;;48         EDIT_SetDecMode(hEdit, _Value, _Min, _Max, Shift, Flags);
000074  e9cd6b00          STRD     r6,r11,[sp,#0]
000078  4603              MOV      r3,r0
00007a  463a              MOV      r2,r7
00007c  4649              MOV      r1,r9
00007e  4628              MOV      r0,r5
000080  f7fffffe          BL       EDIT_SetDecMode
                  |L2.132|
;;;49         WM_UNLOCK();
;;;50       }
;;;51     }
000084  e8bd9ffc          POP      {r2-r12,pc}
;;;52     
                          ENDP

                  |L2.136|
                          DCD      GUI_Pow10
                  |L2.140|
00008c  00000000
000090  3fe00000          DCFD     0x3fe0000000000000 ; 0.5

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

                  EDIT_SetFloatValue PROC
;;;74     */
;;;75     void EDIT_SetFloatValue(EDIT_Handle hObj, float Value) {
000000  b570              PUSH     {r4-r6,lr}
000002  0004              MOVS     r4,r0
000004  460d              MOV      r5,r1
;;;76       if (hObj) {
000006  d021              BEQ      |L3.76|
;;;77         float Scale;
;;;78         EDIT_Obj * pObj;
;;;79         WM_LOCK();
;;;80         pObj  = EDIT_H2P(hObj);
000008  4620              MOV      r0,r4
00000a  f7fffffe          BL       GUI_ALLOC_h2p
;;;81         Scale = (float)GUI_Pow10[pObj->NumDecs];
00000e  f8900038          LDRB     r0,[r0,#0x38]
000012  490f              LDR      r1,|L3.80|
000014  f8510020          LDR      r0,[r1,r0,LSL #2]
000018  f7fffffe          BL       __aeabi_ui2f
;;;82         Value *= Scale;
00001c  4601              MOV      r1,r0
00001e  4628              MOV      r0,r5
000020  f7fffffe          BL       __aeabi_fmul
000024  4605              MOV      r5,r0
;;;83         EDIT_SetValue(hObj, (I32)(Value + (Value >= 0 ? 0.5 : -0.5)));
000026  f7fffffe          BL       __aeabi_f2d
00002a  f1154fff          CMN      r5,#0x7f800000
00002e  d201              BCS      |L3.52|
000030  a308              ADR      r3,|L3.84|
000032  e000              B        |L3.54|
                  |L3.52|
000034  a309              ADR      r3,|L3.92|
                  |L3.54|
000036  cb0c              LDM      r3,{r2,r3}
000038  f7fffffe          BL       __aeabi_dadd
00003c  f7fffffe          BL       __aeabi_d2iz
000040  4601              MOV      r1,r0
000042  4620              MOV      r0,r4
000044  e8bd4070          POP      {r4-r6,lr}
000048  f7ffbffe          B.W      EDIT_SetValue
                  |L3.76|
;;;84         WM_UNLOCK();
;;;85       }
;;;86     }
00004c  bd70              POP      {r4-r6,pc}
;;;87     
                          ENDP

00004e  0000              DCW      0x0000
                  |L3.80|
                          DCD      GUI_Pow10
                  |L3.84|
000054  00000000
000058  3fe00000          DCFD     0x3fe0000000000000 ; 0.5
                  |L3.92|
00005c  00000000
000060  bfe00000          DCFD     0xbfe0000000000000 ; -0.5

⌨️ 快捷键说明

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