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

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

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

                  LCD_Cmd PROC
;;;136     */
;;;137    void LCD_Cmd ( FunctionalState NewState )
000000  4905              LDR      r1,|L2.24|
;;;138    {
;;;139        /* Check the parameters */
;;;140        assert_param ( IS_FUNCTIONAL_STATE ( NewState ) );
;;;141    
;;;142        if ( NewState != DISABLE )
000002  2800              CMP      r0,#0
;;;143        {
;;;144            /* Enable the LCD_LED Counter */
;;;145            LCD_LED->DDR_CON |= DDR_CON_DDRON;
;;;146        }
;;;147        else
;;;148        {
;;;149            /* Disable the LCD_LED Counter */
;;;150            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              ;145
00000a  4310              ORRS     r0,r0,r2              ;145
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]            ;145
;;;151        }
;;;152    }
000014  4770              BX       lr
;;;153    
                          ENDP

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

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

                  LCD_CustomModeScan PROC
;;;319     */
;;;320    void LCD_CustomModeScan ( void )
000000  4803              LDR      r0,|L3.16|
;;;321    {
;;;322        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]
;;;323    }
00000c  4770              BX       lr
;;;324    #endif
                          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  2002              MOVS     r0,#2
000006  f7fffffe          BL       RCC_APB2PeriphResetCmd
;;;49         /* Disable LCD reset state */
;;;50         RCC_APB2PeriphResetCmd ( RCC_APB2Periph_LCD_LED, DISABLE );
00000a  2100              MOVS     r1,#0
00000c  2002              MOVS     r0,#2
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  490e              LDR      r1,|L5.60|
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  4b0e              LDR      r3,|L5.64|
;;;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  23ff              MOVS     r3,#0xff
00001c  33b4              ADDS     r3,r3,#0xb4
00001e  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 |
000020  8903              LDRH     r3,[r0,#8]
000022  8844              LDRH     r4,[r0,#2]
000024  4323              ORRS     r3,r3,r4
000026  8944              LDRH     r4,[r0,#0xa]
000028  0224              LSLS     r4,r4,#8
00002a  4314              ORRS     r4,r4,r2
00002c  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;
00002e  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;
000030  6902              LDR      r2,[r0,#0x10]
000032  608a              STR      r2,[r1,#8]
;;;104    #elif defined(SC32f11xx)
;;;105        LCD_LED->SEG_EN0 = ( uint32_t ) LCD_InitStruct->LCD_SegPin;
;;;106        LCD_LED->SEG_EN1 = ( uint32_t ) ( LCD_InitStruct->LCD_SegPin >> 32 );
;;;107    #endif
;;;108        /* Write to LCD_LEDx COM_EN */
;;;109        LCD_LED->COM_EN = LCD_InitStruct->LCD_ComPin;
000034  68c0              LDR      r0,[r0,#0xc]
000036  6108              STR      r0,[r1,#0x10]
;;;110    }
000038  bd10              POP      {r4,pc}
;;;111    
                          ENDP

00003a  0000              DCW      0x0000
                  |L5.60|
                          DCD      0x40022280
                  |L5.64|
                          DCD      0xffff7cee

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

                  LCD_SEGConfig PROC
;;;231     */
;;;232    void LCD_SEGConfig ( uint64_t SEGSelect, FunctionalState NewState )
000000  4901              LDR      r1,|L6.8|
;;;233    {
;;;234    #if  defined(SC32f10xx) || defined(SC32f12xx)
;;;235        uint32_t temp;
;;;236        temp = LCD_LED->SEG_EN;
000002  688b              LDR      r3,[r1,#8]
;;;237        if ( NewState == ENABLE )
;;;238        {
;;;239            temp |= SEGSelect;
;;;240        }
;;;241        else
;;;242        {
;;;243            temp &= ~SEGSelect;
;;;244        }
;;;245        LCD_LED->SEG_EN = SEGSelect;
000004  6088              STR      r0,[r1,#8]
;;;246    #elif defined(SC32f11xx)
;;;247        uint32_t temp0;
;;;248        uint32_t temp1;
;;;249        temp0 = LCD_LED->SEG_EN0;
;;;250        temp1 = LCD_LED->SEG_EN1;
;;;251        if ( NewState == ENABLE )
;;;252        {
;;;253            temp0 |= SEGSelect;
;;;254            temp1 |= SEGSelect >> 32;
;;;255        }
;;;256        else
;;;257        {
;;;258            temp0 &= ~SEGSelect;
;;;259            temp1 &= ~ ( SEGSelect >> 32 );
;;;260        }
;;;261        LCD_LED->SEG_EN0 = ( uint32_t ) temp0;
;;;262        LCD_LED->SEG_EN1 = ( uint32_t ) temp1;
;;;263    #endif
;;;264    }
000006  4770              BX       lr
;;;265    /**
                          ENDP

                  |L6.8|
                          DCD      0x40022280

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

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


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

                  LCD_Write PROC
;;;308     */
;;;309    void LCD_Write ( LCD_RAMRegister_Typedef LCD_RAMRegister, uint8_t LCD_LED_Data )
000000  4a02              LDR      r2,|L8.12|
;;;310    {
;;;311        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]
;;;312    }
000008  4770              BX       lr
;;;313    
                          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 ***
