mbed library sources. Supersedes mbed-src.

Dependents:   Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more

Committer:
AnnaBridge
Date:
Wed Feb 20 22:31:08 2019 +0000
Revision:
189:f392fc9709a3
Parent:
160:d5399cc887bb
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 15:a81a8d6c1dfe 1 /* mbed Microcontroller Library
mbed_official 15:a81a8d6c1dfe 2 * Copyright (c) 2006-2015 ARM Limited
mbed_official 15:a81a8d6c1dfe 3 *
mbed_official 15:a81a8d6c1dfe 4 * Licensed under the Apache License, Version 2.0 (the "License");
mbed_official 15:a81a8d6c1dfe 5 * you may not use this file except in compliance with the License.
mbed_official 15:a81a8d6c1dfe 6 * You may obtain a copy of the License at
mbed_official 15:a81a8d6c1dfe 7 *
mbed_official 15:a81a8d6c1dfe 8 * http://www.apache.org/licenses/LICENSE-2.0
mbed_official 15:a81a8d6c1dfe 9 *
mbed_official 15:a81a8d6c1dfe 10 * Unless required by applicable law or agreed to in writing, software
mbed_official 15:a81a8d6c1dfe 11 * distributed under the License is distributed on an "AS IS" BASIS,
mbed_official 15:a81a8d6c1dfe 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
mbed_official 15:a81a8d6c1dfe 13 * See the License for the specific language governing permissions and
mbed_official 15:a81a8d6c1dfe 14 * limitations under the License.
mbed_official 15:a81a8d6c1dfe 15 */
mbed_official 15:a81a8d6c1dfe 16 #include "mbed_assert.h"
mbed_official 15:a81a8d6c1dfe 17 #include "sleep_api.h"
mbed_official 15:a81a8d6c1dfe 18
mbed_official 15:a81a8d6c1dfe 19 #include "power.h"
mbed_official 15:a81a8d6c1dfe 20
mbed_official 15:a81a8d6c1dfe 21 /** Send the device to sleep
mbed_official 15:a81a8d6c1dfe 22 *
mbed_official 15:a81a8d6c1dfe 23 * The processor is setup ready for sleep, and sent to sleep using __WFI(). In this mode, the
mbed_official 15:a81a8d6c1dfe 24 * system clock to the core is stopped until a reset or an interrupt occurs.
mbed_official 15:a81a8d6c1dfe 25 * @param[void] void
mbed_official 15:a81a8d6c1dfe 26 * @return void
mbed_official 15:a81a8d6c1dfe 27 */
<> 160:d5399cc887bb 28 void hal_sleep(void)
mbed_official 15:a81a8d6c1dfe 29 {
mbed_official 18:da299f395b9e 30 #if (SAMD21) || (SAMR21)
mbed_official 15:a81a8d6c1dfe 31 system_set_sleepmode(SYSTEM_SLEEPMODE_IDLE_2);
mbed_official 18:da299f395b9e 32 #elif (SAML21)
mbed_official 18:da299f395b9e 33 system_set_sleepmode(SYSTEM_SLEEPMODE_IDLE);
mbed_official 18:da299f395b9e 34 #endif
mbed_official 15:a81a8d6c1dfe 35 system_sleep();
mbed_official 15:a81a8d6c1dfe 36 }
mbed_official 15:a81a8d6c1dfe 37
mbed_official 15:a81a8d6c1dfe 38 /** Send the device to deep sleep
mbed_official 15:a81a8d6c1dfe 39 *
mbed_official 15:a81a8d6c1dfe 40 * This processor is setup ready for deep sleep, and sent to sleep using __WFI(). This mode
mbed_official 15:a81a8d6c1dfe 41 * has the same sleep features as sleep plus it powers down peripherals and clocks. All state
mbed_official 15:a81a8d6c1dfe 42 * is still maintained.
mbed_official 15:a81a8d6c1dfe 43 * @param[void] void
mbed_official 15:a81a8d6c1dfe 44 * @return void
mbed_official 15:a81a8d6c1dfe 45 */
<> 160:d5399cc887bb 46 void hal_deepsleep(void)
mbed_official 15:a81a8d6c1dfe 47 {
mbed_official 15:a81a8d6c1dfe 48 system_set_sleepmode(SYSTEM_SLEEPMODE_STANDBY);
mbed_official 15:a81a8d6c1dfe 49 system_sleep();
mbed_official 64:41a834223ea3 50 }