Технический форум по робототехнике.
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();