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

📄 lcdaa.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\lcdaa.o --depend=.\Obj\lcdaa.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\Core\LCDAA.c]
                          THUMB

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

                  LCD_AA_MixColors PROC
;;;61     */
;;;62     LCD_COLOR LCD_AA_MixColors(LCD_COLOR Color, LCD_COLOR BkColor, U8 Intens) {
000000  b530              PUSH     {r4,r5,lr}
;;;63       /* Calc Color seperations for FgColor first */
;;;64       I32 R = (Color&0xff)*Intens;
000002  b2c5              UXTB     r5,r0
;;;65       I32 G = (Color&0xff00)*Intens;
000004  f400447f          AND      r4,r0,#0xff00
;;;66       I32 B = (Color&0xff0000)*Intens;
000008  f400037f          AND      r3,r0,#0xff0000
;;;67       /* Add Color seperations for BkColor */
;;;68       Intens = 15-Intens;
00000c  f1c2000f          RSB      r0,r2,#0xf
000010  4355              MULS     r5,r2,r5              ;64
000012  4354              MULS     r4,r2,r4              ;65
000014  4353              MULS     r3,r2,r3              ;66
000016  b2c0              UXTB     r0,r0
;;;69       R += (BkColor&0xff)*Intens;
000018  b2ca              UXTB     r2,r1
00001a  fb025200          MLA      r2,r2,r0,r5
;;;70       G += (BkColor&0xff00)*Intens;
00001e  f401457f          AND      r5,r1,#0xff00
;;;71       B += (BkColor&0xff0000)*Intens;
000022  f401017f          AND      r1,r1,#0xff0000
000026  fb054400          MLA      r4,r5,r0,r4           ;70
00002a  fb013100          MLA      r1,r1,r0,r3
;;;72       R = (R/15)&0xff;
00002e  200f              MOVS     r0,#0xf
000030  fb92f2f0          SDIV     r2,r2,r0
;;;73       G = (G/15)&0xff00;
000034  fb94f3f0          SDIV     r3,r4,r0
;;;74       B = (B/15)&0xff0000;
000038  fb91f0f0          SDIV     r0,r1,r0
00003c  b2d2              UXTB     r2,r2                 ;72
00003e  f403437f          AND      r3,r3,#0xff00         ;73
000042  f400007f          AND      r0,r0,#0xff0000
;;;75       Color = R+G+B;
000046  18d1              ADDS     r1,r2,r3
000048  4408              ADD      r0,r0,r1
;;;76       return Color;
;;;77     }
00004a  bd30              POP      {r4,r5,pc}
;;;78     
                          ENDP


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

                  LCD_SetPixelAA PROC
;;;82     */
;;;83     void LCD_SetPixelAA(int x, int y, U8 Intens) {
000000  e92d41f0          PUSH     {r4-r8,lr}
000004  4604              MOV      r4,r0
000006  460d              MOV      r5,r1
000008  0016              MOVS     r6,r2
;;;84       if (Intens == 0)
00000a  d02a              BEQ      |L2.98|
;;;85         return;
;;;86       RETURN_IF_Y_OUT();
00000c  4f16              LDR      r7,|L2.104|
00000e  f9b70006          LDRSH    r0,[r7,#6]  ; GUI_Context
000012  42a8              CMP      r0,r5
000014  dc25              BGT      |L2.98|
000016  f9b7000a          LDRSH    r0,[r7,#0xa]  ; GUI_Context
00001a  42a8              CMP      r0,r5
00001c  db21              BLT      |L2.98|
;;;87       RETURN_IF_X_OUT();
00001e  f9b70004          LDRSH    r0,[r7,#4]  ; GUI_Context
000022  42a0              CMP      r0,r4
000024  dc1d              BGT      |L2.98|
000026  f9b70008          LDRSH    r0,[r7,#8]  ; GUI_Context
00002a  42a0              CMP      r0,r4
00002c  db19              BLT      |L2.98|
00002e  4638              MOV      r0,r7                 ;86
;;;88       if (Intens >= 15) {
;;;89         LCDDEV_L0_SetPixelIndex(x,y, LCD_COLORINDEX);
000030  8840              LDRH     r0,[r0,#2]
000032  2e0f              CMP      r6,#0xf               ;88
000034  d20d              BCS      |L2.82|
;;;90       } else {
;;;91         LCD_COLOR Color = LCD_Index2Color(LCD_COLORINDEX);
000036  f7fffffe          BL       LCD_Index2Color
00003a  4680              MOV      r8,r0
;;;92         LCD_COLOR BkColor =  LCD_GetPixelColor(x,y);
00003c  4629              MOV      r1,r5
00003e  4620              MOV      r0,r4
000040  f7fffffe          BL       LCD_GetPixelColor
;;;93         Color = LCD_AA_MixColors(Color, BkColor, Intens);
000044  4601              MOV      r1,r0
000046  4632              MOV      r2,r6
000048  4640              MOV      r0,r8
00004a  f7fffffe          BL       LCD_AA_MixColors
;;;94         LCDDEV_L0_SetPixelIndex(x,y, LCD_Color2Index(Color));
00004e  f7fffffe          BL       LCD_Color2Index
                  |L2.82|
000052  6cb9              LDR      r1,[r7,#0x48]         ;89  ; GUI_Context
000054  4602              MOV      r2,r0                 ;89
000056  6a4b              LDR      r3,[r1,#0x24]         ;89
000058  4629              MOV      r1,r5                 ;89
00005a  4620              MOV      r0,r4                 ;89
00005c  e8bd41f0          POP      {r4-r8,lr}            ;89
000060  4718              BX       r3                    ;89
                  |L2.98|
;;;95       }
;;;96     }
000062  e8bd81f0          POP      {r4-r8,pc}
;;;97     
                          ENDP

000066  0000              DCW      0x0000
                  |L2.104|
                          DCD      GUI_Context

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

                  LCD_SetPixelAA_NoTrans PROC
;;;101    */
;;;102    void LCD_SetPixelAA_NoTrans(int x, int y, U8 Intens) {
000000  e92d41f0          PUSH     {r4-r8,lr}
;;;103      RETURN_IF_Y_OUT();
000004  4f19              LDR      r7,|L3.108|
000006  4604              MOV      r4,r0                 ;102
000008  f9b70006          LDRSH    r0,[r7,#6]  ; GUI_Context
00000c  460d              MOV      r5,r1                 ;102
00000e  4616              MOV      r6,r2                 ;102
000010  4288              CMP      r0,r1
000012  dc29              BGT      |L3.104|
000014  f9b7000a          LDRSH    r0,[r7,#0xa]  ; GUI_Context
000018  42a8              CMP      r0,r5
00001a  db25              BLT      |L3.104|
;;;104      RETURN_IF_X_OUT();
00001c  f9b70004          LDRSH    r0,[r7,#4]  ; GUI_Context
000020  42a0              CMP      r0,r4
000022  dc21              BGT      |L3.104|
000024  f9b70008          LDRSH    r0,[r7,#8]  ; GUI_Context
000028  42a0              CMP      r0,r4
00002a  db1d              BLT      |L3.104|
00002c  4638              MOV      r0,r7                 ;103
;;;105      if (Intens == 0) {
;;;106        LCDDEV_L0_SetPixelIndex(x,y, LCD_BKCOLORINDEX);
00002e  6c81              LDR      r1,[r0,#0x48]
000030  8800              LDRH     r0,[r0,#0]
000032  b916              CBNZ     r6,|L3.58|
                  |L3.52|
000034  4602              MOV      r2,r0
000036  6a4b              LDR      r3,[r1,#0x24]
000038  e003              B        |L3.66|
                  |L3.58|
;;;107      } else if (Intens == 15) {
00003a  2e0f              CMP      r6,#0xf
00003c  d106              BNE      |L3.76|
;;;108        LCDDEV_L0_SetPixelIndex(x,y, LCD_COLORINDEX);
00003e  887a              LDRH     r2,[r7,#2]  ; GUI_Context
000040  6a4b              LDR      r3,[r1,#0x24]
                  |L3.66|
;;;109      } else {
;;;110        LCD_COLOR Color = LCD_AA_MixColors(LCD_Index2Color(LCD_COLORINDEX),
;;;111                                       LCD_Index2Color(LCD_BKCOLORINDEX),
;;;112                                       Intens);
;;;113        LCDDEV_L0_SetPixelIndex(x,y,LCD_Color2Index(Color));
000042  4629              MOV      r1,r5
000044  4620              MOV      r0,r4
000046  e8bd41f0          POP      {r4-r8,lr}
00004a  4718              BX       r3
                  |L3.76|
00004c  f7fffffe          BL       LCD_Index2Color
000050  4680              MOV      r8,r0                 ;110
000052  8878              LDRH     r0,[r7,#2]            ;110  ; GUI_Context
000054  f7fffffe          BL       LCD_Index2Color
000058  4632              MOV      r2,r6                 ;110
00005a  4641              MOV      r1,r8                 ;110
00005c  f7fffffe          BL       LCD_AA_MixColors
000060  f7fffffe          BL       LCD_Color2Index
;;;114      }
000064  6cb9              LDR      r1,[r7,#0x48]  ; GUI_Context
000066  e7e5              B        |L3.52|
                  |L3.104|
;;;115    }
000068  e8bd81f0          POP      {r4-r8,pc}
;;;116    
                          ENDP

                  |L3.108|
                          DCD      GUI_Context

⌨️ 快捷键说明

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