Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как поймать WDTIFG
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
1921
Уважаемые!
Подскажите, пожалуйста. При работе WDT в режиме именно WDT с LPM3 процессор (5438) тикает нормально. Однако при начале выполнения программы SFRIFG всегда 0082, т.е. флаг WDTIFG не встаёт. Он вообще должен стоять, если мы выскочили на ресет с помощью WDT? Или нет?
Хотелось бы знать, как я там оказался: сброс по питанию, reset или wdt... Как я смотрел SFRIFG: сразу в начале main считывал в переменную и потом выбрасывал через uart.
Ещё встретил такую фразу:
"Адреса векторов прерывания различаются для интервального и сторожевого режимов таймера".
Я так полагаю, что WDT_VECTOR - это как раз для интервального режима, т.к. туда он не попадает. Тогда какой вектор для сторожевого? Что-то в хедере ничего похожего не нашёл. Может, он сразу на reset прыгает?
В общем, задача стоит определить источник сброса, точнее, был ли выход из LPM инициирован переполнением WDT. Направьте на путь истинный, пожалуйста.
rezident
Чтобы разобраться прочитайте еще раз User's Guide в разделе System Resets Interrupts and Operating Modes.
У MSP430 есть два сигнала сброса POR (Power-On Reset) и PUC (Power-Up Clear). POR генерирует в.т.ч и PUC. WDT в режиме Watch-dog использует RESET_VECTOR, но не совсем как источник прерывания, а посредством генерации PUC. В режиме интервального таймера WDT использует WDT_VECTOR. Опрашивать регистры WDT после сброса бесполезно, т.к. они устанавливаются в конкретное состояние лог.0 сигналом PUC. Определить причину сброса можно только косвенным образом. Например, используя регистры GPIO - PxOUT или PxIES, которые после сброса (PUC) свое состояние не изменяют. Но для этого их после опроса перед использованием нужно обязательно инициализировать явными значениями.
ih_
Цитата(1921 @ Jan 14 2011, 20:20) *
Хотелось бы знать, как я там оказался: сброс по питанию, reset или wdt...
Вход reset можно настроить на генерацию NMI и в нем принимать решение.
Немного погодя... Запустил IAR на MSP430F1101A, MSP430F1611, и проверил IFG1 регистр. Так он от PUC не меняется (хотя по slau049f, должен). Т.е. флаг WDTIFG в этом регистре говорит о событии от WDT. Посмотрел slaz019a, slaz018c ничего не увидел. И ели это баг, то правильный sm.gif Видимо разработчики, все сделали верно, а авторы документации их не поняли. Написал в техпотдержку, отпишусь по результатам.
rezident
Ждите ответа из техподдержки в виде RTFM biggrin.gif Потому, что в User's Manual все это описано и правильно описано.
ih_
Цитата(rezident @ Jan 16 2011, 02:36) *
Ждите ответа из техподдержки в виде RTFM biggrin.gif Потому, что в User's Manual все это описано и правильно описано.
Да, прошу прощения, внизу Table10-1, есть примечание, что "WDTIFG is reset with POR"
jorikdima
Ведь есть такой регистр как SYSRSTIV в 5 серии.
1921
Цитата(jorikdima @ Jan 17 2011, 10:19) *
Ведь есть такой регистр как SYSRSTIV в 5 серии.

ВАХ! Точно! Его-то я и искал! Старенький становлюсь, рассеянный... Попробовал - работает как часы! Спасибо!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.