📄 lowpower.txt
字号:
0000f6 f7fffffe BL DisplayMenu
;;;290 /* Enable the JoyStick interrupts */
;;;291 IntExtOnOffConfig(ENABLE);
0000fa e8bd4070 POP {r4-r6,lr}
0000fe 2001 MOVS r0,#1
000100 f7ffbffe B.W IntExtOnOffConfig
;;;292 }
;;;293
ENDP
|L6.260|
000104 54696d6520616e6420446174652061726520202000 DCB "Time and Date are ",0
000119 00 DCB 0
00011a 00 DCB 0
00011b 00 DCB 0
|L6.284|
00011c 6e6f7420636f6e666967757265642c202020202000 DCB "not configured, ",0
000131 00 DCB 0
000132 00 DCB 0
000133 00 DCB 0
|L6.308|
000134 706c6561736520676f20746f207468652020202000 DCB "please go to the ",0
000149 00 DCB 0
00014a 00 DCB 0
00014b 00 DCB 0
|L6.332|
00014c 63616c656e646172206d656e7520616e6420202000 DCB "calendar menu and ",0
000161 00 DCB 0
000162 00 DCB 0
000163 00 DCB 0
|L6.356|
000164 736574207468652074696d6520616e642020202000 DCB "set the time and ",0
000179 00 DCB 0
00017a 00 DCB 0
00017b 00 DCB 0
|L6.380|
00017c 6461746520706172616d65746572732e2020202000 DCB "date parameters. ",0
000191 00 DCB 0
000192 00 DCB 0
000193 00 DCB 0
|L6.404|
000194 5072657373204a6f79537469636b20746f20202000 DCB "Press JoyStick to ",0
0001a9 00 DCB 0
0001aa 00 DCB 0
0001ab 00 DCB 0
|L6.428|
0001ac 636f6e74696e75652e2e2e20202020202020202000 DCB "continue... ",0
0001c1 00 DCB 0
0001c2 00 DCB 0
0001c3 00 DCB 0
|L6.452|
0001c4 20204d435520696e2053544f50204d6f6465202000 DCB " MCU in STOP Mode ",0
0001d9 00 DCB 0
0001da 00 DCB 0
0001db 00 DCB 0
|L6.476|
0001dc 205761697420466f722052544320416c61726d2000 DCB " Wait For RTC Alarm ",0
0001f1 00 DCB 0
0001f2 00 DCB 0
0001f3 00 DCB 0
|L6.500|
0001f4 20202020202053544f50204d6f6465202020202000 DCB " STOP Mode ",0
000209 00 DCB 0
00020a 00 DCB 0
00020b 00 DCB 0
|L6.524|
00020c 57616b652d55702062792052544320416c61726d00 DCB "Wake-Up by RTC Alarm",0
000221 00 DCB 0
000222 00 DCB 0
000223 00 DCB 0
AREA ||i.EnterSTANDBYMode_WAKEUP||, CODE, READONLY, ALIGN=2
EnterSTANDBYMode_WAKEUP PROC
;;;302 void EnterSTANDBYMode_WAKEUP(void)
;;;303 {
000000 b510 PUSH {r4,lr}
;;;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,|L7.48|
00001a 20a8 MOVS r0,#0xa8
00001c f7fffffe BL LCD_DisplayStringLine
;;;312 LCD_DisplayStringLine(Line8, "To exit press Wakeup");
000020 a109 ADR r1,|L7.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
|L7.48|
000030 204d435520696e205354414e444259204d6f646500 DCB " MCU in STANDBY Mode",0
000045 00 DCB 0
000046 00 DCB 0
000047 00 DCB 0
|L7.72|
000048 546f20657869742070726573732057616b65757000 DCB "To exit press Wakeup",0
00005d 00 DCB 0
00005e 00 DCB 0
00005f 00 DCB 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 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
|L8.32|
000020 f7fffffe 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 f7fffffe BL BKP_ReadBackupRegister
00002e f5a04125 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 f7fffffe BL LCD_DisplayStringLine
;;;346 LCD_DisplayStringLine(Line2, "not configured, ");
00003e a128 ADR r1,|L8.224|
000040 2030 MOVS r0,#0x30
000042 f7fffffe BL LCD_DisplayStringLine
;;;347 LCD_DisplayStringLine(Line3, "please go to the ");
000046 a12c ADR r1,|L8.248|
000048 2048 MOVS r0,#0x48
00004a f7fffffe BL LCD_DisplayStringLine
;;;348 LCD_DisplayStringLine(Line4, "calendar menu and ");
00004e a130 ADR r1,|L8.272|
000050 2060 MOVS r0,#0x60
000052 f7fffffe BL LCD_DisplayStringLine
;;;349 LCD_DisplayStringLine(Line5, "set the time and ");
000056 a134 ADR r1,|L8.296|
000058 2078 MOVS r0,#0x78
00005a f7fffffe BL LCD_DisplayStringLine
;;;350 LCD_DisplayStringLine(Line6, "date parameters. ");
00005e a138 ADR r1,|L8.320|
000060 2090 MOVS r0,#0x90
000062 f7fffffe BL LCD_DisplayStringLine
;;;351 LCD_DisplayStringLine(Line7, "Press JoyStick to ");
000066 a13c ADR r1,|L8.344|
000068 20a8 MOVS r0,#0xa8
00006a f7fffffe BL LCD_DisplayStringLine
;;;352 LCD_DisplayStringLine(Line8, "continue... ");
00006e a140 ADR r1,|L8.368|
000070 20c0 MOVS r0,#0xc0
000072 f7fffffe BL LCD_DisplayStringLine
;;;353 while(ReadKey() == NOKEY)
000076 bf00 NOP
|L8.120|
000078 f7fffffe 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 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
|L8.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,|L8.392|
0000b0 20a8 MOVS r0,#0xa8
0000b2 f7fffffe BL LCD_DisplayStringLine
;;;374 LCD_DisplayStringLine(Line8, " Wait For RTC Alarm ");
0000b6 a13a ADR r1,|L8.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
|L8.200|
0000c8 54696d6520616e6420446174652061726520202000 DCB "Time and Date are ",0
0000dd 00 DCB 0
0000de 00 DCB 0
0000df 00 DCB 0
|L8.224|
0000e0 6e6f7420636f6e666967757265642c202020202000 DCB "not configured, ",0
0000f5 00 DCB 0
0000f6 00 DCB 0
0000f7 00 DCB 0
|L8.248|
0000f8 706c6561736520676f20746f207468652020202000 DCB "please go to the ",0
00010d 00 DCB 0
00010e 00 DCB 0
00010f 00 DCB 0
|L8.272|
000110 63616c656e646172206d656e7520616e6420202000 DCB "calendar menu and ",0
000125 00 DCB 0
000126 00 DCB 0
000127 00 DCB 0
|L8.296|
000128 736574207468652074696d6520616e642020202000 DCB "set the time and ",0
00013d 00 DCB 0
00013e 00 DCB 0
00013f 00 DCB 0
|L8.320|
000140 6461746520706172616d65746572732e2020202000 DCB "date parameters. ",0
000155 00 DCB 0
000156 00 DCB 0
000157 00 DCB 0
|L8.344|
000158 5072657373204a6f79537469636b20746f20202000 DCB "Press JoyStick to ",0
00016d 00 DCB 0
00016e 00 DCB 0
00016f 00 DCB 0
|L8.368|
000170 636f6e74696e75652e2e2e20202020202020202000 DCB "continue... ",0
000185 00 DCB 0
000186 00 DCB 0
000187 00 DCB 0
|L8.392|
000188 204d435520696e205354414e444259204d6f646500 DCB " MCU in STANDBY Mode",0
00019d 00 DCB 0
00019e 00 DCB 0
00019f 00 DCB 0
|L8.416|
0001a0 205761697420466f722052544320416c61726d2000 DCB " Wait For RTC Alarm ",0
0001b5 00 DCB 0
0001b6 00 DCB 0
0001b7 00 DCB 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 + -