Вопросы, обсуждения, найденные ошибки в версии 6.0 и старше (пока тема сильно не расползётся)
6.1.1 ее и надо тестировать
скинь проект что бы я просто добавил блок уарт сам
Вылетает при компиляции
а ваш да вылетает
да и еще вылетает если выбрать шилд 5100 при выборе esp в качестве вай фай вылета нету.
Поддерживаю Phazz. У меня такая же беда. В чистый проект устанавливаю RemoteXY + UART, при компиляции вылет.
ИсправилCancertanly писал(а): ↑16.11.2019{, 07:03}support, не знаю видели ли вы в группе Телеграм я оставлял замечание про версию 6.1.1. Там вы сделали запись переменной на СД, со входом имени файла, чтение с СД тоже со входом имени файла. Но у них проблема, после создания блока записи на СД, выбрать эту же СД не возможно в блоке чтения с СД.
Здесь я описывал проблему, но вы не отреагировали, продублирую на форуме https://t.me/flrog_ru/19054
Исправил
Исправил
ИсправилRedSky писал(а): ↑01.11.2019{, 18:54}По поводу изменений загрузки в контроллер: теперь IDE каждый раз открывается с настройками платы по умолчания, не сохраняя изменения.
К примеру для nano нужно каждый раз вручную выставлять "old bootloader" - это если загружать с открытием IDE. Напрямую загрузить будет вообще невозможно, т. к. загрузчик будет всегда выбран новый.
Отправлено спустя 6 минут 24 секунды:
AlexCrane, проверил, редактируется.
Отправлено спустя 54 секунды:
При открытии старого проекта вылет.
Исправил
Исправилgrin-mpx писал(а): ↑02.11.2019{, 23:54}6.1.1 Портативная для Win-64
Вылет программы при попытке компиляции проекта с блоком Nextion.
некстион-new.flperror-nextion.log
Отправлено спустя 12 минут 27 секунд:
Так-же вылет программы при сохранении настроек если в блоке Nextion изменить порт Serial1 на SoftwareSerial error-Software Serial.log
Исправил
ИсправилRedSky писал(а): ↑01.11.2019{, 18:54}По поводу изменений загрузки в контроллер: теперь IDE каждый раз открывается с настройками платы по умолчания, не сохраняя изменения.
К примеру для nano нужно каждый раз вручную выставлять "old bootloader" - это если загружать с открытием IDE. Напрямую загрузить будет вообще невозможно, т. к. загрузчик будет всегда выбран новый.
Отправлено спустя 6 минут 24 секунды:
AlexCrane, проверил, редактируется.
Отправлено спустя 54 секунды:
При открытии старого проекта вылет.
Исправил
grin-mpx писал(а): ↑02.11.2019{, 23:54}6.1.1 Портативная для Win-64
Вылет программы при попытке компиляции проекта с блоком Nextion.
некстион-new.flperror-nextion.log
Отправлено спустя 12 минут 27 секунд:
Так-же вылет программы при сохранении настроек если в блоке Nextion изменить порт Serial1 на SoftwareSerial error-Software Serial.log
ИсправилRedSky писал(а): ↑01.11.2019{, 18:54}По поводу изменений загрузки в контроллер: теперь IDE каждый раз открывается с настройками платы по умолчания, не сохраняя изменения.
К примеру для nano нужно каждый раз вручную выставлять "old bootloader" - это если загружать с открытием IDE. Напрямую загрузить будет вообще невозможно, т. к. загрузчик будет всегда выбран новый.
Отправлено спустя 6 минут 24 секунды:
AlexCrane, проверил, редактируется.
Отправлено спустя 54 секунды:
При открытии старого проекта вылет.
Исправил
Исправилgrin-mpx писал(а): ↑02.11.2019{, 23:54}6.1.1 Портативная для Win-64
Вылет программы при попытке компиляции проекта с блоком Nextion.
некстион-new.flperror-nextion.log
Отправлено спустя 12 минут 27 секунд:
Так-же вылет программы при сохранении настроек если в блоке Nextion изменить порт Serial1 на SoftwareSerial error-Software Serial.log
Нужен проект
Перенёс в самое начало сетап. проверим в работе в версии 6.2RedSky писал(а): ↑30.10.2019{, 09:53}Протестировал 6.1.1. Кратковременное включение реле при старте Автору победить не удалось, возможно есть сложности с переделкой компиляции секции setup.СпойлерПоказатьКод: Выделить всё
void setup() { Wire.begin(); delay(10); Ethernet.begin(ethernet_mac, ethernet_ip, ethernet_dns, ethernet_gateway, ethernet_subnet); delay(1000); _KaScadaCloudTimeOutStartTime = millis() - 5000; pinMode(2, OUTPUT); ////////// надо перенести в начало setup digitalWrite(2, 1); /////////////надо перенести в начало setup pinMode(3, INPUT_PULLUP); ///////надо перенести в начало setup _lcd1.init(); _lcd1.backlight(); }
Поправил
Исправил
Поправил
Исправил
Сделалedyapd писал(а): ↑28.10.2019{, 21:03}А можно сделать, чтобы программа запоминала последний путь для Открыть и Сохранить как... А то при каждом запуске программы приходится заново выбирать папку, если вдруг проекта не оказалось в последних проектах. Может быть в папке с программой сделать какой-нибудь конфигурационный файл.
И ещё, когда нажимаешь Сохранить как... , чтобы подставлялось текущее имя. Например я чаще всего пользуюсь этим, чтобы сохранить очередную версию проекта. И если есть текущее имя, то я просто меняю последнюю цифру.
Исправил
Исправил
Код: Выделить всё
void _modbusSlaveSendTxBuffer()
{
if(_modbusSlaveBuffer[0] == 0) {_modbusSlaveTCPClient.stop();return;}
_modbusSlaveMBAPBuffer[4] = highByte(_modbusSlaveBufferSize);
_modbusSlaveMBAPBuffer[5] = lowByte(_modbusSlaveBufferSize);
_modbusSlaveTCPClient.write(_modbusSlaveMBAPBuffer, 6);
_modbusSlaveTCPClient.write(_modbusSlaveBuffer, _modbusSlaveBufferSize);
_modbusSlaveBufferSize = 0;
}
Код: Выделить всё
bool _isTimer(unsigned long startTime, unsigned long period )
{
unsigned long currentTime;
currentTime = millis();
if (currentTime>= startTime) {return (currentTime>=(startTime + period));} else {return (currentTime >=(4294967295-startTime+period));}
}
Код: Выделить всё
bool _isTimer(unsigned long startTime, unsigned long period )
{
unsigned long currentTime = millis();
return (period <=(currentTime - startTime));
}
Это на версию 6.2.1. Сейчас некогда пока этим заниматься.Sancho писал(а): ↑28.11.2019{, 08:24}support,
Модбас тср
КОД: ВЫДЕЛИТЬ ВСЁ
void _modbusSlaveSendTxBuffer()
{
if(_modbusSlaveBuffer[0] == 0) {_modbusSlaveTCPClient.stop();return;}
_modbusSlaveMBAPBuffer[4] = highByte(_modbusSlaveBufferSize);
_modbusSlaveMBAPBuffer[5] = lowByte(_modbusSlaveBufferSize);
_modbusSlaveTCPClient.write(_modbusSlaveMBAPBuffer, 6);
_modbusSlaveTCPClient.write(_modbusSlaveBuffer, _modbusSlaveBufferSize);
_modbusSlaveBufferSize = 0;
}
Работает с любыми версиями ядер и библиотеками периферийного железа.
Жрёт меньше памяти, немного быстрее исходного кода.
Вот тут вы не правы, выше уже писали про переполнение таймераSancho писал(а): ↑28.11.2019{, 08:24}2. Изменить код функции таймера с :
КОД: ВЫДЕЛИТЬ ВСЁ
bool _isTimer(unsigned long startTime, unsigned long period )
{
unsigned long currentTime;
currentTime = millis();
if (currentTime>= startTime) {return (currentTime>=(startTime + period));} else {return (currentTime >=(4294967295-startTime+period));}
}
на
КОД: ВЫДЕЛИТЬ ВСЁ
bool _isTimer(unsigned long startTime, unsigned long period )
{
unsigned long currentTime = millis();
return (period <=(currentTime - startTime));
}
Меньше и нет лишних операций. Проверено многократно.
Файл повреждён