Господа !
Подскажите пожалуйста
Есть связка: приемник 433Мгц - массив, в котором проверяется код, который пришло по радио (типа датчики), если есть совпадение, то на выходе массива выставляется единица.
Не могу понять как сделать так, что б эта связка ресетилась и ждала следующей посылки, потом что если приходит следующий код и он в массиве, то она выходе как стояла единица, так и продолжает стоять, а мне нужно отделать эти события
Спасибо
Сбросить значение после прихода через 433МГц
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Сбросить значение после прихода через 433МГц
Типа такandrey856 писал(а): 20 янв 2022, 16:41 Господа !
Подскажите пожалуйста
Есть связка: приемник 433Мгц - массив, в котором проверяется код, который пришло по радио (типа датчики), если есть совпадение, то на выходе массива выставляется единица.
Не могу понять как сделать так, что б эта связка ресетилась и ждала следующей посылки, потом что если приходит следующий код и он в массиве, то она выходе как стояла единица, так и продолжает стоять, а мне нужно отделать эти события
Спасибо
[spoiler]
Код: Выделить всё
_nomer_cmd = -1;
_comand_433=-1;
if (rx433.available()) {
uint32_t rs =rx433.getReceivedValue();
rx433.resetAvailable();
for(int c = 0;c < razmer_arr_code;c++){ // с - размер массива кодов пультов
if(rs == _array_key[c]){_nomer_cmd=c; break;}
}
_old_time_433 = millis();
_est_data=1;
if(_nomer_cmd != -1){
if(_old_nomer_cmd == _nomer_cmd ){_kol_vo_paket++;} // {_comand_433=_nomer_cmd;}
_old_nomer_cmd = _nomer_cmd;
}
if(_long_push_butn){
if(_kol_vo_paket >= _long_kol_vo){ // _old_nomer_cmd == должна соответствовать номеру, команде, от пульта упр
if(_old_nomer_cmd == 0) _update_long_push(0);// функция на выкл и запомнить состояние или вкл последний режим, из памяти
if(_old_nomer_cmd == 1) _update_long_push(1);// номер пульта в массиве
}
}
}
if(_est_data){
if(millis()- _old_time_433 > 300)
{
if(_kol_vo_paket>0 && _kol_vo_paket < _long_kol_vo){_comand_433=_old_nomer_cmd;}// просто команда на изменение
_old_nomer_cmd=111;
_est_data=0;
_kol_vo_paket=0;
_long_push_butn = 1; // разрешаем обработку длинного нажатия
}
}
if(_comand_433 != -1 ){
_upd_stat_ch(_comand_433);
}
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей