|
{
int quit=0;
LedOff();
TimerOpen();
//Инсталлирование пользовательского таймера
InstallUserTimer(MyTimerFun);
while(!quit)
{
if (IsCom1())
{
data = ReadCom1();
if (data ==’q’) quit = 1;
}
}
TimerClose();
LedOn();
} //Конец main ()
Использование сторожевого таймера
Сторожевой таймер контроллера I-7188 активизирован и процедура обработки прерывания системного таймера его обнуляет. Сторожевой таймер по умолчанию установлен на 1.6 секунд.
Когда пользовательская программа вызывает функцию EnableWDT, ПОП системного таймера перестает обнулять сторожевой таймер и пользовательская программа должна вызывать функцию RefreashWDT, до того пока таймер не досчитал до 1.6 секунд. В противном случае операционная система контроллера будет автоматически перезагружаться.
После вызова функции DisableWDT, процедура обработки прерывания системного таймера опять начинает обнулять сторожевой таймер и поэтому, пользовательская программа уже может не вызывать функцию RefreashWDT.
Функция IsResetByWatchDogTimer используется для проверки, модуль 7188 перезагружен или нет с помощью сторожевого таймера. Эта функция должна применяться в начале программы.
Пример.
main()
{
if (IsResetByWatchDogTimer())
{
//Здесь код для контроля системы
}
int quit =0;
EnableWDT();
while (!quit)
{
RefreachWDT();
User_function();
}
DisableWDT();
}
Дата добавления: 2015-08-03; просмотров: 39 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Unsigned long count); | | | Unsigned int offset, char data); |