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

 
 
> Проблема с Watchdog, STM32F10X
Jenya7
сообщение Nov 25 2013, 06:50
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Инициализирую собаку
Код
void IWD_Init(void)
{
    IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);

    IWDG_SetPrescaler(IWDG_Prescaler_16);

    IWDG_SetReload(0xFFF);

    IWDG_ReloadCounter();

     IWDG_Enable();
}


Чтоб проверить ставлю заглушку в мэйне
Код
int main(void)
{
  
  GlobalInit();
  UsartSendString("Start\r");
  while(1)
  {
    
    switch(mot_state)
   {
      //some code
    }

     while(1)
    {
          //zaglushka
     }

    if(rx_command_recieved)
    {
        //some code
    }

     IWDG_SetReload(0xFFF);
    IWDG_ReloadCounter();
  }


После 4-5 рисетов камень умирает и оживить его можно только передернув питание. cranky.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ViKo
сообщение Nov 25 2013, 08:24
Сообщение #2


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Я попробовал на STM32F207.
Код
/* Инициализация */
  IWDG->KR = 0x5555;        // Key
  // IWDG->PR = 5;            // Prescaler /128 (4 ms)
  IWDG->PR = 3;            // Prescaler /32  (1 ms)
  IWDG->RLR = 0xFFF;        // 4096 (> 16 s) -> > 4 s
  IWDG->KR = 0xCCCC;        // Start

/* Перезапуск */
  IWDG->KR =  0xAAAA;        // Reload Independent Whatchdog Timer

Все просто, все работает...
Go to the top of the page
 
+Quote Post
adnega
сообщение Nov 25 2013, 08:34
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(ViKo @ Nov 25 2013, 12:24) *
Все просто, все работает...

Когда-то давно я уже писал, что в "готовке" есть некоторые тонкие моменты...
Например, при сбросе на ножке RESET будет импульс отрицательной полярности, который собственно камень-то и сбрасывает.
Если по каким-либо причинам этому импульсу не бывать (например, RESET "хорошо притянут" к VCC), то сброса не будет и программа
продолжит исполняться дальше (тот же while(1)).
Дополню: "хорошо притянут" - это и емкий конденсотор на RESET.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Jenya7   Проблема с Watchdog   Nov 25 2013, 06:50
- - vlad_new   Для перезапуска таймера IWDG_SetReload(0xFFF) не н...   Nov 25 2013, 07:39
|- - Jenya7   Цитата(vlad_new @ Nov 25 2013, 12:39) Для...   Nov 25 2013, 07:42
|- - adnega   Цитата(Jenya7 @ Nov 25 2013, 11:42) спаси...   Nov 25 2013, 07:56
- - ViKo   У меня NRST подтянут к питанию через 4.7 кОм, а си...   Nov 25 2013, 08:50
|- - Jenya7   Цитата(ViKo @ Nov 25 2013, 13:50) У меня ...   Nov 25 2013, 08:56
|- - ViKo   Цитата(Jenya7 @ Nov 25 2013, 11:56) вот с...   Nov 25 2013, 09:07
|- - adnega   Цитата(ViKo @ Nov 25 2013, 13:07) Может, ...   Nov 25 2013, 09:30
- - vlad_new   Позвольте не согласиться с этой схемой. По даташыт...   Nov 25 2013, 09:56
- - Jenya7   я пробовал и с подключенным отладчиком и без него....   Nov 25 2013, 10:48
- - Golikov A.   в вайле бы диодом мигали или на порт что-то слали ...   Nov 25 2013, 19:32
|- - adnega   Цитата(Golikov A. @ Nov 25 2013, 23:32) в...   Nov 25 2013, 19:51
- - vlad_new   По скольку у других проблемм с рестартом от собаки...   Nov 26 2013, 02:40


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 14:00
Рейтинг@Mail.ru


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