реклама на сайте
подробности

 
 
> MSP430F449: сброс при помощи WTD не одно и тоже что сброс при включении питания ?!
pt200
сообщение Jun 3 2009, 12:26
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 19-05-09
Пользователь №: 49 263



Пытаюсь сбросить проц кодом ниже( два разных):
Код
  ENTER_CRITICAL_SECTION();
  WDTCTL = 0x5A03; // WDT: FAST RESET
  for(;;){}
//................................................................................
......
  ENTER_CRITICAL_SECTION();
  WDTCTL = 0x1203; // WDT BAD PSW - RESET:
  for(;;){}

Сброс происходит( вкрайнем случае на main() прыгает), регистры периферии не обнуляются( проверил в отладке)

Поведение проги абсолютно разное при POR и PUC!

В чем может быть проблема?
Или как еще программно перезапустить проц "по полной"( вся переферия в нулях должна стать)?

Сообщение отредактировал pt200 - Jun 3 2009, 12:49
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
pt200
сообщение Jun 4 2009, 07:17
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 19-05-09
Пользователь №: 49 263



Проблемка тут возникла. после такого сброса я могу получить прерывание до его включения blink.gif
Может книбудь всетаки такую задачку как то решал?

P.S. Этот форум какойто караул. Не могу отредактировать своеже сообщение( на другом компе, на рабочем еще не пробовал еще) blink.gif
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jun 4 2009, 07:24
Сообщение #3


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(pt200 @ Jun 4 2009, 11:17) *
P.S. Этот форум какойто караул. Не могу отредактировать своеже сообщение( на другом компе, на рабочем еще не пробовал еще) blink.gif

Можете, но недолго. Пару часов, по-моему.

Может, у вас вочдог вместо ресета вектор NMI вызывает?
Кстати, интересная тема. У меня однажды тоже возникло ощущение, что внутренний WDT сбрасывает как-то не так, как внешний


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
pt200
сообщение Jun 4 2009, 09:18
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 19-05-09
Пользователь №: 49 263



Цитата(MrYuran @ Jun 4 2009, 11:24) *
Можете, но недолго. Пару часов, по-моему.

Может, у вас вочдог вместо ресета вектор NMI вызывает?
Кстати, интересная тема. У меня однажды тоже возникло ощущение, что внутренний WDT сбрасывает как-то не так, как внешний

Насчет таймаута не знал

Попробовал по даташиту запрограммироввать WTD:
Код
                 ENTER_CRITICAL_SECTION();
                 WDTCTL = WDTPW | WDTHOLD;
                 WDTCTL = 0x1234; //WDT BAD PSW -> RESET
                 for(;;){}
//............................................................................
                 ENTER_CRITICAL_SECTION();
                 WDTCTL = WDTPW | WDTHOLD;
                 WDTCTL = WDTPW | WDTIS1 | WDTIS0; //WDT MAX FAST RESET
                 for(;;){}

тоже самое( в маин попадаю, а вот регисты у переферии все заполнены уже) help.gif wacko.gif smile3046.gif

P.S. Схему дорабатывать нельзя.
P.S.2 Поковырялся я тут в даташитах( как всегда после долгих мучений smile.gif ) и пришел к выводу что сбросить переферию программно нельзя. Для чего они такой корявый WDT сделали???

Сообщение отредактировал pt200 - Jun 4 2009, 09:39
Go to the top of the page
 
+Quote Post
rezident
сообщение Jun 4 2009, 10:55
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(pt200 @ Jun 4 2009, 15:18) *
и пришел к выводу что сбросить переферию программно нельзя.
Довольно странное заключение после чтения документации-то. В low_level_init инициализируйте все регистры периферии явными значениями и будет вам счастье, невзирая на PUC и POR.
Go to the top of the page
 
+Quote Post
pt200
сообщение Jun 4 2009, 11:17
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 19-05-09
Пользователь №: 49 263



Цитата(rezident @ Jun 4 2009, 14:55) *
Довольно странное заключение после чтения документации-то. В low_level_init инициализируйте все регистры периферии явными значениями и будет вам счастье, невзирая на PUC и POR.

это называется конфигурирование, а не сброс.
Я о "высоком" говорю smile.gif, а Вы про всякие мелочи( кстати обнулять переферию надо будет до сброса, а не в low_level_init ).

Вроде как я и хотел нормальный сброс чтобы за переферией не следить, кого иницализировал, кого нет, а тут такое.

Я если честно вообще плохо понимаю тогда алгоритм использования WDT( программа начинает сначала, а периферия долбит по старому пока программа до нее не доберется)??? wacko.gif

P.S. Кстати раз регистры не сбрасываются, возможно ли возникновение прерывания до low_level_init ( тогда вообще караул)?

Сообщение отредактировал pt200 - Jun 4 2009, 11:19
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- pt200   MSP430F449: сброс при помощи WTD не одно и тоже что сброс при включении питания ?!   Jun 3 2009, 12:26
|- - Сергей Борщ   Цитата(pt200 @ Jun 4 2009, 12:18) тоже са...   Jun 4 2009, 09:36
||- - pt200   Цитата(Сергей Борщ @ Jun 4 2009, 13:36) А...   Jun 4 2009, 09:56
|- - rezident   Цитата(pt200 @ Jun 4 2009, 17:17) Я если ...   Jun 4 2009, 11:50
- - MrYuran   Вообще-то, внешний сброс тоже никак на периферии н...   Jun 4 2009, 14:00
|- - rezident   Цитата(MrYuran @ Jun 4 2009, 20:00) Вообщ...   Jun 4 2009, 14:18
|- - MrYuran   Цитата(rezident @ Jun 4 2009, 18:18) Вооб...   Jun 5 2009, 04:48
|- - rezident   Цитата(MrYuran @ Jun 5 2009, 10:48) Запис...   Jun 5 2009, 12:17
|- - MrYuran   Цитата(rezident @ Jun 5 2009, 16:17) Чит...   Jun 5 2009, 12:33
|- - Student Pupkin   Цитата(MrYuran @ Jun 5 2009, 16:33) Ну ды...   Jun 24 2009, 17:53
- - pt200   Как говорится самое время обратиться к документаци...   Jun 5 2009, 06:49


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th June 2025 - 16:05
Рейтинг@Mail.ru


Страница сгенерированна за 0.02153 секунд с 7
ELECTRONIX ©2004-2016