roboforum.ru

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

delay в vmlab

delay в vmlab

Myp » 29 фев 2008, 14:42

господа
а почему у меня в wmlab
вот аткой код не работает правильно?

Код: Выделить всёРазвернуть
while (1)
      {
      // Place your code here
      putchar('f');
      while (!(UCSRA & (1<<UDRE)))
      {
      PORTB.1 = 1;
      }
      PORTB.1 = 0;
      }
      delay_ms(45);
}


тоесть он работает но делэй не отрабатывается, вмлаб просто перескакивает на след строку :(
как заставить вмлаб сидеть в дэлэе?
мне нуно на картинке осциллографа поглядеть на это...

Re: delay в vmlab

avr123.nm.ru » 29 фев 2008, 16:57

т.е. нет зеленого квадратика слева ? можно асм кманду NOP добавить.

А посмотреть импульсы с паузой (если она была) можно остановив симуляцию и отмотав назад изображение в SCOPE.

Re: delay в vmlab

Myp » 29 фев 2008, 17:24

есть квадратик
но когда я смотрю зелёную полоску которая подсвечивает код то вижу что она просто проскакивает через дэлэй
в пошаговом режима даже просто переходит через 1 строчку
и на скопе тоже самое дэлэй отсутствует
все сигналы идут впритык друг к другу

Re: delay в vmlab

avr123.nm.ru » 29 фев 2008, 18:12

очевидно НЕОБХОДИМО выложить архив с проектами CVAVR VMLAB

в точном соответствии с учением преподобного - страница 1 курса - как задавать вопросы ! :Yahoo!:

Re: delay в vmlab

Myp » 29 фев 2008, 18:45

вот
программа и проект
программа для симуляции в вмлаб.rar
(30.75 КиБ) Скачиваний: 39







преподобный :ROFL: :ROFL:

Re: delay в vmlab

avr123.nm.ru » 29 фев 2008, 19:34

Myp писал(а):как заставить вмлаб сидеть в дэлэе?


сделать эту строку ДОСТИЖИМОЙ для проги !!!

гдеж ты ее разместил то !

Код: Выделить всёРазвернуть
void main(void)
{


while (1)
{
      // Place your code here
      putchar('f'); 
     
     
      while (!(UCSRA & (1<<UDRE)))
      {
      PORTB.1 = 1;
      }
     
      PORTB.1 = 0;
     
}   
     
      delay_ms(45);
}


или упрощенно:

Код: Выделить всёРазвернуть
void main(void)
{

while (1) {   }   
             
      delay_ms(45);
}


прога и крутится как положено в while (1)


а вот так


Код: Выделить всёРазвернуть
void main(void)
{

while (1) {   


    delay_ms(45);
              }   
             
}


Срока - delay_ms(45); - станет доступна проге.

Добавлено спустя 3 минуты 5 секунд:
Почитай: - http://avr123.nm.ru/05.htm

циклы for(;;) и while() часто используют вот так:

Re: delay в vmlab

Myp » 29 фев 2008, 22:33

ээээ

хрена я тупица... :shock:

Re: delay в vmlab

MegaBIZON » 29 фев 2008, 23:54

хех, Мур, врубил бы просто аццку, да спросил бы Авээра, шо там к чему...

так... просто мысль...


Rambler\'s Top100 Mail.ru counter