remove LowPower dependency, example update

This commit is contained in:
Felix Rusu 2020-09-28 20:09:43 -04:00
parent 6f99497441
commit e9f527ec18
3 changed files with 15 additions and 17 deletions

View File

@ -26,8 +26,8 @@
// ********************************************************************************** // **********************************************************************************
#include <RFM69.h> #include <RFM69.h>
#include <RFM69_ATC.h> #include <RFM69_ATC.h>
#include <LowPower.h> #include <LowPower.h> //https://github.com/LowPowerLab/LowPower
#include <PString.h> //easy string manipulator: http://arduiniana.org/libraries/pstring/ #include <PString.h> //easy string manipulator: http://arduiniana.org/libraries/pstring/
//********************************************************************************************* //*********************************************************************************************
//************ IMPORTANT SETTINGS - YOU MUST CHANGE/CONFIGURE TO FIT YOUR HARDWARE ************ //************ IMPORTANT SETTINGS - YOU MUST CHANGE/CONFIGURE TO FIT YOUR HARDWARE ************
//********************************************************************************************* //*********************************************************************************************
@ -118,13 +118,13 @@ void loop() {
if (TRANSMITPERIOD%262 && TRANSMITPERIOD > 262*2) if (TRANSMITPERIOD%262 && TRANSMITPERIOD > 262*2)
{ {
DEBUG("Sleeping "); DEBUGln(TRANSMITPERIOD-TRANSMITPERIOD%262-262); DEBUGFlush(); DEBUG("Sleeping "); DEBUGln(TRANSMITPERIOD-TRANSMITPERIOD%262-262); DEBUGFlush();
radio.listenModeSleep(TRANSMITPERIOD-TRANSMITPERIOD%262-262); listenModeSleep(TRANSMITPERIOD-TRANSMITPERIOD%262-262);
DEBUG("Sleeping "); DEBUGln(TRANSMITPERIOD%262 + 262); DEBUGFlush(); DEBUG("Sleeping "); DEBUGln(TRANSMITPERIOD%262 + 262); DEBUGFlush();
radio.listenModeSleep(TRANSMITPERIOD%262 + 262); listenModeSleep(TRANSMITPERIOD%262 + 262);
} }
else { else {
DEBUG("Sleeping "); DEBUGln(TRANSMITPERIOD); DEBUGFlush(); DEBUG("Sleeping "); DEBUGln(TRANSMITPERIOD); DEBUGFlush();
radio.listenModeSleep(TRANSMITPERIOD); listenModeSleep(TRANSMITPERIOD);
} }
//wakeup (must reinit) //wakeup (must reinit)
@ -137,3 +137,10 @@ void loop() {
#endif #endif
#endif #endif
} }
void listenModeSleep(uint16_t millisInterval) {
LowPower.powerDown( SLEEP_FOREVER, ADC_OFF, BOD_OFF );
LowPower.powerDown( SLEEP_FOREVER, ADC_OFF, BOD_OFF );
LowPower.powerDown( SLEEP_FOREVER, ADC_OFF, BOD_OFF );
radio.endListenModeSleep();
}

View File

@ -26,9 +26,6 @@
#include "RFM69.h" #include "RFM69.h"
#include "RFM69registers.h" #include "RFM69registers.h"
#include <SPI.h> #include <SPI.h>
#if defined(__AVR__)
#include <LowPower.h> //http://github.com/LowPowerLab/LowPower
#endif
uint8_t RFM69::DATA[RF69_MAX_DATA_LEN+1]; uint8_t RFM69::DATA[RF69_MAX_DATA_LEN+1];
uint8_t RFM69::_mode; // current transceiver state uint8_t RFM69::_mode; // current transceiver state
@ -874,10 +871,9 @@ void RFM69::rcCalibration()
while ((readReg(REG_OSC1) & RF_OSC1_RCCAL_DONE) == 0x00); while ((readReg(REG_OSC1) & RF_OSC1_RCCAL_DONE) == 0x00);
} }
// ListenMode sleep/timer // ListenMode sleep/timer - see ListenModeSleep example for proper usage!
void RFM69::listenModeSleep(uint16_t millisInterval) void RFM69::listenModeSleep(uint16_t millisInterval)
{ {
#if defined (__AVR__)
setMode( RF69_MODE_STANDBY ); setMode( RF69_MODE_STANDBY );
while ((readReg(REG_IRQFLAGS1) & RF_IRQFLAGS1_MODEREADY) == 0x00); // wait for ModeReady while ((readReg(REG_IRQFLAGS1) & RF_IRQFLAGS1_MODEREADY) == 0x00); // wait for ModeReady
@ -917,12 +913,7 @@ void RFM69::listenModeSleep(uint16_t millisInterval)
attachInterrupt( _interruptNum, delayIrq, RISING); attachInterrupt( _interruptNum, delayIrq, RISING);
LowPower.powerDown( SLEEP_FOREVER, ADC_OFF, BOD_OFF ); //must call sleep + interrupt handler 3 times here, then endListenModeSleep() - see ListenModeSleep example!
LowPower.powerDown( SLEEP_FOREVER, ADC_OFF, BOD_OFF );
LowPower.powerDown( SLEEP_FOREVER, ADC_OFF, BOD_OFF );
endListenModeSleep();
#endif
} }
//============================================================================= //=============================================================================

View File

@ -233,6 +233,7 @@ class RFM69 {
// ListenMode sleep/timer // ListenMode sleep/timer
void listenModeSleep(uint16_t millisInterval); void listenModeSleep(uint16_t millisInterval);
void endListenModeSleep();
protected: protected:
static void isr0(); static void isr0();
@ -243,7 +244,6 @@ class RFM69 {
// for ListenMode sleep/timer // for ListenMode sleep/timer
static void delayIrq(); static void delayIrq();
void endListenModeSleep();
uint8_t _slaveSelectPin; uint8_t _slaveSelectPin;
uint8_t _interruptPin; uint8_t _interruptPin;