mirror of
https://github.com/sandeepmistry/arduino-LoRa.git
synced 2025-04-19 13:02:14 +03:00
Re-use some functions
This commit is contained in:
parent
5af0578293
commit
bd5a6de310
19
src/LoRa.cpp
19
src/LoRa.cpp
@ -54,8 +54,6 @@ LoRaClass::LoRaClass() :
|
|||||||
|
|
||||||
int LoRaClass::begin(long frequency)
|
int LoRaClass::begin(long frequency)
|
||||||
{
|
{
|
||||||
_frequency = frequency;
|
|
||||||
|
|
||||||
// setup pins
|
// setup pins
|
||||||
pinMode(_ss, OUTPUT);
|
pinMode(_ss, OUTPUT);
|
||||||
pinMode(_reset, OUTPUT);
|
pinMode(_reset, OUTPUT);
|
||||||
@ -79,23 +77,20 @@ int LoRaClass::begin(long frequency)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// put in sleep mode
|
// put in sleep mode
|
||||||
writeRegister(REG_OP_MODE, MODE_LONG_RANGE_MODE | MODE_SLEEP);
|
sleep();
|
||||||
|
|
||||||
// set frequency
|
// set frequency
|
||||||
uint64_t frf = ((uint64_t)frequency << 19) / 32000000;
|
setFrequency(frequency);
|
||||||
writeRegister(REG_FRF_MSB, (uint8_t)(frf >> 16));
|
|
||||||
writeRegister(REG_FRF_MID, (uint8_t)(frf >> 8));
|
|
||||||
writeRegister(REG_FRF_LSB, (uint8_t)(frf >> 0));
|
|
||||||
|
|
||||||
// set base addresses
|
// set base addresses
|
||||||
writeRegister(REG_FIFO_TX_BASE_ADDR, 0);
|
writeRegister(REG_FIFO_TX_BASE_ADDR, 0);
|
||||||
writeRegister(REG_FIFO_RX_BASE_ADDR, 0);
|
writeRegister(REG_FIFO_RX_BASE_ADDR, 0);
|
||||||
|
|
||||||
// set output power to 17 dBm
|
// set output power to 17 dBm
|
||||||
writeRegister(REG_PA_CONFIG, PA_BOOST | 0x0f);
|
setTxPower(17);
|
||||||
|
|
||||||
// put in standby mode
|
// put in standby mode
|
||||||
writeRegister(REG_OP_MODE, MODE_LONG_RANGE_MODE | MODE_STDBY);
|
idle();
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -103,7 +98,7 @@ int LoRaClass::begin(long frequency)
|
|||||||
void LoRaClass::end()
|
void LoRaClass::end()
|
||||||
{
|
{
|
||||||
// put in sleep mode
|
// put in sleep mode
|
||||||
writeRegister(REG_OP_MODE, MODE_LONG_RANGE_MODE | MODE_SLEEP);
|
sleep();
|
||||||
|
|
||||||
// stop SPI
|
// stop SPI
|
||||||
SPI.end();
|
SPI.end();
|
||||||
@ -112,7 +107,7 @@ void LoRaClass::end()
|
|||||||
int LoRaClass::beginPacket()
|
int LoRaClass::beginPacket()
|
||||||
{
|
{
|
||||||
// put in standby mode
|
// put in standby mode
|
||||||
writeRegister(REG_OP_MODE, MODE_LONG_RANGE_MODE | MODE_STDBY);
|
idle();
|
||||||
|
|
||||||
// reset FIFO address and paload length
|
// reset FIFO address and paload length
|
||||||
writeRegister(REG_FIFO_ADDR_PTR, 0);
|
writeRegister(REG_FIFO_ADDR_PTR, 0);
|
||||||
@ -154,7 +149,7 @@ int LoRaClass::parsePacket()
|
|||||||
writeRegister(REG_FIFO_ADDR_PTR, readRegister(REG_FIFO_RX_CURRENT_ADDR));
|
writeRegister(REG_FIFO_ADDR_PTR, readRegister(REG_FIFO_RX_CURRENT_ADDR));
|
||||||
|
|
||||||
// put in standby mode
|
// put in standby mode
|
||||||
writeRegister(REG_OP_MODE, MODE_LONG_RANGE_MODE | MODE_STDBY);
|
idle();
|
||||||
} else if (readRegister(REG_OP_MODE) != (MODE_LONG_RANGE_MODE | MODE_RX_SINGLE)) {
|
} else if (readRegister(REG_OP_MODE) != (MODE_LONG_RANGE_MODE | MODE_RX_SINGLE)) {
|
||||||
// not currently in RX mode
|
// not currently in RX mode
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user