Espruino:Справочник по API/Класс E/enableWatchdog(): различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
(Новая страница: «{{Espruino/Панель перехода}} {{Перевод от Сubewriter}} {{Myagkij-редактор}} =<ref>[ www.espruino.com - ]</ref>= ==Синтакс...»)
 
Нет описания правки
 
(не показаны 3 промежуточные версии 2 участников)
Строка 3: Строка 3:
{{Myagkij-редактор}}
{{Myagkij-редактор}}


=<ref>[ www.espruino.com - ]</ref>=
=Функция E.enableWatchdog()<ref>[https://www.espruino.com/Reference#t_l_E_enableWatchdog www.espruino.com - E.enableWatchdog]</ref>=


==Синтаксис==
==Синтаксис==


<syntaxhighlight lang="javascript" enclose="div">
<syntaxhighlight lang="javascript">
 
E.enableWatchdog(timeout, isAuto)
</syntaxhighlight>
</syntaxhighlight>


==Параметры==
==Параметры==


* '''timeout''' – таймаут до сброса сторожевого таймера (в секундах)
* '''isAuto''' – если задать здесь ''undefined'' или ''true'', сторожевой таймер будет автоматически сброшен. Если нет, вам нужно будет самостоятельно вызвать [https://www.espruino.com/Reference#l_E_kickWatchdog E.kickWatchdog()]
==Возвращаемое значение==


Нет.


==Возвращаемое значение==
==Описание==
 
Сбрасывает сторожевой таймер. Если в течение заданного таймаута сторожевой таймер сброшен не будет, это сбросит саму [[Espruino]].
 
Если задать в ''isAuto'' значение ''false'', вам нужно будет самостоятельно вызвать [https://www.espruino.com/Reference#l_E_kickWatchdog E.kickWatchdog()], иначе будет выполнен сброс чипа.
 
=== Пример 1: ===
 
<syntaxhighlight lang="javascript">
E.enableWatchdog(0.5); // автоматический режим                                                       
while(1); // Espruino перезагрузится, потому что не находилась
          // в состоянии простоя в течение 0.5 секунд
</syntaxhighlight>


===Пример 2:===


<syntaxhighlight lang="javascript">
E.enableWatchdog(1, false);                                                       
setInterval(function() {
  if (everything_ok)
    E.kickWatchdog();
}, 500);
// Espruino будет сброшена, если в «everything_ok» будет «false»
// или если не будет вызвана функция setInterval()
</syntaxhighlight>


==Описание==
{{Примечание1|Эта функция реализована только в [[STM32]]- и [[nRF5x]]-устройствах (все это – официальные платы [[Espruino]]).}}


{{Примечание1|На [[STM32]]-устройствах ([[Pico]], [[WiFi]], [[Original]]), использующих setDeepSleep(1), вам нужно будет явно разбудить [[Espruino]] при помощи setInterval(), где интервал должен быть меньше, чем таймаут сторожевого таймера. В противном случае сторожевой таймер не сбросится, и плата будет перезагружена. Сделать это можно при помощи '''setInterval("", time_in_milliseconds)'''.}}


{{Примечание1|Эта функция не доступна для устройств с маленькой [[flash-память]]ю.}}


=См.также=
=См.также=


{{ads}}
 


=Внешние ссылки=
=Внешние ссылки=
Строка 31: Строка 60:
<references />
<references />


{{Навигационная таблица/Espruino}}
{{Навигационная таблица/Портал/Espruino}}
{{Навигационная таблица/Телепорт}}

Текущая версия от 17:36, 10 июня 2023

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Функция E.enableWatchdog()[1]

Синтаксис

E.enableWatchdog(timeout, isAuto)

Параметры

  • timeout – таймаут до сброса сторожевого таймера (в секундах)
  • isAuto – если задать здесь undefined или true, сторожевой таймер будет автоматически сброшен. Если нет, вам нужно будет самостоятельно вызвать E.kickWatchdog()

Возвращаемое значение

Нет.

Описание

Сбрасывает сторожевой таймер. Если в течение заданного таймаута сторожевой таймер сброшен не будет, это сбросит саму Espruino.

Если задать в isAuto значение false, вам нужно будет самостоятельно вызвать E.kickWatchdog(), иначе будет выполнен сброс чипа.

Пример 1:

E.enableWatchdog(0.5); // автоматический режим                                                        
while(1); // Espruino перезагрузится, потому что не находилась
          // в состоянии простоя в течение 0.5 секунд

Пример 2:

E.enableWatchdog(1, false);                                                         
setInterval(function() {
  if (everything_ok)
    E.kickWatchdog();
}, 500);
// Espruino будет сброшена, если в «everything_ok» будет «false»
// или если не будет вызвана функция setInterval()
Примечание

Эта функция реализована только в STM32- и nRF5x-устройствах (все это – официальные платы Espruino).

Примечание

На STM32-устройствах (Pico, WiFi, Original), использующих setDeepSleep(1), вам нужно будет явно разбудить Espruino при помощи setInterval(), где интервал должен быть меньше, чем таймаут сторожевого таймера. В противном случае сторожевой таймер не сбросится, и плата будет перезагружена. Сделать это можно при помощи setInterval("", time_in_milliseconds).

Примечание

Эта функция не доступна для устройств с маленькой flash-памятью.

См.также

Внешние ссылки