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

📄 lcddummy.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 4 页
字号:
                  |L3.56|
                          DCD      GUI_Context

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

                  LCD_L0_DrawVLine PROC
;;;495    */
;;;496    void LCD_L0_DrawVLine(int x,int y0,int y1)
000000  e92d41f0          PUSH     {r4-r8,lr}
;;;497    {
;;;498      if (GUI_Context.DrawMode&LCD_DRAWMODE_XOR)
000004  4e0c              LDR      r6,|L4.56|
000006  4607              MOV      r7,r0                 ;497
000008  7b30              LDRB     r0,[r6,#0xc]  ; GUI_Context
00000a  460c              MOV      r4,r1                 ;497
00000c  4615              MOV      r5,r2                 ;497
00000e  07c0              LSLS     r0,r0,#31
000010  d00f              BEQ      |L4.50|
000012  e004              B        |L4.30|
                  |L4.20|
;;;499        {
;;;500          for(;y0<=y1;y0++)
;;;501            {
;;;502              LCD_L0_XorPixel(x,y0);
000014  4621              MOV      r1,r4
000016  4638              MOV      r0,r7
000018  f7fffffe          BL       LCD_L0_XorPixel
00001c  1c64              ADDS     r4,r4,#1              ;500
                  |L4.30|
00001e  42ac              CMP      r4,r5                 ;500
000020  ddf8              BLE      |L4.20|
                  |L4.34|
;;;503            }
;;;504        }
;;;505      else
;;;506        {
;;;507          for(;y0<=y1;y0++)
;;;508             {
;;;509               LCD_L0_SetPixelIndex(x,y0,LCD_COLORINDEX);
;;;510             }
;;;511        }
;;;512    }
000022  e8bd81f0          POP      {r4-r8,pc}
                  |L4.38|
000026  8872              LDRH     r2,[r6,#2]            ;509  ; GUI_Context
000028  4621              MOV      r1,r4                 ;509
00002a  4638              MOV      r0,r7                 ;509
00002c  f7fffffe          BL       LCD_L0_SetPixelIndex
000030  1c64              ADDS     r4,r4,#1              ;507
                  |L4.50|
000032  42ac              CMP      r4,r5                 ;507
000034  ddf7              BLE      |L4.38|
000036  e7f4              B        |L4.34|
;;;513    
                          ENDP

                  |L4.56|
                          DCD      GUI_Context

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

                  LCD_L0_FillRect PROC
;;;517    */
;;;518    void LCD_L0_FillRect(int x0,int y0,int x1,int y1)
000000  e92d41f0          PUSH     {r4-r8,lr}
;;;519    {
000004  4606              MOV      r6,r0
000006  460c              MOV      r4,r1
000008  4617              MOV      r7,r2
00000a  461d              MOV      r5,r3
;;;520      for(;y0<=y1;y0++)
00000c  e005              B        |L5.26|
                  |L5.14|
;;;521        {
;;;522          LCD_L0_DrawHLine(x0,y0,x1);
00000e  463a              MOV      r2,r7
000010  4621              MOV      r1,r4
000012  4630              MOV      r0,r6
000014  f7fffffe          BL       LCD_L0_DrawHLine
000018  1c64              ADDS     r4,r4,#1              ;520
                  |L5.26|
00001a  42ac              CMP      r4,r5                 ;520
00001c  ddf7              BLE      |L5.14|
;;;523        }
;;;524    }
00001e  e8bd81f0          POP      {r4-r8,pc}
;;;525    
                          ENDP


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

                  LCD_L0_GetPixelIndex PROC
;;;450    */
;;;451    unsigned int LCD_L0_GetPixelIndex(int x, int y)
000000  b510              PUSH     {r4,lr}
;;;452    {
;;;453      LCD_PIXELINDEX PixelIndex;
;;;454       LCD_SetCursor(x,y);
000002  b289              UXTH     r1,r1
000004  b280              UXTH     r0,r0
000006  f7fffffe          BL       LCD_SetCursor
;;;455       PixelIndex=LCD_ReadRAM();
00000a  e8bd4010          POP      {r4,lr}
00000e  f7ffbffe          B.W      LCD_ReadRAM
;;;456       //PixelIndex=LcdBuf[y*240+x];
;;;457      return PixelIndex;
;;;458    }
;;;459    
                          ENDP


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

                  LCD_L0_Init PROC
;;;603    */
;;;604    int  LCD_L0_Init(void)
000000  b510              PUSH     {r4,lr}
;;;605    {
;;;606      LCD_INIT_CONTROLLER();
000002  f7fffffe          BL       STM3210E_LCD_Init
;;;607      return 0;
000006  2000              MOVS     r0,#0
;;;608    }
000008  bd10              POP      {r4,pc}
;;;609    
                          ENDP


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

                  LCD_L0_Off PROC
;;;589    
;;;590    void LCD_Off (void)
000000  4770              BX       lr
;;;591    {
;;;592    #ifdef LCD_OFF
;;;593      LCD_OFF();
;;;594    #endif
;;;595    }
;;;596    
                          ENDP


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

                  LCD_L0_On PROC
;;;582    */
;;;583    void LCD_On (void)
000000  4770              BX       lr
;;;584    {
;;;585    #ifdef LCD_ON
;;;586      LCD_ON();
;;;587    #endif
;;;588    }
;;;589    
                          ENDP


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

                  LCD_L0_SetLUTEntry PROC
;;;613    */
;;;614    void LCD_L0_SetLUTEntry(U8 Pos, LCD_COLOR Color)
000000  4770              BX       lr
;;;615    {
;;;616      GUI_USE_PARA(Pos);
;;;617      GUI_USE_PARA(Color);
;;;618    }
;;;619    
                          ENDP


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

                  LCD_L0_SetOrg PROC
;;;572    */
;;;573    void LCD_L0_SetOrg(int x,int y)
000000  4770              BX       lr
;;;574    {
;;;575      GUI_USE_PARA(x);
;;;576      GUI_USE_PARA(y);
;;;577    }
;;;578    
                          ENDP


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

                  LCD_L0_SetPixelIndex PROC
;;;433    */
;;;434    void LCD_L0_SetPixelIndex(int x,int y,int PixelIndex)
000000  b510              PUSH     {r4,lr}
;;;435    {
000002  4614              MOV      r4,r2
;;;436      LCD_SetCursor(x,y);
000004  b289              UXTH     r1,r1
000006  b280              UXTH     r0,r0
000008  f7fffffe          BL       LCD_SetCursor
;;;437      LCD_WriteRAM_Prepare();
00000c  f7fffffe          BL       LCD_WriteRAM_Prepare
;;;438      LCD_WriteRAM(PixelIndex);
000010  b2a0              UXTH     r0,r4
000012  e8bd4010          POP      {r4,lr}
000016  f7ffbffe          B.W      LCD_WriteRAM
;;;439      //LcdBuf[y*240+x]=PixelIndex;
;;;440    }
;;;441    
                          ENDP


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

                  LCD_L0_XorPixel PROC
;;;463    */
;;;464    void LCD_L0_XorPixel(int x, int y)
000000  b570              PUSH     {r4-r6,lr}
;;;465    {
000002  4604              MOV      r4,r0
000004  460d              MOV      r5,r1
;;;466      LCD_PIXELINDEX PixelIndex = LCD_L0_GetPixelIndex(x,y);
000006  f7fffffe          BL       LCD_L0_GetPixelIndex
00000a  b280              UXTH     r0,r0
;;;467      LCD_L0_SetPixelIndex(x,y,LCD_NUM_COLORS-PixelIndex-1);
00000c  f64f71ff          MOV      r1,#0xffff
000010  1a0a              SUBS     r2,r1,r0
000012  4629              MOV      r1,r5
000014  4620              MOV      r0,r4
000016  e8bd4070          POP      {r4-r6,lr}
00001a  f7ffbffe          B.W      LCD_L0_SetPixelIndex
;;;468    }
;;;469    
                          ENDP


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

                  _DrawBitLine1BPP PROC
;;;111    */
;;;112    static void  _DrawBitLine1BPP(int x,int y,U8 const GUI_UNI_PTR *p,int Diff,int xsize,const LCD_PIXELINDEX*pTrans)
000000  e92d5ff0          PUSH     {r4-r12,lr}
;;;113    {
000004  468b              MOV      r11,r1
;;;114      LCD_PIXELINDEX Index0 = *(pTrans+0);
000006  e9dd710a          LDRD     r7,r1,[sp,#0x28]
;;;115      LCD_PIXELINDEX Index1 = *(pTrans+1);
;;;116      x += Diff;
00000a  18c6              ADDS     r6,r0,r3
;;;117      switch(GUI_Context.DrawMode&(LCD_DRAWMODE_TRANS|LCD_DRAWMODE_XOR))
00000c  482a              LDR      r0,|L14.184|
00000e  f8b18000          LDRH     r8,[r1,#0]            ;114
000012  f8b19002          LDRH     r9,[r1,#2]            ;115
000016  7b00              LDRB     r0,[r0,#0xc]  ; GUI_Context
;;;118         {
;;;119          case 0:
;;;120                 do {
;;;121                      LCD_L0_SetPixelIndex(x++,y,(*p&(0x80>>Diff))?Index1:Index0);
000018  2180              MOVS     r1,#0x80
00001a  4615              MOV      r5,r2                 ;113
00001c  461c              MOV      r4,r3                 ;113
00001e  f0100003          ANDS     r0,r0,#3              ;117
000022  d005              BEQ      |L14.48|
000024  2801              CMP      r0,#1                 ;117
000026  d02c              BEQ      |L14.130|
000028  2802              CMP      r0,#2                 ;117
00002a  d115              BNE      |L14.88|
00002c  4688              MOV      r8,r1
;;;122    			      if(++Diff == 8)
;;;123                        {
;;;124                          Diff = 0;
;;;125    				      p++;
;;;126    			        }
;;;127    		         }while(--xsize);
;;;128                 break;
;;;129          case LCD_DRAWMODE_TRANS:
;;;130                 do{
00002e  e015              B        |L14.92|
                  |L14.48|
000030  468a              MOV      r10,r1                ;121
                  |L14.50|
000032  7828              LDRB     r0,[r5,#0]            ;121
000034  fa2af104          LSR      r1,r10,r4             ;121
000038  464a              MOV      r2,r9                 ;121
00003a  4208              TST      r0,r1                 ;121
00003c  d100              BNE      |L14.64|
00003e  4642              MOV      r2,r8                 ;121
                  |L14.64|
000040  4630              MOV      r0,r6                 ;121
000042  1c76              ADDS     r6,r6,#1              ;121
000044  4659              MOV      r1,r11                ;121
000046  f7fffffe          BL       LCD_L0_SetPixelIndex
00004a  1c64              ADDS     r4,r4,#1              ;122
00004c  2c08              CMP      r4,#8                 ;122
00004e  d101              BNE      |L14.84|
000050  2400              MOVS     r4,#0                 ;124
000052  1c6d              ADDS     r5,r5,#1              ;125
                  |L14.84|
000054  1e7f              SUBS     r7,r7,#1              ;127
000056  d1ec              BNE      |L14.50|
                  |L14.88|
;;;131      		         if(*p & (0x80 >> Diff))
;;;132                         LCD_L0_SetPixelIndex(x,y,Index1);

⌨️ 快捷键说明

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