mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Committer:
mbed_official
Date:
Wed Sep 24 13:15:06 2014 +0100
Revision:
331:098575c6d2c8
Parent:
268:402bcc0c870b
Synchronized with git revision b1260b55d48f08b7a25efe2b72e7765686db0a70

Full URL: https://github.com/mbedmicro/mbed/commit/b1260b55d48f08b7a25efe2b72e7765686db0a70/

[HAL] Nucleo boards - Fix issue with InterruptIn edges disable (MBED_A7 test)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 30:91c1d09ada54 1 /* mbed Microcontroller Library
mbed_official 30:91c1d09ada54 2 * Copyright (c) 2006-2013 ARM Limited
mbed_official 30:91c1d09ada54 3 *
mbed_official 30:91c1d09ada54 4 * Licensed under the Apache License, Version 2.0 (the "License");
mbed_official 30:91c1d09ada54 5 * you may not use this file except in compliance with the License.
mbed_official 30:91c1d09ada54 6 * You may obtain a copy of the License at
mbed_official 30:91c1d09ada54 7 *
mbed_official 30:91c1d09ada54 8 * http://www.apache.org/licenses/LICENSE-2.0
mbed_official 30:91c1d09ada54 9 *
mbed_official 30:91c1d09ada54 10 * Unless required by applicable law or agreed to in writing, software
mbed_official 30:91c1d09ada54 11 * distributed under the License is distributed on an "AS IS" BASIS,
mbed_official 30:91c1d09ada54 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
mbed_official 30:91c1d09ada54 13 * See the License for the specific language governing permissions and
mbed_official 30:91c1d09ada54 14 * limitations under the License.
mbed_official 30:91c1d09ada54 15 */
mbed_official 30:91c1d09ada54 16 #include "sleep_api.h"
mbed_official 30:91c1d09ada54 17 #include "cmsis.h"
mbed_official 30:91c1d09ada54 18 #include "mbed_interface.h"
mbed_official 30:91c1d09ada54 19
mbed_official 30:91c1d09ada54 20 void sleep(void) {
mbed_official 30:91c1d09ada54 21
mbed_official 30:91c1d09ada54 22 // PCON[DPDEN] set to sleep
mbed_official 30:91c1d09ada54 23 LPC_PMU->PCON = 0x0;
mbed_official 30:91c1d09ada54 24
mbed_official 30:91c1d09ada54 25 // SRC[SLEEPDEEP] set to 0 = sleep
mbed_official 30:91c1d09ada54 26 SCB->SCR &= ~SCB_SCR_SLEEPDEEP_Msk;
mbed_official 30:91c1d09ada54 27
mbed_official 30:91c1d09ada54 28 // wait for interrupt
mbed_official 30:91c1d09ada54 29 __WFI();
mbed_official 30:91c1d09ada54 30 }
mbed_official 30:91c1d09ada54 31
mbed_official 30:91c1d09ada54 32 void deepsleep(void) {
mbed_official 30:91c1d09ada54 33
mbed_official 30:91c1d09ada54 34 // PCON[DPDEN] set to deepsleep
mbed_official 268:402bcc0c870b 35 LPC_PMU->PCON = 0;
mbed_official 30:91c1d09ada54 36
mbed_official 30:91c1d09ada54 37 // SRC[SLEEPDEEP] set to 1 = deep sleep
mbed_official 30:91c1d09ada54 38 SCB->SCR |= SCB_SCR_SLEEPDEEP_Msk;
mbed_official 30:91c1d09ada54 39
mbed_official 268:402bcc0c870b 40 //According to user manual it is kinda picky about reserved bits, so we follow that nicely
mbed_official 268:402bcc0c870b 41 //Keep WDOSC and BOD in same state as they are now during deepsleep
mbed_official 268:402bcc0c870b 42 LPC_SYSCON->PDSLEEPCFG = 0x000018B7 | (LPC_SYSCON->PDRUNCFG & (PDRUNCFG_WDTOSC_PD | PDRUNCFG_BOD_PD));
mbed_official 268:402bcc0c870b 43
mbed_official 268:402bcc0c870b 44 // Power up same as before powerdown
mbed_official 268:402bcc0c870b 45 LPC_SYSCON->PDAWAKECFG = LPC_SYSCON->PDRUNCFG;
mbed_official 30:91c1d09ada54 46
mbed_official 30:91c1d09ada54 47 // wait for interrupt
mbed_official 30:91c1d09ada54 48 __WFI();
mbed_official 30:91c1d09ada54 49 }