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
nRF51_lowpwr.h@0:9ddf14df689c, 2016-06-01 (annotated)
- Committer:
- kenjiArai
- Date:
- Wed Jun 01 10:55:02 2016 +0000
- Revision:
- 0:9ddf14df689c
- Child:
- 1:4c3f4f1e154e
Enter low power mode
Who changed what in which revision?
User | Revision | Line number | New 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 | 0:9ddf14df689c | 9 | * Revised: June 1st, 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 | 0:9ddf14df689c | 44 | * false, |
kenjiArai | 0:9ddf14df689c | 45 | * false, |
kenjiArai | 0:9ddf14df689c | 46 | * true, |
kenjiArai | 0:9ddf14df689c | 47 | * false, |
kenjiArai | 0:9ddf14df689c | 48 | * false, |
kenjiArai | 0:9ddf14df689c | 49 | * false, |
kenjiArai | 0:9ddf14df689c | 50 | * false |
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 |