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

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Сообщение 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


Или использовать таймеры? И если програмно то как рассчитать время задержек?
Аватара пользователя
Chip_SET
 
Сообщения: 147
Зарегистрирован: 04 окт 2005, 16:34
Откуда: Москва, область...

Сообщение avr123.nm.ru » 09 авг 2006, 13:06

надеюсь вы воспользуетесь ссылками которыя я вам дал.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Сообщение Chip_SET » 09 авг 2006, 13:12

Если я внимательно смотрел Ваши ссылки то там идет речь об использовании интераций. Выше я давал кусок программы сделанный таким образом. Там задержка в 50 миллисекунд. А надо от 10 секунд и выше.
Аватара пользователя
Chip_SET
 
Сообщения: 147
Зарегистрирован: 04 окт 2005, 16:34
Откуда: Москва, область...

Сообщение 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();
   }
Аватара пользователя
Chip_SET
 
Сообщения: 147
Зарегистрирован: 04 окт 2005, 16:34
Откуда: Москва, область...

Сообщение avr123.nm.ru » 09 авг 2006, 15:22

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


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

по тем ссылкам есть как сделать задержки и програмно и по таймеру.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Сообщение Chip_SET » 09 авг 2006, 16:10

Не то написал. Я про инкремент.
Аватара пользователя
Chip_SET
 
Сообщения: 147
Зарегистрирован: 04 окт 2005, 16:34
Откуда: Москва, область...

Сообщение Chip_SET » 09 авг 2006, 17:05

У меня крыша уже едет. Ничего не нашел. Вместо того чтоб отсылать куда то нельзя прямо написать?
Аватара пользователя
Chip_SET
 
Сообщения: 147
Зарегистрирован: 04 окт 2005, 16:34
Откуда: Москва, область...

Сообщение 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
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Сообщение avr123.nm.ru » 09 авг 2006, 18:27

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

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

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

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

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

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


Это бы вы точно знали если бы прочитали хотябы обе части стр 5 моего курса -  ДЛЯ НАЧИНАЮЩИХ ОН.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Сообщение 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();
   }


Там же узнайте как оформлять комментарии и что "вонинг" это не ошибка а предупреждение !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Сообщение Chip_SET » 11 авг 2006, 12:19

Через какую программу залить прошивку в данный МК? Пони прог не знает о таких МК  :?
Аватара пользователя
Chip_SET
 
Сообщения: 147
Зарегистрирован: 04 окт 2005, 16:34
Откуда: Москва, область...

Сообщение avr123.nm.ru » 11 авг 2006, 13:02

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


avr123.nm.ru/07.htm
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Сообщение Chip_SET » 11 авг 2006, 17:00

Подскажите тогда по поводу написания программы опроса нажатия кнопки.
Если кнопка нажата (РВ5 = 0)
 то проверяем ПИН0, ПИН1, ПИН2 если они = 0 то делаем ТО
  если не равны 0
 то проверяем ПИН0, ПИН1, ПИН2 если они = 1 то делаем ЭТО
Аватара пользователя
Chip_SET
 
Сообщения: 147
Зарегистрирован: 04 окт 2005, 16:34
Откуда: Москва, область...

Сообщение avr123.nm.ru » 11 авг 2006, 17:43

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

avr123.nm.ru/05.htm  
avr123.nm.ru/05a.htm
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Сообщение Сергей » 12 авг 2006, 00:33

помойму самый простой вариант, сам когдато пользовался, вроде так:
Код: Выделить всё
if(PINB.0 == 1) {
 if(bit_is_clear(PINB, 0x07)) on();
  else off();
Сергей
 
Сообщения: 3744
Зарегистрирован: 29 дек 2004, 23:15
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей

Пред.След.

Вернуться в Микроконтроллеры

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

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