alexsis_76 писал(а):Интересное кино
попробуйте поставить задежку перед wdt_enable(WDTO_15MS);, хотя по идее функция не возвращает управление пока запись в eeprom не завершится, у меня ведь работает,может компилятор мудрит, ведь не просто так у меня ваша прошивка не работает,хотя ведь все остальное у Вас нормально функционирует, сегодня попробую запустит Вашу прошивку у себя
Перепробовал все!
1. Ставил задержку до wdt_enable(WDTO_15MS)
2. Убирал совсем wdt_enable(WDTO_15MS) и оставлял в HardReset() задержку 1000мС, поскольку в основной программе уже есть wdt_enable(WDTO_1S)
3. Убирал совсем wdt_enable(WDTO_15MS) и оставлял в HardReset() бесконечный цикл, поскольку в основной программе уже есть wdt_enable(WDTO_1S)
4. Ставил wdt_enable(WDTO_15MS) до инкремента счетчика и записи в EEPROM
4. Пробовал дополнительно сбрасывать watchdog перед wdt_enable(WDTO_15MS).
И все тоже! Будто для нормальной записи в EEPROM зачем-то нужна передача управления основной программе!???
Единственное что выходит - это счет 5,10,15,20,25 когда EEPROM считываю не при входе на страницу, а при начальной инициализации программы - read_settings(void). поэтому если извратиться, то можно выводить на страничку:
plen=fill_tcp_data_int(buf,plen,rstcount/5);
Думаю, у Вас тоже прекратит работу, если будете использовать обработчик событий (нажатие кнопки "Reset manager"). И надо с этим разобраться!
Убирал оптимизацию - код получается 41кБайт, пробовал ставить 1 и 2 - код впритык, но результатов нет.
Кстати, обещанный пинг устройства, при включенном Host watchdog и Log-server: