📄 lowpower.txt
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\lowpower.o --depend=.\Obj\lowpower.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\lowpower.c]
THUMB
AREA ||i.EnterSTANDBYMode_RTCAlarm||, CODE, READONLY, ALIGN=2
EnterSTANDBYMode_RTCAlarm PROC
;;;325 *******************************************************************************/
;;;326 void EnterSTANDBYMode_RTCAlarm(void)
000000 b510 PUSH {r4,lr}
;;;327 {
;;;328 u32 tmp = 0;
;;;329
;;;330 LCD_Clear(White);
000002 f64f74ff MOV r4,#0xffff
000006 4620 MOV r0,r4
000008 f7fffffe BL LCD_Clear
;;;331 /* Set the LCD Back Color */
;;;332 LCD_SetBackColor(Blue);
00000c 201f MOVS r0,#0x1f
00000e f7fffffe BL LCD_SetBackColor
;;;333
;;;334 /* Set the LCD Text Color */
;;;335 LCD_SetTextColor(White);
000012 4620 MOV r0,r4
000014 f7fffffe BL LCD_SetTextColor
;;;336
;;;337 /* Disable the JoyStick interrupts */
;;;338 IntExtOnOffConfig(DISABLE);
000018 2000 MOVS r0,#0
00001a f7fffffe BL IntExtOnOffConfig
;;;339 while(ReadKey() != NOKEY)
00001e bf00 NOP
|L1.32|
000020 f7fffffe BL ReadKey
000024 2800 CMP r0,#0
000026 d1fb BNE |L1.32|
;;;340 {
;;;341 }
;;;342
;;;343 if(BKP_ReadBackupRegister(BKP_DR1) != 0xA5A5)
000028 2004 MOVS r0,#4
00002a f7fffffe BL BKP_ReadBackupRegister
00002e f5a04125 SUB r1,r0,#0xa500
000032 39a5 SUBS r1,r1,#0xa5
000034 d02e BEQ |L1.148|
;;;344 {
;;;345 LCD_DisplayStringLine(Line1, "Time and Date are ");
000036 a124 ADR r1,|L1.200|
000038 2018 MOVS r0,#0x18
00003a f7fffffe BL LCD_DisplayStringLine
;;;346 LCD_DisplayStringLine(Line2, "not configured, ");
00003e a128 ADR r1,|L1.224|
000040 2030 MOVS r0,#0x30
000042 f7fffffe BL LCD_DisplayStringLine
;;;347 LCD_DisplayStringLine(Line3, "please go to the ");
000046 a12c ADR r1,|L1.248|
000048 2048 MOVS r0,#0x48
00004a f7fffffe BL LCD_DisplayStringLine
;;;348 LCD_DisplayStringLine(Line4, "calendar menu and ");
00004e a130 ADR r1,|L1.272|
000050 2060 MOVS r0,#0x60
000052 f7fffffe BL LCD_DisplayStringLine
;;;349 LCD_DisplayStringLine(Line5, "set the time and ");
000056 a134 ADR r1,|L1.296|
000058 2078 MOVS r0,#0x78
00005a f7fffffe BL LCD_DisplayStringLine
;;;350 LCD_DisplayStringLine(Line6, "date parameters. ");
00005e a138 ADR r1,|L1.320|
000060 2090 MOVS r0,#0x90
000062 f7fffffe BL LCD_DisplayStringLine
;;;351 LCD_DisplayStringLine(Line7, "Press JoyStick to ");
000066 a13c ADR r1,|L1.344|
000068 20a8 MOVS r0,#0xa8
00006a f7fffffe BL LCD_DisplayStringLine
;;;352 LCD_DisplayStringLine(Line8, "continue... ");
00006e a140 ADR r1,|L1.368|
000070 20c0 MOVS r0,#0xc0
000072 f7fffffe BL LCD_DisplayStringLine
;;;353 while(ReadKey() == NOKEY)
000076 bf00 NOP
|L1.120|
000078 f7fffffe BL ReadKey
00007c 2800 CMP r0,#0
00007e d0fb BEQ |L1.120|
;;;354 {
;;;355 }
;;;356 /* Clear the LCD */
;;;357 LCD_Clear(White);
000080 4620 MOV r0,r4
000082 f7fffffe BL LCD_Clear
;;;358 /* Display the previous menu */
;;;359 DisplayMenu();
000086 f7fffffe BL DisplayMenu
;;;360 /* Enable the JoyStick interrupts */
;;;361 IntExtOnOffConfig(ENABLE);
00008a e8bd4010 POP {r4,lr}
00008e 2001 MOVS r0,#1
000090 f7ffbffe B.W IntExtOnOffConfig
|L1.148|
;;;362 return;
;;;363 }
;;;364
;;;365 tmp = RTC_GetCounter();
000094 f7fffffe BL RTC_GetCounter
000098 4604 MOV r4,r0
;;;366
;;;367 /* Save the Alarm value in the Backup register */
;;;368 BKP_WriteBackupRegister(BKP_DR6, (tmp & 0x0000FFFF));
00009a b281 UXTH r1,r0
00009c 2018 MOVS r0,#0x18
00009e f7fffffe BL BKP_WriteBackupRegister
;;;369 BKP_WriteBackupRegister(BKP_DR7, (tmp >> 16));
0000a2 0c21 LSRS r1,r4,#16
0000a4 201c MOVS r0,#0x1c
0000a6 f7fffffe BL BKP_WriteBackupRegister
;;;370
;;;371 Alarm_PreAdjust();
0000aa f7fffffe BL Alarm_PreAdjust
;;;372
;;;373 LCD_DisplayStringLine(Line7, " MCU in STANDBY Mode");
0000ae a136 ADR r1,|L1.392|
0000b0 20a8 MOVS r0,#0xa8
0000b2 f7fffffe BL LCD_DisplayStringLine
;;;374 LCD_DisplayStringLine(Line8, " Wait For RTC Alarm ");
0000b6 a13a ADR r1,|L1.416|
0000b8 20c0 MOVS r0,#0xc0
0000ba f7fffffe BL LCD_DisplayStringLine
;;;375
;;;376 /* Request to enter STANDBY mode (Wake Up flag is cleared in PWR_EnterSTANDBYMode function) */
;;;377 PWR_EnterSTANDBYMode();
0000be e8bd4010 POP {r4,lr}
0000c2 f7ffbffe B.W PWR_EnterSTANDBYMode
;;;378 }
;;;379
ENDP
0000c6 0000 DCW 0x0000
|L1.200|
0000c8 54696d6520616e6420446174652061726520202000 DCB "Time and Date are ",0
0000dd 00 DCB 0
0000de 00 DCB 0
0000df 00 DCB 0
|L1.224|
0000e0 6e6f7420636f6e666967757265642c202020202000 DCB "not configured, ",0
0000f5 00 DCB 0
0000f6 00 DCB 0
0000f7 00 DCB 0
|L1.248|
0000f8 706c6561736520676f20746f207468652020202000 DCB "please go to the ",0
00010d 00 DCB 0
00010e 00 DCB 0
00010f 00 DCB 0
|L1.272|
000110 63616c656e646172206d656e7520616e6420202000 DCB "calendar menu and ",0
000125 00 DCB 0
000126 00 DCB 0
000127 00 DCB 0
|L1.296|
000128 736574207468652074696d6520616e642020202000 DCB "set the time and ",0
00013d 00 DCB 0
00013e 00 DCB 0
00013f 00 DCB 0
|L1.320|
000140 6461746520706172616d65746572732e2020202000 DCB "date parameters. ",0
000155 00 DCB 0
000156 00 DCB 0
000157 00 DCB 0
|L1.344|
000158 5072657373204a6f79537469636b20746f20202000 DCB "Press JoyStick to ",0
00016d 00 DCB 0
00016e 00 DCB 0
00016f 00 DCB 0
|L1.368|
000170 636f6e74696e75652e2e2e20202020202020202000 DCB "continue... ",0
000185 00 DCB 0
000186 00 DCB 0
000187 00 DCB 0
|L1.392|
000188 204d435520696e205354414e444259204d6f646500 DCB " MCU in STANDBY Mode",0
00019d 00 DCB 0
00019e 00 DCB 0
00019f 00 DCB 0
|L1.416|
0001a0 205761697420466f722052544320416c61726d2000 DCB " Wait For RTC Alarm ",0
0001b5 00 DCB 0
0001b6 00 DCB 0
0001b7 00 DCB 0
AREA ||i.EnterSTANDBYMode_WAKEUP||, CODE, READONLY, ALIGN=2
EnterSTANDBYMode_WAKEUP PROC
;;;301 *******************************************************************************/
;;;302 void EnterSTANDBYMode_WAKEUP(void)
000000 b510 PUSH {r4,lr}
;;;303 {
;;;304 LCD_Clear(White);
000002 f64f74ff MOV r4,#0xffff
000006 4620 MOV r0,r4
000008 f7fffffe BL LCD_Clear
;;;305 /* Set the LCD Back Color */
;;;306 LCD_SetBackColor(Blue);
00000c 201f MOVS r0,#0x1f
00000e f7fffffe BL LCD_SetBackColor
;;;307
;;;308 /* Set the LCD Text Color */
;;;309 LCD_SetTextColor(White);
000012 4620 MOV r0,r4
000014 f7fffffe BL LCD_SetTextColor
;;;310
;;;311 LCD_DisplayStringLine(Line7, " MCU in STANDBY Mode");
000018 a105 ADR r1,|L2.48|
00001a 20a8 MOVS r0,#0xa8
00001c f7fffffe BL LCD_DisplayStringLine
;;;312 LCD_DisplayStringLine(Line8, "To exit press Wakeup");
000020 a109 ADR r1,|L2.72|
000022 20c0 MOVS r0,#0xc0
000024 f7fffffe BL LCD_DisplayStringLine
;;;313
;;;314 /* Request to enter STANDBY mode (Wake Up flag is cleared in PWR_EnterSTANDBYMode function) */
;;;315 PWR_EnterSTANDBYMode();
000028 e8bd4010 POP {r4,lr}
00002c f7ffbffe B.W PWR_EnterSTANDBYMode
;;;316 }
;;;317
ENDP
|L2.48|
000030 204d435520696e205354414e444259204d6f646500 DCB " MCU in STANDBY Mode",0
000045 00 DCB 0
000046 00 DCB 0
000047 00 DCB 0
|L2.72|
000048 546f20657869742070726573732057616b65757000 DCB "To exit press Wakeup",0
00005d 00 DCB 0
00005e 00 DCB 0
00005f 00 DCB 0
AREA ||i.EnterSTOPMode_EXTI||, CODE, READONLY, ALIGN=2
EnterSTOPMode_EXTI PROC
;;;98 *******************************************************************************/
;;;99 void EnterSTOPMode_EXTI(void)
000000 e92d4ffe PUSH {r1-r11,lr}
;;;100 {
;;;101 NVIC_InitTypeDef NVIC_InitStructure;
;;;102 EXTI_InitTypeDef EXTI_InitStructure;
;;;103
;;;104 STOPModeStatus = 0;
000004 4d46 LDR r5,|L3.288|
000006 2600 MOVS r6,#0
000008 602e STR r6,[r5,#0] ; STOPModeStatus
;;;105
;;;106 /* Clear the LCD */
;;;107 LCD_Clear(White);
00000a f64f7aff MOV r10,#0xffff
00000e 4654 MOV r4,r10
000010 4650 MOV r0,r10
000012 f7fffffe BL LCD_Clear
;;;108
;;;109 /* Set the LCD Back Color */
;;;110 LCD_SetBackColor(Blue);
000016 201f MOVS r0,#0x1f
000018 f7fffffe BL LCD_SetBackColor
;;;111
;;;112 /* Set the LCD Text Color */
;;;113 LCD_SetTextColor(White);
00001c 4620 MOV r0,r4
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -