Enter Low Power mode not to use sd_power_system_off() subroutine

Dependents:   BLE_EddystoneBeacon_w_ACC_TY51822 BLE_LoopbackUART_low_pwr_w_RTC1 BLE_Paired_Server BLE_Paired_Client

Committer:
kenjiArai
Date:
Sat Jun 11 00:45:36 2016 +0000
Revision:
2:ffd5168de563
Parent:
1:4c3f4f1e154e
added delay()

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kenjiArai 0:9ddf14df689c 1 /*
kenjiArai 0:9ddf14df689c 2 * mbed library program
kenjiArai 0:9ddf14df689c 3 * Set low power condition only for nRF51822 BLE chip
kenjiArai 0:9ddf14df689c 4 *
kenjiArai 0:9ddf14df689c 5 * Copyright (c) 2016 Kenji Arai / JH1PJL
kenjiArai 0:9ddf14df689c 6 * http://www.page.sannet.ne.jp/kenjia/index.html
kenjiArai 0:9ddf14df689c 7 * http://mbed.org/users/kenjiArai/
kenjiArai 0:9ddf14df689c 8 * Started: April 30th, 2016
kenjiArai 2:ffd5168de563 9 * Revised: June 11th, 2016
kenjiArai 0:9ddf14df689c 10 *
kenjiArai 0:9ddf14df689c 11 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
kenjiArai 0:9ddf14df689c 12 * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
kenjiArai 0:9ddf14df689c 13 * AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
kenjiArai 0:9ddf14df689c 14 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
kenjiArai 0:9ddf14df689c 15 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
kenjiArai 0:9ddf14df689c 16 */
kenjiArai 0:9ddf14df689c 17
kenjiArai 0:9ddf14df689c 18 #ifndef NRF51_LOWPWR_H
kenjiArai 0:9ddf14df689c 19 #define NRF51_LOWPWR_H
kenjiArai 0:9ddf14df689c 20
kenjiArai 0:9ddf14df689c 21 #include "mbed.h"
kenjiArai 0:9ddf14df689c 22
kenjiArai 0:9ddf14df689c 23
kenjiArai 0:9ddf14df689c 24 ////////////// DATA TYPE DEFINITION ///////////////////////
kenjiArai 0:9ddf14df689c 25 typedef struct {
kenjiArai 0:9ddf14df689c 26 bool std_printf_function;
kenjiArai 0:9ddf14df689c 27 bool serial_function;
kenjiArai 0:9ddf14df689c 28 bool i2c_function;
kenjiArai 0:9ddf14df689c 29 bool spi_function;
kenjiArai 0:9ddf14df689c 30 bool spi_slave_function;
kenjiArai 0:9ddf14df689c 31 bool pwm_functions;
kenjiArai 0:9ddf14df689c 32 bool analog_function;
kenjiArai 0:9ddf14df689c 33 } nRF51_LOWPWR_TypeDef;
kenjiArai 0:9ddf14df689c 34
kenjiArai 0:9ddf14df689c 35 /** Set low power condition only for nRF51822 BLE chip
kenjiArai 0:9ddf14df689c 36 *
kenjiArai 0:9ddf14df689c 37 * @code
kenjiArai 0:9ddf14df689c 38 * #include "mbed.h"
kenjiArai 0:9ddf14df689c 39 * #include "BLE.h"
kenjiArai 0:9ddf14df689c 40 * #include "nRF51_lowpwr.h"
kenjiArai 0:9ddf14df689c 41 *
kenjiArai 0:9ddf14df689c 42 * const nRF51_LOWPWR_TypeDef lowpwr_table =
kenjiArai 0:9ddf14df689c 43 * {
kenjiArai 1:4c3f4f1e154e 44 * false, // VCOM
kenjiArai 1:4c3f4f1e154e 45 * false, // UART
kenjiArai 1:4c3f4f1e154e 46 * true, // I2C
kenjiArai 1:4c3f4f1e154e 47 * false, // SPI
kenjiArai 1:4c3f4f1e154e 48 * false, // SPI Slave
kenjiArai 1:4c3f4f1e154e 49 * false, // PWM
kenjiArai 1:4c3f4f1e154e 50 * false // ADC
kenjiArai 0:9ddf14df689c 51 * };
kenjiArai 0:9ddf14df689c 52 *
kenjiArai 0:9ddf14df689c 53 * int main() {
kenjiArai 0:9ddf14df689c 54 * LowPwr set_lowpwr(&lowpwr_table);
kenjiArai 0:9ddf14df689c 55 * while(1) {
kenjiArai 0:9ddf14df689c 56 * ble.waitForEvent();
kenjiArai 0:9ddf14df689c 57 * }
kenjiArai 0:9ddf14df689c 58 * }
kenjiArai 0:9ddf14df689c 59 * @endcode
kenjiArai 0:9ddf14df689c 60 */
kenjiArai 0:9ddf14df689c 61
kenjiArai 0:9ddf14df689c 62 class LowPwr{
kenjiArai 0:9ddf14df689c 63 public:
kenjiArai 0:9ddf14df689c 64 /** Configure data pin
kenjiArai 0:9ddf14df689c 65 * @param parameters table for Enable/Disable peripheral functions
kenjiArai 0:9ddf14df689c 66 */
kenjiArai 0:9ddf14df689c 67 LowPwr(const nRF51_LOWPWR_TypeDef *param);
kenjiArai 0:9ddf14df689c 68 };
kenjiArai 0:9ddf14df689c 69
kenjiArai 0:9ddf14df689c 70 #ifndef TARGET_NRF51822
kenjiArai 0:9ddf14df689c 71 #error "Only for TY51822r3 (If your chip is nRF51822, it should work(I haven't tested)."
kenjiArai 0:9ddf14df689c 72 #endif
kenjiArai 0:9ddf14df689c 73
kenjiArai 0:9ddf14df689c 74 #endif // NRF51_LOWPWR_H