Запись EEPROM относительно уровня сигнала

Ответить
Аватара пользователя
stapmoff
Лейтенант
Сообщения: 341
Зарегистрирован: 16 май 2016, 10:21

Запись EEPROM относительно уровня сигнала

Сообщение stapmoff »

Приветствую всех! Пишу пользовательский блок. Задача такая. При нажатии на кнопку 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);

И так далее.
Заранее спасибо!
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Запись EEPROM относительно уровня сигнала

Сообщение Sancho »

stapmoff писал(а): 16 апр 2020, 09:11 if ((rssi < -20) || (rssi >= -30))
stapmoff писал(а): 16 апр 2020, 09:11 if ((rssi > -30) || (rssi >= -40))
Будьте внимательней с указанием диапазона :) Как отработает, например, -25?
Используйте else if - меньше условий писать...
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Аватара пользователя
stapmoff
Лейтенант
Сообщения: 341
Зарегистрирован: 16 май 2016, 10:21

Запись EEPROM относительно уровня сигнала

Сообщение stapmoff »

[ref=#ff8000]Sancho[/ref], Спасибо. Попробую.
edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20 сен 2019, 11:38
Имя: Эдуард

Запись EEPROM относительно уровня сигнала

Сообщение edyapd »

stapmoff писал(а): 16 апр 2020, 09:11delay(100)
Не очень хорошо использовать delay в ПБ.
А если просто принять сигналы в переменные. Загнать в блок сортировки, а на выходе уже записывать каждое значение в свою ячейку.
Аватара пользователя
stapmoff
Лейтенант
Сообщения: 341
Зарегистрирован: 16 май 2016, 10:21

Запись EEPROM относительно уровня сигнала

Сообщение stapmoff »

[ref]edyapd[/ref], Спасибо. Delay использую исключитель для того, чтобы успеть пропарсить принятый пакет
Ответить

Вернуться в «С++ в Ардуино»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей