20.02.2015, 10:19
|
|
Прописка
Регистрация: 13.10.2009
Сообщений: 116
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Сторожевой таймер
Привет всем, возникла небольшая проблемка, есть необходимость задействовать сторожевой таймер WDT в микроконтроллере pic16f628, так вот как его настроить понятно а можно ли как то отследить его значение?
|
|
|
|
20.02.2015, 10:54
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,049
Сказал спасибо: 592
Сказали Спасибо 3,968 раз(а) в 1,826 сообщении(ях)
|
Re: Сторожевой таймер
В лоб нельзя. Пользователю доступно только обнуление WDT. Но можно косвенно оценить примерное значение используя другой штатный таймер или программный подсчет времени от момента обнуления WDT.
|
|
|
Сказали "Спасибо" alvadep
|
|
|
20.02.2015, 11:39
|
|
Прописка
Регистрация: 13.10.2009
Сообщений: 116
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Сторожевой таймер
Спасибо.Да жалко что так нельзя, буду пробовать ориентироваться на TMR0
|
|
|
|
20.02.2015, 20:49
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,504
Сказал спасибо: 401
Сказали Спасибо 2,217 раз(а) в 1,315 сообщении(ях)
|
Re: Сторожевой таймер
WDT работает от отдельного внутреннего RC-генератора, поэтому его частота нестабильна и может отличаться у разных микросхем. Типовое значение периода переполнения - 18 мс, умноженное на предделитель. А разброс значений - от 7 мс до 33 мс. Работает WDT несинхронно таймерам МК.
Да и я пока что не вижу применения тому, чтобы знать, сколько конкретно отсчитал WDT. В программе достаточно расставить clrwdt с такой периодичностью, чтобы гарантированно сбросить WDT в нормальных циклах и чтобы он не сбрасывался на критических циклах, где возможно зависание (ожидание конца АЦП-преобразования, ожидание конца передачи и т.п.)
|
|
|
|
20.02.2015, 21:36
|
|
Супер-модератор
Регистрация: 09.06.2011
Сообщений: 2,633
Сказал спасибо: 73
Сказали Спасибо 1,793 раз(а) в 647 сообщении(ях)
|
Re: Сторожевой таймер
Сообщение от aliste
|
а можно ли как то отследить его значение?
|
А можно узнать, какой в этом смысл?
Чтобы просто узнать, не пора ли его сбрасывать?
|
|
|
|
20.02.2015, 21:44
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,504
Сказал спасибо: 401
Сказали Спасибо 2,217 раз(а) в 1,315 сообщении(ях)
|
Re: Сторожевой таймер
...а узнать об этом проще простого - после сброса отследить биты состояния и узнать причину сброса.
|
|
|
|
20.02.2015, 22:57
|
|
Прописка
Регистрация: 13.10.2009
Сообщений: 116
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Сторожевой таймер
Сообщение от NewWriter
|
В программе достаточно расставить clrwdt с такой периодичностью, чтобы гарантированно сбросить WDT в нормальных циклах
|
То есть можно просто в конце подпрограмм расставить clrwdt если они не слишком длинные и не заморачиваться.
|
|
|
|
20.02.2015, 23:13
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,504
Сказал спасибо: 401
Сказали Спасибо 2,217 раз(а) в 1,315 сообщении(ях)
|
Re: Сторожевой таймер
Разумеется! Даже можно и в более длинных подпрограммах, но несколько раз, с гарантированным интервалом до срабатывания WDT менее чем 7 мс (если без предделителя). Нужно длинее - можно предделитель настроить (но предделитель один и задействован либо на TMR0, либо на WDT). Расставляй команду clrwdt в тех местах, где безвыходное зацикливание кода не произойдет, то есть, в том месте, где подпрограмма гарантированно закончится и перейдет к продолжению основного цикла программы. А в тех кусках циклов, где есть ожидание завершения какого-то действия или что-то подобное, при котором из-за ошибок может нарушиться нормальная работа программы, там clrwdt ставить не нужно, при условии что подобран интервал переполнения WDT так, что не будет ложных сбросов.
Последний раз редактировалось NewWriter; 20.02.2015 в 23:16.
|
|
|
Сказали "Спасибо" NewWriter
|
|
|
21.02.2015, 00:22
|
|
Прописка
Регистрация: 13.10.2009
Сообщений: 116
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Сторожевой таймер
Все понял буду пробовать.
|
|
|
|
21.02.2015, 21:25
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,049
Сказал спасибо: 592
Сказали Спасибо 3,968 раз(а) в 1,826 сообщении(ях)
|
Re: Сторожевой таймер
Сообщение от NewWriter
|
А разброс значений - от 7 мс до 33 мс. Работает WDT несинхронно таймерам МК.
|
А слабо найти некое соответствие между этими таймерами?
Это скорей вопрос для разминки серого вещества, нежели поиск практического применения, хотя...
Можно найти и практическое применение, например, в этой теме.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 19:42.
|
|