1
0
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:
Sandeep Mistry 2016-10-10 18:35:34 -04:00
parent 5af0578293
commit bd5a6de310

View File

@ -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