roboforum.ru

Технический форум по робототехнике.
Текущее время: 19 май 2025, 20:29

Часовой пояс: UTC + 4 часа




Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: delay_us переменная
СообщениеДобавлено: 17 июн 2015, 17:52 
Не в сети

Зарегистрирован: 21 мар 2014, 17:39
Сообщения: 13
Откуда: Київ
Подскажите плз. CV_AVR код
Код:
unsigned char cw_dir[6]= {

0b00010110,
0b00100110,
0b00100101,
0b00101001,
0b00011001,
0b00011010,
};

unsigned char step_index;
unsigned char step_time = 10;
.....

.....
while (1)
      {
      step_time = 10;     
      for (step_index = 0; step_index <6;step_index++)
        {               
      PORTD = 0b00000000; //Закрыли все ключи
      delay_us(1); // Death time (1 us) (не может быть переменной, только число)
      PORTD = cw_dir[step_index]; //Открыли НУЖНЫЕ ключи

ДАЛЕЕ ВОПРОС:
Вот это работает       delay_ms(step_time); //Время включения катушки (10 ms)   

А хочу заменить на это
      //while (step_time > 1)
      //{           
      //delay_us(1000);
      //step_time--;
      //}
НЕ РАБОТАЕТ!!!!
        }               
       
      };


Как еще можно delay_us сделать с переменным аргументом?? Как использовать МИКРОсекунды без таймера??


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: delay_us переменная
СообщениеДобавлено: 17 июн 2015, 18:18 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
ф-ю с константой сделать с переменной легко - просто берёте и переписываете. можно не прикалываться, а запихать вызов в цикл. не нравятся таймер-счётчики, ну можете поизвращаться. каждая команда выполняется определённое количество тактов. зная частоту, вычисляете сколько итераций цикла нужно сделать. а что в него запихать уже ваше дело, хоть один или несколько нопов, хоть пустой цикл.
вообще-то есть максимумы для задержек, если так интересно, смотрите исходники. например где и почему там переполнение. есть ли реализация проверки максимума и вызовова dalayms. не интересно вникать, так и не страдайте фигнёй. 10мс это или один вызов delayms(10) или десять delayms(1). нужен меньший шаг, так добавьте ещё вызов других задержек.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 2 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO