Перейти к содержанию

wdt мешает tmr1


Longer

Рекомендуемые сообщения

Я новичок в программировании пиков, но совсем не новичок в программировании. И я не могу понять как работает watchdog. Сделал код для работы таймера 1. Но через какое-то время таймер 1 перестаёт работать, проверяю в протеусе. Как-то интуитивно решил для интереса выключить wdt, и таймер 1 перестал выключаться. Пока wdt был включен я про него не знал и не обнулял в программе, возможно он постоянно отправлял в hard reset, но по сути как это могло мешать таймеру 1? И почему так долго срабатывал этот wdt? Таймер 1 отключался где-то через пару минут только.

Ссылка на комментарий
Поделиться на другие сайты

27 минут назад, IMXO сказал:

а что по этому поводу говорит юзер мануал, или предлагаете  вам его пересказать?

Я читал про wdt и в общих чертах понял его работу. Но почему он как-то влияет на tmr1 мне не понятно. Тем более написано, что максимальное время переполнения wdt 2.3с, у меня tmr1 переставал работать через несколько минут, соответственно не каждое переполнение мешало программе.

Мой вопрос не состоял в том, чтоб пересказать мануал, мой вопрос состоял в том почему wdt мешает tmr1 и как он это делает. Я не думаю, что этот вопрос лежит прям на поверхности, ни в одном туториале про это сказано не было. Если вам жалко ответить на вопрос, то не обязательно отправлять в гугл и в мануалы - можно просто промолчать.

Ссылка на комментарий
Поделиться на другие сайты

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

4 часа назад, Longer сказал:

мой вопрос состоял в том почему wdt мешает tmr1

Потому что при нормальной работе программы прерываний от WDT  вообще не должно быть. WatchDog Timer - таймер - "Сторожевая собака". Он используется для того, чтобы контролировать, что программа работает, сбоев не было. Для этого в программе в местах, которые периодически должны выполняться, вставляется команда сброса WDT, а период прерываний от WDT настраивается больше максимального периода его сброса. Если поступило прерывание от WDT - это авария. При этом происходит аппаратный сброс и процессор перезапускается.

Ссылка на комментарий
Поделиться на другие сайты

Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. 

Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке.

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

не жалко , могли бы хотя бы озвучить МК и перевести код . 

такая ситуация возможна при наложении нескольких процессов связанных с неправильной инициализацией МК.

при инициализации не настроены регистры  INTCON и OPTION .   осталось включенным прерывание от  таймер TMR0  с внешним тактированием от TOCKI, и случайным делителем для собаки , таймера0 и значением тмр0.  В ходе инициализации RA4 переводился на выход с состоянием лог0, при этом по собаке происходит тактирование таймера0 , с последующим переполнением тмр0 , входа в вечное прерывание, тк в прерывании отсутствует обработчик по тмр0.

Ссылка на комментарий
Поделиться на другие сайты

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Спасибо! Не знал про такие нюансы.
Программирую PIC18F4550.
 

void initTimer()
{
    INTCON = 0b11000000;
    T1CON = 0b00000001;
    TMR1IE = 1;
    TMR1 = 65536 - discrTime;
    timerCounter = 0;
}

void __interrupt() isr(void)
{
    timerCounter++;
    if (TMR1IF)
    {
        if (lamp == 0)
        {
            lamp = 1;
            RD3 = 1;
        }
        else
        {
            lamp = 0;
            RD3 = 0;
        }
        TMR1IF = 0;
        TMR1 = 65536 - discrTime;
        timerCounter = 0;
    }
}

Функцию initTimer вызываю в начале функции main, потом просто бесконечный цикл. Первый таймер включает и выключает лампочку с периодом равным discrTime.

Wdt я отключил и всё нормально стало. Но для меня прям магия была то, что с включенным wdt программа работает около 2 минут и лампочка мигать перестаёт.

Ссылка на комментарий
Поделиться на другие сайты

не за что, к 18пикам описанное выше отношения не имеет ,речь шла о 16пик и даже при появлении постороннего прерывания,  ни как не влияет на ногодрыг в прерывании. 

вопрос в другом, как вы умудрились увидеть мигание  лампы с частотой минимум 15Гц ???? думаю ответ найдется здесь http://kazus.ru/forums/showthread.php?t=13198&page=2#

 

Ссылка на комментарий
Поделиться на другие сайты

10 часов назад, IMXO сказал:

вопрос в другом, как вы умудрились увидеть мигание  лампы с частотой минимум 15Гц ????

Ну я не знаю, в протеусе мигает, осцилограф в том же протеусе всё верно показывает. Параллельно с лампочкой осцилограф подключен к пину.

Изменено пользователем Longer
Ссылка на комментарий
Поделиться на другие сайты

в том и дело что мигает, а не должна.  у вас на выходе ШИМ с 50% заполнением , модель лампы его симулировать не может.

осциллограф на таких временных интервалах при сбое синхронизации вообще может показывать погоду на марсе. 

работу  и отладку надо смотреть в графах

вот так выглядит сбой описанный мной выше,  в прерывании(LED) все работает , вмайне(RELAY) нет

5ca9b43c1528b_.thumb.png.a2438883858de7f247a2b4c911eafcb4.png

Ссылка на комментарий
Поделиться на другие сайты

@IMXO на графах у меня тоже всё норм, правда с digital у меня не получилось, сделал на analogue. В общем я не знаю почему на лампочке видны такие медленные мерцания.graph.png.375173877a3a88aa3a299a36f3ceacbb.png

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...