From 76d9a91ffa086771eb2435ec077cc57e68f55777 Mon Sep 17 00:00:00 2001 From: jgromes Date: Sun, 13 Jan 2019 19:48:43 +0100 Subject: [PATCH] [XBee] Fixed reset --- src/modules/XBee.cpp | 38 +++++++++++++------------------------- 1 file changed, 13 insertions(+), 25 deletions(-) diff --git a/src/modules/XBee.cpp b/src/modules/XBee.cpp index 01c5b85c..81ca2ecf 100644 --- a/src/modules/XBee.cpp +++ b/src/modules/XBee.cpp @@ -9,17 +9,9 @@ XBee::XBee(Module* mod) { } int16_t XBee::begin(long speed) { - // set Arduino pins - /*pinMode(A4, OUTPUT); - pinMode(A5, OUTPUT); - pinMode(3, OUTPUT); - digitalWrite(A4, LOW); - digitalWrite(A5, LOW); - digitalWrite(3, HIGH);*/ - // set module properties _mod->baudrate = speed; - _mod->init(USE_UART, INT_NONE); + _mod->init(USE_UART, INT_1); // reset module reset(); @@ -44,6 +36,8 @@ int16_t XBee::begin(long speed) { DEBUG_PRINTLN(state); DEBUG_PRINTLN_STR("Resetting ..."); reset(); + delay(1000); + _mod->ATemptyBuffer(); i++; } } @@ -59,14 +53,11 @@ int16_t XBee::begin(long speed) { } void XBee::reset() { - pinMode(_mod->int1(), OUTPUT); - delay(10); - digitalWrite(_mod->int1(), HIGH); - delay(500); - digitalWrite(_mod->int1(), LOW); - delay(500); - pinMode(_mod->int1(), INPUT); - delay(500); + pinMode(_mod->getInt1(), OUTPUT); + digitalWrite(_mod->getInt1(), LOW); + delayMicroseconds(200); + digitalWrite(_mod->getInt1(), HIGH); + pinMode(_mod->getInt1(), INPUT); } int16_t XBee::transmit(uint8_t* dest, const char* payload, uint8_t radius) { @@ -212,14 +203,11 @@ int16_t XBeeSerial::begin(long speed) { } void XBeeSerial::reset() { - pinMode(_mod->int1(), OUTPUT); - delay(10); - digitalWrite(_mod->int1(), HIGH); - delay(500); - digitalWrite(_mod->int1(), LOW); - delay(500); - pinMode(_mod->int1(), INPUT); - delay(500); + pinMode(_mod->getInt1(), OUTPUT); + digitalWrite(_mod->getInt1(), LOW); + delayMicroseconds(200); + digitalWrite(_mod->getInt1(), HIGH); + pinMode(_mod->getInt1(), INPUT); } int16_t XBeeSerial::setDestinationAddress(const char* destinationAddressHigh, const char* destinationAddressLow) {