Приветствую всех! Пишу пользовательский блок. Задача такая. При нажатии на кнопку Ping, передатчик высылает сообщение другим устройствам, те в свою очередь отправляют ему ответ с своим уровнем сигнала. Так вот, требуется записывать адрес от принятых устройств (передатчики) а память относительно их уровня сигнала. Передатчик с самым высоким уровнем запишется в самое начало памяти, с самым низким будет последним в памяти. Делаю вот, так, но работает не корректно
if ((rssi < -20) || (rssi >= -30)) { // уровень сигнала меньше -20 дБм, но не больше или равно -30, то пишем в 0 ячейку памяти
EEPROM.put(addree, ADDRs);
addree += sizeof(byte); // наращиваем адрес EEPROM
ADDRs = 0;
byte Mpong = 101;
sendpong(Mpong);
onReceive(LoRa.parsePacket());
delay(100);
}
if ((rssi > -30) || (rssi >= -40)) { // уровень сигнала больше -30 дБм, но не больше или равно -40, то пишем в следующею ячейку памяти
EEPROM.put(addree, ADDRs);
addree += sizeof(byte); //наращиваем адрес EEPROM
ADDRs = 0;
byte Mpong = 101;
sendpong(Mpong);
onReceive(LoRa.parsePacket());
delay(100);
И так далее.
Заранее спасибо!
Запись EEPROM относительно уровня сигнала
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Запись EEPROM относительно уровня сигнала
Будьте внимательней с указанием диапазона

Используйте else if - меньше условий писать...
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Запись EEPROM относительно уровня сигнала
Не очень хорошо использовать delay в ПБ.
А если просто принять сигналы в переменные. Загнать в блок сортировки, а на выходе уже записывать каждое значение в свою ячейку.
Запись EEPROM относительно уровня сигнала
[ref]edyapd[/ref], Спасибо. Delay использую исключитель для того, чтобы успеть пропарсить принятый пакет
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей