Changed RF69 rx timeout from gpio to internal
This commit is contained in:
parent
7b54c152dd
commit
8f1c94e8b5
1 changed files with 12 additions and 3 deletions
15
src/RF69.cpp
15
src/RF69.cpp
|
@ -5,7 +5,8 @@ RF69::RF69(Module* module) {
|
|||
}
|
||||
|
||||
uint8_t RF69::begin() {
|
||||
_mod->init(USE_SPI, INT_BOTH);
|
||||
//_mod->init(USE_SPI, INT_BOTH);
|
||||
_mod->init(USE_SPI, INT_0);
|
||||
|
||||
uint8_t i = 0;
|
||||
bool flagFound = false;
|
||||
|
@ -93,18 +94,26 @@ uint8_t RF69::receive(Packet& pack) {
|
|||
|
||||
//_mod->SPIsetRegValue(RF69_REG_PACKET_CONFIG_2, RF69_RESTART_RX, 2, 2);
|
||||
|
||||
_mod->SPIsetRegValue(RF69_REG_DIO_MAPPING_1, RF69_DIO0_PACK_PAYLOAD_READY | RF69_DIO1_PACK_TIMEOUT, 7, 4);
|
||||
//_mod->SPIsetRegValue(RF69_REG_DIO_MAPPING_1, RF69_DIO0_PACK_PAYLOAD_READY | RF69_DIO1_PACK_TIMEOUT, 7, 4);
|
||||
_mod->SPIsetRegValue(RF69_REG_DIO_MAPPING_1, RF69_DIO0_PACK_PAYLOAD_READY, 7, 6);
|
||||
clearIRQFlags();
|
||||
|
||||
setMode(RF69_RX);
|
||||
_mod->SPIsetRegValue(RF69_REG_TEST_PA1, RF69_PA1_NORMAL);
|
||||
_mod->SPIsetRegValue(RF69_REG_TEST_PA2, RF69_PA2_NORMAL);
|
||||
|
||||
while(!_mod->getInt0State()) {
|
||||
/*while(!_mod->getInt0State()) {
|
||||
if(_mod->getInt1State()) {
|
||||
clearIRQFlags();
|
||||
return(ERR_RX_TIMEOUT);
|
||||
}
|
||||
}*/
|
||||
unsigned long start = millis();
|
||||
while(!_mod->getInt0State()) {
|
||||
if(millis() - start > 2000) {
|
||||
clearIRQFlags();
|
||||
return(ERR_RX_TIMEOUT);
|
||||
}
|
||||
}
|
||||
|
||||
pack.length = _mod->SPIreadRegister(RF69_REG_FIFO);
|
||||
|
|
Loading…
Add table
Reference in a new issue