; generated by Component: ARM Compiler 5.06 update 7 (build 960) Tool: ArmCC [4d365d]
; commandline ArmCC [--c99 --list --split_sections --debug -c --asm --interleave -o..\output\sc32f1xxx_lcd.o --asm_dir=..\List\ --list_dir=..\List\ --depend=..\output\sc32f1xxx_lcd.d --cpu=Cortex-M0+ --apcs=interwork --diag_suppress=9931 -I..\FWLib\SC32F1XXX_Lib\inc -I..\User\HeadFiles -I..\User -I..\Drivers -I..\Apps -I..\CMSIS -IF:\Users\SOC\AppData\Local\Arm\Packs\ARM\CMSIS\5.8.0\Device\ARM\ARMCM0plus\Include -D__UVISION_VERSION=536 -DARMCM0P -DSC32f10xx --omf_browse=..\output\sc32f1xxx_lcd.crf ..\FWLib\SC32F1XXX_Lib\src\sc32f1xxx_lcd.c]
                          THUMB

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

                  LCD_COMConfig PROC
;;;176     */
;;;177    void LCD_COMConfig ( LCD_COMEN_Typedef COMSelect, FunctionalState NewState )
000000  4b04              LDR      r3,|L1.20|
;;;178    {
;;;179        uint32_t temp;
;;;180        temp = LCD_LED->COM_EN;
000002  691a              LDR      r2,[r3,#0x10]
;;;181        if ( NewState != DISABLE )
000004  2900              CMP      r1,#0
000006  d001              BEQ      |L1.12|
;;;182        {
;;;183            temp |= COMSelect;
000008  4302              ORRS     r2,r2,r0
00000a  e000              B        |L1.14|
                  |L1.12|
;;;184        }
;;;185        else
;;;186        {
;;;187            temp &= ~COMSelect;
00000c  4382              BICS     r2,r2,r0
                  |L1.14|
;;;188        }
;;;189        LCD_LED->COM_EN = temp;
00000e  611a              STR      r2,[r3,#0x10]
;;;190    }
000010  4770              BX       lr
;;;191    /**
                          ENDP

000012  0000              DCW      0x0000
                  |L1.20|
                          DCD      0x40022280

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

                  LCD_Cmd PROC
;;;134     */
;;;135    void LCD_Cmd ( FunctionalState NewState )
000000  4905              LDR      r1,|L2.24|
;;;136    {
;;;137        /* Check the parameters */
;;;138        assert_param ( IS_FUNCTIONAL_STATE ( NewState ) );
;;;139    
;;;140        if ( NewState != DISABLE )
000002  2800              CMP      r0,#0
;;;141        {
;;;142            /* Enable the LCD_LED Counter */
;;;143            LCD_LED->DDR_CON |= DDR_CON_DDRON;
;;;144        }
;;;145        else
;;;146        {
;;;147            /* Disable the LCD_LED Counter */
;;;148            LCD_LED->DDR_CON &= ( uint16_t ) ~DDR_CON_DDRON;
000004  6808              LDR      r0,[r1,#0]
000006  d002              BEQ      |L2.14|
000008  2280              MOVS     r2,#0x80              ;143
00000a  4310              ORRS     r0,r0,r2              ;143
00000c  e001              B        |L2.18|
                  |L2.14|
00000e  4a03              LDR      r2,|L2.28|
000010  4010              ANDS     r0,r0,r2
                  |L2.18|
000012  6008              STR      r0,[r1,#0]            ;143
;;;149        }
;;;150    }
000014  4770              BX       lr
;;;151    
                          ENDP

000016  0000              DCW      0x0000
                  |L2.24|
                          DCD      0x40022280
                  |L2.28|
                          DCD      0x0000ff7f

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

                  LCD_CustomModeScan PROC
;;;299     */
;;;300    void LCD_CustomModeScan ( void )
000000  4803              LDR      r0,|L3.16|
;;;301    {
;;;302        LCD_LED->DDR_CON |= DDR_CON_TRICOM;
000002  6801              LDR      r1,[r0,#0]
000004  2201              MOVS     r2,#1
000006  0392              LSLS     r2,r2,#14
000008  4311              ORRS     r1,r1,r2
00000a  6001              STR      r1,[r0,#0]
;;;303    }
00000c  4770              BX       lr
;;;304    
                          ENDP

00000e  0000              DCW      0x0000
                  |L3.16|
                          DCD      0x40022280

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

                  LCD_DeInit PROC
;;;44      */
;;;45     void LCD_DeInit ( void )
000000  b510              PUSH     {r4,lr}
;;;46     {
;;;47         /* Enable LCD reset state */
;;;48         RCC_APB2PeriphResetCmd ( RCC_APB2Periph_LCD_LED, ENABLE );
000002  2101              MOVS     r1,#1
000004  2003              MOVS     r0,#3
000006  f7fffffe          BL       RCC_APB2PeriphResetCmd
;;;49         /* Disable LCD reset state */
;;;50         RCC_APB2PeriphResetCmd ( RCC_APB2Periph_LCD_LED, DISABLE );
00000a  2100              MOVS     r1,#0
00000c  2003              MOVS     r0,#3
00000e  f7fffffe          BL       RCC_APB2PeriphResetCmd
;;;51     }
000012  bd10              POP      {r4,pc}
;;;52     
                          ENDP


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

                  LCD_Init PROC
;;;57      */
;;;58     void LCD_Init ( LCD_InitTypeDef* LCD_InitStruct )
000000  b510              PUSH     {r4,lr}
;;;59     {
;;;60         uint32_t tmpreg;
;;;61     
;;;62         /* Check the parameters */
;;;63         assert_param ( IS_LCD_FRAMEFRE ( LCD_InitStruct->LCD_FrameFre ) );
;;;64         assert_param ( IS_LCD_DUTY ( LCD_InitStruct->LCD_Duty ) );
;;;65     
;;;66         /*---------------------------- LCD_LEDx DDR_CON Configuration ------------------------*/
;;;67         /* Get the LCD_LEDx DDR_CON value */
;;;68         tmpreg = LCD_LED->DDR_CON;
000002  490d              LDR      r1,|L5.56|
000004  680a              LDR      r2,[r1,#0]
;;;69     
;;;70         /* Clear DMOD,BIAS,VOIRSIF,TYPE,DDRCK and TRIMODE bits */
;;;71         tmpreg &= ( uint32_t ) ~ ( DDR_CON_DMOD | DDR_CON_TYPE | DDR_CON_DDRCK | DDR_CON_TRIMODE );
000006  4b0d              LDR      r3,|L5.60|
;;;72     
;;;73         /* Configure LCD_LEDx: */
;;;74         /* Set DMOD bit to LCD_LED_MOD value */
;;;75         /* Set DDRCK,TRIMODE and TRIMODE bit to LCD_LED_FrameFre value */
;;;76         /* Set BIAS bit to LED_BiasVoltage value */
;;;77         /* Set VOIRSF bit to LED_VOIRSIF value */
;;;78         tmpreg |= ( uint32_t ) ( LCD_InitStruct->LCD_FrameFre |
000008  88c4              LDRH     r4,[r0,#6]
00000a  401a              ANDS     r2,r2,r3              ;71
00000c  8803              LDRH     r3,[r0,#0]
00000e  4323              ORRS     r3,r3,r4
000010  8884              LDRH     r4,[r0,#4]
000012  4314              ORRS     r4,r4,r2
000014  4323              ORRS     r3,r3,r4
;;;79                                  LCD_InitStruct->LCD_Bias | LCD_InitStruct->LCD_VOIRSIF );
;;;80     
;;;81         /* Write to LCD_LEDx DDR_CON */
;;;82         LCD_LED->DDR_CON = tmpreg;
000016  600b              STR      r3,[r1,#0]
;;;83     
;;;84         /*---------------------------- LCD_LEDx DDR_CFG Configuration ------------------------*/
;;;85         /* Get the LCD_LEDx DDR_CFG value */
;;;86         tmpreg = LCD_LED->DDR_CFG;
000018  684a              LDR      r2,[r1,#4]
;;;87     
;;;88         /* Clear DUTY,VOIRS and SCS bits */
;;;89         tmpreg &= ( uint32_t ) ~ ( DDR_CFG_DMOD | DDR_CFG_DUTY  | DDR_CFG_SCS );
00001a  23b3              MOVS     r3,#0xb3
00001c  439a              BICS     r2,r2,r3
;;;90     
;;;91         /* Configure LCD_LEDx: */
;;;92         /* Set DUTY bits to LCD_MOD value */
;;;93         /* Set VOIRS bits to LCD_ResSel value */
;;;94         /* Set SCS bits to LCD_Voltage value */
;;;95         tmpreg |= ( uint32_t ) ( LCD_InitStruct->LCD_ResSel |
00001e  8903              LDRH     r3,[r0,#8]
000020  8844              LDRH     r4,[r0,#2]
000022  4323              ORRS     r3,r3,r4
000024  8944              LDRH     r4,[r0,#0xa]
000026  0224              LSLS     r4,r4,#8
000028  4314              ORRS     r4,r4,r2
00002a  4323              ORRS     r3,r3,r4
;;;96                                  LCD_InitStruct->LCD_Duty | ( LCD_InitStruct->LCD_Voltage << DDR_CFG_VLCD_Pos ) );
;;;97     
;;;98         /* Write to LCD_LEDx DDR_CON */
;;;99         LCD_LED->DDR_CFG = tmpreg;
00002c  604b              STR      r3,[r1,#4]
;;;100    
;;;101        /* Write to LCD_LEDx SEG_EN */
;;;102    #if defined(SC32f10xx) || defined(SC32f12xx)
;;;103        LCD_LED->SEG_EN = LCD_InitStruct->LCD_SegPin;
00002e  6902              LDR      r2,[r0,#0x10]
000030  608a              STR      r2,[r1,#8]
;;;104    
;;;105    #endif
;;;106        /* Write to LCD_LEDx COM_EN */
;;;107        LCD_LED->COM_EN = LCD_InitStruct->LCD_ComPin;
000032  68c0              LDR      r0,[r0,#0xc]
000034  6108              STR      r0,[r1,#0x10]
;;;108    }
000036  bd10              POP      {r4,pc}
;;;109    
                          ENDP

                  |L5.56|
                          DCD      0x40022280
                  |L5.60|
                          DCD      0xffff7cee

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

                  LCD_SEGConfig PROC
;;;228     */
;;;229    void LCD_SEGConfig ( uint64_t SEGSelect, FunctionalState NewState )
000000  4901              LDR      r1,|L6.8|
;;;230    {
;;;231    #if  defined(SC32f10xx) || defined(SC32f12xx)
;;;232        uint32_t temp;
;;;233        temp = LCD_LED->SEG_EN;
000002  688b              LDR      r3,[r1,#8]
;;;234        if ( NewState == ENABLE )
;;;235        {
;;;236            temp |= SEGSelect;
;;;237        }
;;;238        else
;;;239        {
;;;240            temp &= ~SEGSelect;
;;;241        }
;;;242        LCD_LED->SEG_EN = SEGSelect;
000004  6088              STR      r0,[r1,#8]
;;;243    
;;;244    #endif
;;;245    }
000006  4770              BX       lr
;;;246    /**
                          ENDP

                  |L6.8|
                          DCD      0x40022280

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

                  LCD_StructInit PROC
;;;114      */
;;;115    void LCD_StructInit ( LCD_InitTypeDef* LCD_InitStruct )
000000  2100              MOVS     r1,#0
;;;116    {
;;;117        /* Set the default configuration */
;;;118        LCD_InitStruct->LCD_Bias = LCD_Bias_1_4;
000002  80c1              STRH     r1,[r0,#6]
;;;119        LCD_InitStruct->LCD_ComPin = LCD_Channel_Less;
;;;120        LCD_InitStruct->LCD_Duty = LCD_Duty_1_8;
000004  60c1              STR      r1,[r0,#0xc]
000006  8041              STRH     r1,[r0,#2]
;;;121        LCD_InitStruct->LCD_FrameFre = LCD_FrameFre_B64Hz;
000008  8001              STRH     r1,[r0,#0]
;;;122        LCD_InitStruct->LCD_ResSel = LCD_ResSel_33K;
00000a  8101              STRH     r1,[r0,#8]
;;;123        LCD_InitStruct->LCD_SegPin =  LCD_Channel_Less;
;;;124        LCD_InitStruct->LCD_VOIRSIF = LCD_VOIRSIF_Disable;
00000c  6101              STR      r1,[r0,#0x10]
00000e  8081              STRH     r1,[r0,#4]
;;;125        LCD_InitStruct->LCD_Voltage = 0;
000010  8141              STRH     r1,[r0,#0xa]
;;;126    }
000012  4770              BX       lr
;;;127    
                          ENDP


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

                  LCD_Write PROC
;;;288     */
;;;289    void LCD_Write ( LCD_RAMRegister_Typedef LCD_RAMRegister, uint8_t LCD_LED_Data )
000000  4a02              LDR      r2,|L8.12|
;;;290    {
;;;291        LCD_LED->SEGRn[LCD_RAMRegister] = LCD_LED_Data;
000002  0080              LSLS     r0,r0,#2
000004  1880              ADDS     r0,r0,r2
000006  6301              STR      r1,[r0,#0x30]
;;;292    }
000008  4770              BX       lr
;;;293    
                          ENDP

00000a  0000              DCW      0x0000
                  |L8.12|
                          DCD      0x40022300

;*** Start embedded assembler ***

#line 1 "..\\FWLib\\SC32F1XXX_Lib\\src\\sc32f1xxx_lcd.c"
	AREA ||.rev16_text||, CODE
	THUMB
	EXPORT |__asm___15_sc32f1xxx_lcd_c_7a40c1c2____REV16|
#line 463 "..\\CMSIS\\cmsis_armcc.h"
|__asm___15_sc32f1xxx_lcd_c_7a40c1c2____REV16| PROC
#line 464

 rev16 r0, r0
 bx lr
	ENDP
	AREA ||.revsh_text||, CODE
	THUMB
	EXPORT |__asm___15_sc32f1xxx_lcd_c_7a40c1c2____REVSH|
#line 478
|__asm___15_sc32f1xxx_lcd_c_7a40c1c2____REVSH| PROC
#line 479

 revsh r0, r0
 bx lr
	ENDP

;*** End   embedded assembler ***
