From d4c48f66c23fe3d7a44a75871ffe0cd3f2739274 Mon Sep 17 00:00:00 2001 From: Stefan `Sec` Zehl Date: Mon, 1 Aug 2011 05:31:47 +0200 Subject: [PATCH] Disable nrf on lowpower-off --- firmware/basic/voltage.c | 1 + firmware/funk/nrf24l01p.c | 7 +++++++ firmware/funk/nrf24l01p.h | 1 + 3 files changed, 9 insertions(+) diff --git a/firmware/basic/voltage.c b/firmware/basic/voltage.c index 1ed2d69..624cbf8 100644 --- a/firmware/basic/voltage.c +++ b/firmware/basic/voltage.c @@ -11,6 +11,7 @@ void VoltageCheck(void){ results /= 1024; if( results < 3500 ){ + nrf_off(); gpioSetValue (RB_PWR_GOOD, 0); gpioSetValue (RB_LCD_BL, 0); SCB_SCR |= SCB_SCR_SLEEPDEEP; diff --git a/firmware/funk/nrf24l01p.c b/firmware/funk/nrf24l01p.c index bffaa34..8c3c464 100644 --- a/firmware/funk/nrf24l01p.c +++ b/firmware/funk/nrf24l01p.c @@ -395,3 +395,10 @@ void nrf_init() { nrf_write_reg(R_RF_SETUP,DEFAULT_SPEED|R_RF_SETUP_RF_PWR_3); }; +void nrf_off() { + nrf_write_reg(R_CONFIG, + R_CONFIG_MASK_RX_DR| + R_CONFIG_MASK_TX_DS| + R_CONFIG_MASK_MAX_RT + ); // Most important: no R_CONFIG_PWR_UP +}; diff --git a/firmware/funk/nrf24l01p.h b/firmware/funk/nrf24l01p.h index ace6122..252d747 100644 --- a/firmware/funk/nrf24l01p.h +++ b/firmware/funk/nrf24l01p.h @@ -138,6 +138,7 @@ int nrf_rcv_pkt_time_encr(int maxtime, int maxsize, uint8_t * pkt, uint32_t cons char nrf_snd_pkt_crc_encr(int size, uint8_t * pkt, uint32_t const k[4]); void nrf_init() ; +void nrf_off() ; void nrf_cmd(uint8_t cmd); uint8_t nrf_cmd_status(uint8_t cmd);