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

📄 calendar.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 5 页
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\calendar.o --depend=.\Obj\calendar.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 ..\..\source\calendar.c]
                          THUMB

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

                  Alarm_Adjust PROC
;;;1599   *******************************************************************************/
;;;1600   void Alarm_Adjust(void)
000000  b570              PUSH     {r4-r6,lr}
;;;1601   {
;;;1602     /* Disable the JoyStick interrupts */
;;;1603     IntExtOnOffConfig(DISABLE);
000002  2000              MOVS     r0,#0
000004  f7fffffe          BL       IntExtOnOffConfig
                  |L1.8|
;;;1604   
;;;1605     while(ReadKey() != NOKEY)
000008  f7fffffe          BL       ReadKey
00000c  2800              CMP      r0,#0
00000e  d1fb              BNE      |L1.8|
;;;1606     {
;;;1607     }
;;;1608     
;;;1609     RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);
000010  2101              MOVS     r1,#1
000012  020c              LSLS     r4,r1,#8
000014  4620              MOV      r0,r4
000016  f7fffffe          BL       RCC_AHBPeriphClockCmd
;;;1610     /* Clear the LCD screen */
;;;1611     LCD_Clear(White);
00001a  f64f75ff          MOV      r5,#0xffff
00001e  4628              MOV      r0,r5
000020  f7fffffe          BL       LCD_Clear
;;;1612   
;;;1613     LCD_SetDisplayWindow(160, 223, 128, 128);
000024  2380              MOVS     r3,#0x80
000026  461a              MOV      r2,r3
000028  21df              MOVS     r1,#0xdf
00002a  20a0              MOVS     r0,#0xa0
00002c  f7fffffe          BL       LCD_SetDisplayWindow
;;;1614    
;;;1615     LCD_NORDisplay(ALARM_ICON);
000030  480a              LDR      r0,|L1.92|
000032  f7fffffe          BL       LCD_NORDisplay
;;;1616     RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);
000036  2101              MOVS     r1,#1
000038  4620              MOV      r0,r4
00003a  f7fffffe          BL       RCC_AHBPeriphClockCmd
;;;1617     /* Disable LCD Window mode */
;;;1618     LCD_WindowModeDisable();
00003e  f7fffffe          BL       LCD_WindowModeDisable
;;;1619     
;;;1620     Alarm_PreAdjust();
000042  f7fffffe          BL       Alarm_PreAdjust
;;;1621   
;;;1622     /* Clear the LCD */
;;;1623     LCD_Clear(White);
000046  4628              MOV      r0,r5
000048  f7fffffe          BL       LCD_Clear
;;;1624     /* Display the menu */
;;;1625     DisplayMenu();
00004c  f7fffffe          BL       DisplayMenu
;;;1626     /* Enable the JoyStick interrupts */
;;;1627     IntExtOnOffConfig(ENABLE);  
000050  e8bd4070          POP      {r4-r6,lr}
000054  2001              MOVS     r0,#1
000056  f7ffbffe          B.W      IntExtOnOffConfig
;;;1628   }
;;;1629   
                          ENDP

00005a  0000              DCW      0x0000
                  |L1.92|
                          DCD      0x64fe0f54

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

                  Alarm_Display PROC
;;;1636   *******************************************************************************/
;;;1637   void Alarm_Display(u32 AlarmVar)
000000  e92d47f0          PUSH     {r4-r10,lr}
;;;1638   {
;;;1639     /* Display alarm hours */
;;;1640     alarm_struct.hour_h=(u8)( AlarmVar / 3600)/10;
000004  f44f6861          MOV      r8,#0xe10
000008  fbb0f6f8          UDIV     r6,r0,r8
00000c  4607              MOV      r7,r0                 ;1638
00000e  b2f0              UXTB     r0,r6
000010  250a              MOVS     r5,#0xa
000012  fbb0f0f5          UDIV     r0,r0,r5
000016  4c25              LDR      r4,|L2.172|
;;;1641     LCD_DisplayChar(Line8, 244,(alarm_struct.hour_h + 0x30));
000018  21f4              MOVS     r1,#0xf4
00001a  7160              STRB     r0,[r4,#5]            ;1640
00001c  b2c0              UXTB     r0,r0
00001e  3030              ADDS     r0,r0,#0x30
000020  b2c2              UXTB     r2,r0
000022  20c0              MOVS     r0,#0xc0
000024  f7fffffe          BL       LCD_DisplayChar
;;;1642   
;;;1643     alarm_struct.hour_l=(u8)(((AlarmVar)/3600)%10);
000028  fbb6f0f5          UDIV     r0,r6,r5
00002c  fb056010          MLS      r0,r5,r0,r6
000030  7120              STRB     r0,[r4,#4]
;;;1644     LCD_DisplayChar(Line8, 228,(alarm_struct.hour_l + 0x30));
000032  b2c0              UXTB     r0,r0
000034  3030              ADDS     r0,r0,#0x30
000036  b2c2              UXTB     r2,r0
000038  21e4              MOVS     r1,#0xe4
00003a  20c0              MOVS     r0,#0xc0
00003c  f7fffffe          BL       LCD_DisplayChar
;;;1645   
;;;1646     /* Display alarm minutes */
;;;1647     alarm_struct.min_h=(u8)(((AlarmVar)%3600)/60)/10;
000040  fb087716          MLS      r7,r8,r6,r7
000044  f04f0a3c          MOV      r10,#0x3c
000048  fbb7f0fa          UDIV     r0,r7,r10
00004c  4680              MOV      r8,r0
00004e  b2c0              UXTB     r0,r0
000050  fbb0f6f5          UDIV     r6,r0,r5
000054  4681              MOV      r9,r0
;;;1648     LCD_DisplayChar(Line8, 196,(alarm_struct.min_h + 0x30));
000056  b2f0              UXTB     r0,r6
000058  3030              ADDS     r0,r0,#0x30
00005a  b2c2              UXTB     r2,r0
00005c  70e6              STRB     r6,[r4,#3]            ;1647
00005e  21c4              MOVS     r1,#0xc4
000060  20c0              MOVS     r0,#0xc0
000062  f7fffffe          BL       LCD_DisplayChar
;;;1649   
;;;1650     alarm_struct.min_l=(u8)(((AlarmVar)%3600)/60)%10;
000066  fb059016          MLS      r0,r5,r6,r9
00006a  70a0              STRB     r0,[r4,#2]
;;;1651     LCD_DisplayChar(Line8, 182,(alarm_struct.min_l + 0x30));
00006c  b2c0              UXTB     r0,r0
00006e  3030              ADDS     r0,r0,#0x30
000070  b2c2              UXTB     r2,r0
000072  21b6              MOVS     r1,#0xb6
000074  20c0              MOVS     r0,#0xc0
000076  f7fffffe          BL       LCD_DisplayChar
;;;1652   
;;;1653     /* Display alarm seconds */
;;;1654     alarm_struct.sec_h=(u8)(((AlarmVar)%3600)%60)/10;
00007a  fb0a7718          MLS      r7,r10,r8,r7
00007e  fbb7f6f5          UDIV     r6,r7,r5
;;;1655     LCD_DisplayChar(Line8, 150,(alarm_struct.sec_h + 0x30));
000082  b2f0              UXTB     r0,r6
000084  3030              ADDS     r0,r0,#0x30
000086  b2c2              UXTB     r2,r0
000088  7066              STRB     r6,[r4,#1]            ;1654
00008a  2196              MOVS     r1,#0x96
00008c  20c0              MOVS     r0,#0xc0
00008e  f7fffffe          BL       LCD_DisplayChar
;;;1656   
;;;1657     alarm_struct.sec_l=(u8)(((AlarmVar)%3600)%60)%10;
000092  fb057016          MLS      r0,r5,r6,r7
000096  7020              STRB     r0,[r4,#0]
;;;1658     LCD_DisplayChar(Line8, 134,(alarm_struct.sec_l + 0x30));
000098  e8bd47f0          POP      {r4-r10,lr}
00009c  b2c0              UXTB     r0,r0
00009e  3030              ADDS     r0,r0,#0x30
0000a0  b2c2              UXTB     r2,r0
0000a2  2186              MOVS     r1,#0x86
0000a4  20c0              MOVS     r0,#0xc0
0000a6  f7ffbffe          B.W      LCD_DisplayChar
;;;1659   }
;;;1660   
                          ENDP

0000aa  0000              DCW      0x0000
                  |L2.172|
                          DCD      ||.data||+0x1a

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

                  Alarm_PreAdjust PROC
;;;1545   *******************************************************************************/
;;;1546   void Alarm_PreAdjust(void)
000000  b510              PUSH     {r4,lr}
;;;1547   {
;;;1548     u32 tmp = 0;
;;;1549   
;;;1550     /* Set the LCD Back Color */
;;;1551     LCD_SetBackColor(Blue);
000002  201f              MOVS     r0,#0x1f
000004  f7fffffe          BL       LCD_SetBackColor
;;;1552   
;;;1553     /* Set the LCD Text Color */
;;;1554     LCD_SetTextColor(White);
000008  f64f70ff          MOV      r0,#0xffff
00000c  f7fffffe          BL       LCD_SetTextColor
;;;1555   
;;;1556     if(BKP_ReadBackupRegister(BKP_DR1) != 0xA5A5)
000010  2004              MOVS     r0,#4
000012  f7fffffe          BL       BKP_ReadBackupRegister
000016  f5a04125          SUB      r1,r0,#0xa500
00001a  39a5              SUBS     r1,r1,#0xa5
00001c  d00d              BEQ      |L3.58|
;;;1557     {
;;;1558       LCD_DisplayStringLine(Line8, "Time not configured ");
00001e  a11d              ADR      r1,|L3.148|
000020  20c0              MOVS     r0,#0xc0
000022  f7fffffe          BL       LCD_DisplayStringLine
;;;1559       LCD_DisplayStringLine(Line9, "     Press SEL      ");
000026  a121              ADR      r1,|L3.172|
000028  20d8              MOVS     r0,#0xd8
00002a  f7fffffe          BL       LCD_DisplayStringLine
;;;1560       while(ReadKey() == NOKEY)
00002e  bf00              NOP      
                  |L3.48|
000030  f7fffffe          BL       ReadKey
000034  2800              CMP      r0,#0
000036  d0fb              BEQ      |L3.48|
;;;1561       {
;;;1562       }
;;;1563       return;
;;;1564     }
;;;1565     /* Read the alarm value stored in the Backup register */
;;;1566     tmp = BKP_ReadBackupRegister(BKP_DR6);
;;;1567     tmp |= BKP_ReadBackupRegister(BKP_DR7) << 16;
;;;1568     
;;;1569     /* Clear Line8 */
;;;1570     LCD_ClearLine(Line8);
;;;1571       
;;;1572     /* Display time separators ":" on Line4 */
;;;1573     LCD_DisplayChar(Line8, 212, ':');
;;;1574     LCD_DisplayChar(Line8, 166, ':');
;;;1575   
;;;1576     /* Display the alarm value */
;;;1577     Alarm_Display(tmp);
;;;1578     /* Store new alarm value */
;;;1579     tmp = Alarm_Regulate();
;;;1580   
;;;1581     /* Wait until last write operation on RTC registers has finished */
;;;1582     RTC_WaitForLastTask();
;;;1583     /* Set RTC Alarm register with the new value */
;;;1584     RTC_SetAlarm(tmp);
;;;1585     /* Wait until last write operation on RTC registers has finished */
;;;1586     RTC_WaitForLastTask();  
;;;1587   
;;;1588     /* Save the Alarm value in the Backup register */
;;;1589     BKP_WriteBackupRegister(BKP_DR6, (tmp & 0x0000FFFF));
;;;1590     BKP_WriteBackupRegister(BKP_DR7, (tmp >> 16));
;;;1591   }
000038  bd10              POP      {r4,pc}
                  |L3.58|
00003a  2018              MOVS     r0,#0x18              ;1566
00003c  f7fffffe          BL       BKP_ReadBackupRegister
000040  4604              MOV      r4,r0                 ;1566
000042  201c              MOVS     r0,#0x1c              ;1567
000044  f7fffffe          BL       BKP_ReadBackupRegister
000048  ea444400          ORR      r4,r4,r0,LSL #16      ;1567
00004c  20c0              MOVS     r0,#0xc0              ;1570
00004e  f7fffffe          BL       LCD_ClearLine
000052  223a              MOVS     r2,#0x3a              ;1573
000054  21d4              MOVS     r1,#0xd4              ;1573
000056  20c0              MOVS     r0,#0xc0              ;1573
000058  f7fffffe          BL       LCD_DisplayChar
00005c  223a              MOVS     r2,#0x3a              ;1574
00005e  21a6              MOVS     r1,#0xa6              ;1574
000060  20c0              MOVS     r0,#0xc0              ;1574
000062  f7fffffe          BL       LCD_DisplayChar
000066  4620              MOV      r0,r4                 ;1577
000068  f7fffffe          BL       Alarm_Display
00006c  f7fffffe          BL       Alarm_Regulate
000070  4604              MOV      r4,r0                 ;1579
000072  f7fffffe          BL       RTC_WaitForLastTask
000076  4620              MOV      r0,r4                 ;1584
000078  f7fffffe          BL       RTC_SetAlarm
00007c  f7fffffe          BL       RTC_WaitForLastTask
000080  b2a1              UXTH     r1,r4                 ;1589
000082  2018              MOVS     r0,#0x18              ;1589
000084  f7fffffe          BL       BKP_WriteBackupRegister
000088  0c21              LSRS     r1,r4,#16             ;1590
00008a  e8bd4010          POP      {r4,lr}               ;1590
00008e  201c              MOVS     r0,#0x1c              ;1590
000090  f7ffbffe          B.W      BKP_WriteBackupRegister
;;;1592   
                          ENDP

                  |L3.148|
000094  54696d65206e6f7420636f6e666967757265642000        DCB      "Time not configured ",0
0000a9  00                DCB      0
0000aa  00                DCB      0
0000ab  00                DCB      0
                  |L3.172|
0000ac  202020202050726573732053454c20202020202000        DCB      "     Press SEL      ",0
0000c1  00                DCB      0
0000c2  00                DCB      0
0000c3  00                DCB      0

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

                  Alarm_Regulate PROC
;;;1506   *******************************************************************************/
;;;1507   u32 Alarm_Regulate(void)
000000  e92d41f0          PUSH     {r4-r8,lr}
;;;1508   {
;;;1509     u32 Alarm_HH = 0, Alarm_MM = 0, Alarm_SS = 0;
;;;1510   
;;;1511     /* Read alarm hours */
;;;1512     Alarm_HH = ReadDigit(244, alarm_struct.hour_h, 0x2, 0x0);
000004  4d26              LDR      r5,|L4.160|

⌨️ 快捷键说明

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