roboforum.ru

Технический форум по робототехнике.

WDT Как понять сторожевого пса?

WDT Как понять сторожевого пса?

wolly » 17 ноя 2007, 12:50

После запуска VMLAB во время опроса входов
Код: Выделить всёРазвернуть
if(!PINC.1 && PINC.2) {delay_ms(5); PORTB=step_mx[i]; i++;  if(i>7) i=0;}
Watchdog прерывает процедуру:
Код: Выделить всёРазвернуть
[PC = $02D8, Time =   14.25 ms, {WDT}]: Watchdog will produce a reset here. Use WDR instruction before this point

Точно также он "лает" после изменения состояния входов. Что за инструкцию он требует? Что ему может не нравится? :(
Последний раз редактировалось Digit 17 ноя 2007, 18:39, всего редактировалось 2 раз(а).
Причина: Поправил "WDG" на "WDT", т.к. это WatchDogTimer ;)

Re: WDT Как понять сторожевого пса?

avr123.nm.ru » 17 ноя 2007, 13:00

VMLAB слишком умный и дает советы. Не обращай внимания если не включал WDT и не используешь его. Жми светофор.

Re: WDT Как понять сторожевого пса?

wolly » 17 ноя 2007, 23:00

Нет, не зря видимо собака лает..
У меня по взведенному биту прога должна заходить в цикл while(bit) внутри цикла while(1). Заходить, то она заходит, но пробежав его 1 раз улетает неизвестно куда. В while(bit) то уж точно не заходит, это видно по строкам в VMLAB.
В очень урезанном виде код выглядит так:
Код: Выделить всёРазвернуть

void step_x(void)
        {
         i++;
          if(i>7)        i=0;             //esli matrica step_ proidena vozvrat v na4alo matricy   
        PORTB=step_mx[i];       //zapis shaga v port PORTC elementa matricy step_mx
        }

void main(void)
{
init();

while (1)
      {
       if(st_x) step_x();                   //vyzov funkcii shagov po "X"
       if (!PINC.0)   on=1;
while (on)   
                 {
                    if(st_x) step_x();                     //vyzov funkcii shagov po "X"
                   if (!PINC.5)  on=0;
                  }
        }
}

Никак не понять, почему он на задерживается в цикле и почему ему заново в него не войти, ведь условие входа выставлено??????
avr123.nm.ru писал(а):...если не включал WDT и не используешь его.

В каких случаях и как используют инструкцию WDT???

Re: WDT Как понять сторожевого пса?

avr123.nm.ru » 17 ноя 2007, 23:08

WDT - используют для сброса сторожевого таймера, но по умолчанию он не активирован.

Re: WDT Как понять сторожевого пса?

wolly » 19 ноя 2007, 14:01

А если WDT -собака лает во время опроса PIN-ов, и выставляет мне на этой строчке "!"
Это значит, что программа где то зависает на опросах?????

Re: WDT Как понять сторожевого пса?

Master » 19 ноя 2007, 15:06

Все что VMlab пишет про WDT послылаешь в далекое эротическое путешествие.


Rambler\'s Top100 Mail.ru counter