📄 lowpower.txt
字号:
;;;312 LCD_DisplayStringLine(Line8, "To exit press Wakeup");
000020 a109 ADR r1,|L7.72|
000022 20c0 MOVS r0,#0xc0
000024 f7fff7ff BL LCD_DisplayStringLine
;;;313
;;;314 /* Request to enter STANDBY mode (Wake Up flag is cleared in PWR_EnterSTANDBYMode function) */
;;;315 PWR_EnterSTANDBYMode();
000028 e8bde8bd POP {r4,lr}
00002c f7fff7ff B.W PWR_EnterSTANDBYMode
;;;316 }
;;;317
ENDP
|L7.48|
000030 204d4355 DCB " MCU"
000034 20696e20 DCB " in "
000038 5354414e DCB "STAN"
00003c 44425920 DCB "DBY "
000040 4d6f6465 DCB "Mode"
000044 00000000 DCB "\0\0\0\0"
|L7.72|
000048 546f2065 DCB "To e"
00004c 78697420 DCB "xit "
000050 70726573 DCB "pres"
000054 73205761 DCB "s Wa"
000058 6b657570 DCB "keup"
00005c 00000000 DCB "\0\0\0\0"
AREA ||i.EnterSTANDBYMode_RTCAlarm||, CODE, READONLY, ALIGN=2
EnterSTANDBYMode_RTCAlarm PROC
;;;326 void EnterSTANDBYMode_RTCAlarm(void)
;;;327 {
000000 b510 PUSH {r4,lr}
;;;328 u32 tmp = 0;
;;;329
;;;330 LCD_Clear(White);
000002 f64ff64f MOV r4,#0xffff
000006 4620 MOV r0,r4
000008 f7fff7ff BL LCD_Clear
;;;331 /* Set the LCD Back Color */
;;;332 LCD_SetBackColor(Blue);
00000c 201f MOVS r0,#0x1f
00000e f7fff7ff BL LCD_SetBackColor
;;;333
;;;334 /* Set the LCD Text Color */
;;;335 LCD_SetTextColor(White);
000012 4620 MOV r0,r4
000014 f7fff7ff BL LCD_SetTextColor
;;;336
;;;337 /* Disable the JoyStick interrupts */
;;;338 IntExtOnOffConfig(DISABLE);
000018 2000 MOVS r0,#0
00001a f7fff7ff BL IntExtOnOffConfig
;;;339 while(ReadKey() != NOKEY)
00001e bf00 NOP
|L8.32|
000020 f7fff7ff BL ReadKey
000024 2800 CMP r0,#0
000026 d1fb BNE |L8.32|
;;;340 {
;;;341 }
;;;342
;;;343 if(BKP_ReadBackupRegister(BKP_DR1) != 0xA5A5)
000028 2004 MOVS r0,#4
00002a f7fff7ff BL BKP_ReadBackupRegister
00002e f5a0f5a0 SUB r1,r0,#0xa500
000032 39a5 SUBS r1,r1,#0xa5
000034 d02e BEQ |L8.148|
;;;344 {
;;;345 LCD_DisplayStringLine(Line1, "Time and Date are ");
000036 a124 ADR r1,|L8.200|
000038 2018 MOVS r0,#0x18
00003a f7fff7ff BL LCD_DisplayStringLine
;;;346 LCD_DisplayStringLine(Line2, "not configured, ");
00003e a128 ADR r1,|L8.224|
000040 2030 MOVS r0,#0x30
000042 f7fff7ff BL LCD_DisplayStringLine
;;;347 LCD_DisplayStringLine(Line3, "please go to the ");
000046 a12c ADR r1,|L8.248|
000048 2048 MOVS r0,#0x48
00004a f7fff7ff BL LCD_DisplayStringLine
;;;348 LCD_DisplayStringLine(Line4, "calendar menu and ");
00004e a130 ADR r1,|L8.272|
000050 2060 MOVS r0,#0x60
000052 f7fff7ff BL LCD_DisplayStringLine
;;;349 LCD_DisplayStringLine(Line5, "set the time and ");
000056 a134 ADR r1,|L8.296|
000058 2078 MOVS r0,#0x78
00005a f7fff7ff BL LCD_DisplayStringLine
;;;350 LCD_DisplayStringLine(Line6, "date parameters. ");
00005e a138 ADR r1,|L8.320|
000060 2090 MOVS r0,#0x90
000062 f7fff7ff BL LCD_DisplayStringLine
;;;351 LCD_DisplayStringLine(Line7, "Press JoyStick to ");
000066 a13c ADR r1,|L8.344|
000068 20a8 MOVS r0,#0xa8
00006a f7fff7ff BL LCD_DisplayStringLine
;;;352 LCD_DisplayStringLine(Line8, "continue... ");
00006e a140 ADR r1,|L8.368|
000070 20c0 MOVS r0,#0xc0
000072 f7fff7ff BL LCD_DisplayStringLine
;;;353 while(ReadKey() == NOKEY)
000076 bf00 NOP
|L8.120|
000078 f7fff7ff BL ReadKey
00007c 2800 CMP r0,#0
00007e d0fb BEQ |L8.120|
;;;354 {
;;;355 }
;;;356 /* Clear the LCD */
;;;357 LCD_Clear(White);
000080 4620 MOV r0,r4
000082 f7fff7ff BL LCD_Clear
;;;358 /* Display the previous menu */
;;;359 DisplayMenu();
000086 f7fff7ff BL DisplayMenu
;;;360 /* Enable the JoyStick interrupts */
;;;361 IntExtOnOffConfig(ENABLE);
00008a e8bde8bd POP {r4,lr}
00008e 2001 MOVS r0,#1
000090 f7fff7ff B.W IntExtOnOffConfig
|L8.148|
;;;362 return;
;;;363 }
;;;364
;;;365 tmp = RTC_GetCounter();
000094 f7fff7ff 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 f7fff7ff BL BKP_WriteBackupRegister
;;;369 BKP_WriteBackupRegister(BKP_DR7, (tmp >> 16));
0000a2 0c21 LSRS r1,r4,#16
0000a4 201c MOVS r0,#0x1c
0000a6 f7fff7ff BL BKP_WriteBackupRegister
;;;370
;;;371 Alarm_PreAdjust();
0000aa f7fff7ff BL Alarm_PreAdjust
;;;372
;;;373 LCD_DisplayStringLine(Line7, " MCU in STANDBY Mode");
0000ae a136 ADR r1,|L8.392|
0000b0 20a8 MOVS r0,#0xa8
0000b2 f7fff7ff BL LCD_DisplayStringLine
;;;374 LCD_DisplayStringLine(Line8, " Wait For RTC Alarm ");
0000b6 a13a ADR r1,|L8.416|
0000b8 20c0 MOVS r0,#0xc0
0000ba f7fff7ff BL LCD_DisplayStringLine
;;;375
;;;376 /* Request to enter STANDBY mode (Wake Up flag is cleared in PWR_EnterSTANDBYMode function) */
;;;377 PWR_EnterSTANDBYMode();
0000be e8bde8bd POP {r4,lr}
0000c2 f7fff7ff B.W PWR_EnterSTANDBYMode
;;;378 }
;;;379
ENDP
0000c6 0000 DCW 0x0000
|L8.200|
0000c8 54696d65 DCB "Time"
0000cc 20616e64 DCB " and"
0000d0 20446174 DCB " Dat"
0000d4 65206172 DCB "e ar"
0000d8 65202020 DCB "e "
0000dc 00000000 DCB "\0\0\0\0"
|L8.224|
0000e0 6e6f7420 DCB "not "
0000e4 636f6e66 DCB "conf"
0000e8 69677572 DCB "igur"
0000ec 65642c20 DCB "ed, "
0000f0 20202020 DCB " "
0000f4 00000000 DCB "\0\0\0\0"
|L8.248|
0000f8 706c6561 DCB "plea"
0000fc 73652067 DCB "se g"
000100 6f20746f DCB "o to"
000104 20746865 DCB " the"
000108 20202020 DCB " "
00010c 00000000 DCB "\0\0\0\0"
|L8.272|
000110 63616c65 DCB "cale"
000114 6e646172 DCB "ndar"
000118 206d656e DCB " men"
00011c 7520616e DCB "u an"
000120 64202020 DCB "d "
000124 00000000 DCB "\0\0\0\0"
|L8.296|
000128 73657420 DCB "set "
00012c 74686520 DCB "the "
000130 74696d65 DCB "time"
000134 20616e64 DCB " and"
000138 20202020 DCB " "
00013c 00000000 DCB "\0\0\0\0"
|L8.320|
000140 64617465 DCB "date"
000144 20706172 DCB " par"
000148 616d6574 DCB "amet"
00014c 6572732e DCB "ers."
000150 20202020 DCB " "
000154 00000000 DCB "\0\0\0\0"
|L8.344|
000158 50726573 DCB "Pres"
00015c 73204a6f DCB "s Jo"
000160 79537469 DCB "ySti"
000164 636b2074 DCB "ck t"
000168 6f202020 DCB "o "
00016c 00000000 DCB "\0\0\0\0"
|L8.368|
000170 636f6e74 DCB "cont"
000174 696e7565 DCB "inue"
000178 2e2e2e20 DCB "... "
00017c 20202020 DCB " "
000180 20202020 DCB " "
000184 00000000 DCB "\0\0\0\0"
|L8.392|
000188 204d4355 DCB " MCU"
00018c 20696e20 DCB " in "
000190 5354414e DCB "STAN"
000194 44425920 DCB "DBY "
000198 4d6f6465 DCB "Mode"
00019c 00000000 DCB "\0\0\0\0"
|L8.416|
0001a0 20576169 DCB " Wai"
0001a4 7420466f DCB "t Fo"
0001a8 72205254 DCB "r RT"
0001ac 4320416c DCB "C Al"
0001b0 61726d20 DCB "arm "
0001b4 00000000 DCB "\0\0\0\0"
AREA ||i.Set_STOPModeStatus||, CODE, READONLY, ALIGN=2
Set_STOPModeStatus PROC
;;;388 {
;;;389 STOPModeStatus = 1;
000000 4901 LDR r1,|L9.8|
000002 2001 MOVS r0,#1
000004 6008 STR r0,[r1,#0] ; STOPModeStatus
;;;390 }
000006 4770 BX lr
;;;391
ENDP
|L9.8|
000008 00000000 DCD ||.data||
AREA ||.data||, DATA, ALIGN=2
STOPModeStatus
000000 00000000 DCD 0x00000000
GPIOA_CRL
000004 00000000 DCD 0x00000000
GPIOA_CRH
000008 00000000 DCD 0x00000000
GPIOB_CRL
00000c 00000000 DCD 0x00000000
GPIOB_CRH
000010 00000000 DCD 0x00000000
GPIOC_CRL
000014 00000000 DCD 0x00000000
GPIOC_CRH
000018 00000000 DCD 0x00000000
GPIOD_CRL
00001c 00000000 DCD 0x00000000
GPIOD_CRH
000020 00000000 DCD 0x00000000
GPIOE_CRL
000024 00000000 DCD 0x00000000
GPIOE_CRH
000028 00000000 DCD 0x00000000
GPIOF_CRL
00002c 00000000 DCD 0x00000000
GPIOF_CRH
000030 00000000 DCD 0x00000000
GPIOG_CRL
000034 00000000 DCD 0x00000000
GPIOG_CRH
000038 00000000 DCD 0x00000000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -