roboforum.ru

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

Модуль управления включением реле

Chip_SET » 09 авг 2006, 10:07

А как лучше сделать ПАУЗЫ? Так:

//---------Функция задержки на 50 миллисекунд---------- =9
void pause (void)  //Нет входных и выходных аргументов =10
{ unsigned int delay=0; //Счетчик для задержки времени =11
while (delay++ < 70);      //Цикл на 7000 итераций =12
return;               //Возврат в основную программу =13
}               //Окончание внутренней функции "pause" =14


Или использовать таймеры? И если програмно то как рассчитать время задержек?

avr123.nm.ru » 09 авг 2006, 13:06

надеюсь вы воспользуетесь ссылками которыя я вам дал.

Chip_SET » 09 авг 2006, 13:12

Если я внимательно смотрел Ваши ссылки то там идет речь об использовании интераций. Выше я давал кусок программы сделанный таким образом. Там задержка в 50 миллисекунд. А надо от 10 секунд и выше.

Chip_SET » 09 авг 2006, 13:32

А по этому не подскажите? Выдает ошибку но работает.

warning: suggest explicit braces to avoid ambiguous 'else'
Код: Выделить всёРазвернуть
{ if(bit_is_clear(PINB,PB5)) /проверяем , PINB5 = 0? */
      if(bit_is_clear(PINB,PB4)) on();
      else off();
   }

avr123.nm.ru » 09 авг 2006, 15:22

Chip_SET писал(а):Если я внимательно смотрел Ваши ссылки то там идет речь об использовании интераций.


вы знаете что такое итерации ?

по тем ссылкам есть как сделать задержки и програмно и по таймеру.

Chip_SET » 09 авг 2006, 16:10

Не то написал. Я про инкремент.

Chip_SET » 09 авг 2006, 17:05

У меня крыша уже едет. Ничего не нашел. Вместо того чтоб отсылать куда то нельзя прямо написать?

avr123.nm.ru » 09 авг 2006, 18:25

Chip_SET писал(а):У меня крыша уже едет.

Ничего не нашел.

Вместо того чтоб отсылать куда то нельзя прямо написать?


Я не знаю как у вас крыша но надеюсь По РУССКИ в умеете читать ????


Открываете страницу  http://avr123.nm.ru/05.htm  и ищите:

"Теперь чтобы сделать паузу вам нужно лишь написать :"

узнаете как делать паузы в CVAVR

затем идете "Дальше  стр.5  часть 2 -> "

читаете внимательно ВСЕ !!!

и находите среди прочего:

"Пример:  выполнить что-то если  на ножке PCn есть "0" "

======

В прицепе несколько исходников WinAVR в которых используются паузы   -  delay

Уверен  слово можно было найти и в примерах и хелпе к АтманАВР. Просто вы не искали !!!
Вложения
WinAVR_delay.rar
(13.75 КиБ) Скачиваний: 68

avr123.nm.ru » 09 авг 2006, 18:27

читайте ниже !

Теперь вы должны знать

- как записать число в регистр, в переменную

- как изменить бит в регистре  

- как взять число из регистра

- как выполнить что-то в зависимости от значения
   бита в регистре или в переменной


Это бы вы точно знали если бы прочитали хотябы обе части стр 5 моего курса -  ДЛЯ НАЧИНАЮЩИХ ОН.

avr123.nm.ru » 09 авг 2006, 18:29

Chip_SET писал(а):
warning: suggest explicit braces to avoid ambiguous 'else'
Код: Выделить всёРазвернуть
{ if(bit_is_clear(PINB,PB5)) /проверяем , PINB5 = 0? */
      if(bit_is_clear(PINB,PB4)) on();
      else off();
   }


Там же узнайте как оформлять комментарии и что "вонинг" это не ошибка а предупреждение !

Chip_SET » 11 авг 2006, 12:19

Через какую программу залить прошивку в данный МК? Пони прог не знает о таких МК  :?

avr123.nm.ru » 11 авг 2006, 13:02

Chip_SET писал(а):Через какую программу залить прошивку в данный МК?


avr123.nm.ru/07.htm

Chip_SET » 11 авг 2006, 17:00

Подскажите тогда по поводу написания программы опроса нажатия кнопки.
Если кнопка нажата (РВ5 = 0)
 то проверяем ПИН0, ПИН1, ПИН2 если они = 0 то делаем ТО
  если не равны 0
 то проверяем ПИН0, ПИН1, ПИН2 если они = 1 то делаем ЭТО

avr123.nm.ru » 11 авг 2006, 17:43

а вы читаете то что вам отвечают ?

avr123.nm.ru/05.htm  
avr123.nm.ru/05a.htm

Сергей » 12 авг 2006, 00:33

помойму самый простой вариант, сам когдато пользовался, вроде так:
Код: Выделить всёРазвернуть
if(PINB.0 == 1) {
 if(bit_is_clear(PINB, 0x07)) on();
  else off();


cron
Rambler\'s Top100 Mail.ru counter