roboforum.ru

Технический форум по робототехнике.
Текущее время: 02 дек 2024, 21:49

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




Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 23 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Ресетится (RESET) бессовестно - почему?
СообщениеДобавлено: 18 апр 2011, 12:05 
Не в сети

Зарегистрирован: 27 авг 2008, 10:45
Сообщения: 1981
Откуда: Харьков
прог. языки: С/С++
Только (0 0) - это не просто третье состояние, а нормальный себе вход, просто без подтяжки. На висящей в воздухе ноге будет черт знает что, но если на нее подать логический уровень 0 или 1 - он появится в соответствующем бите PIND. И это как раз вариант, когда питание на вход подавать можно :) Просто никто не говорит "подал питание на вход", говорят "подал логический уровень", 0 - это как раз GND. а 1 - VCC.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ресетится (RESET) бессовестно - почему?
СообщениеДобавлено: 18 апр 2011, 12:39 
Не в сети

Зарегистрирован: 06 июн 2009, 20:42
Сообщения: 231
Откуда: Москва
ага, значит это я правильно интуитивно сделал - Значит если у меня, например, датчик воды, который должен показать 1, если вдруг сработает (т.е.: 1 = вода), то просто одна ножка должна быть настроена как 0 0, а через датчик к ней может прийти VCC, если его (датчик) замкнёт водой (т.е. если датчик сработает).

Так?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ресетится (RESET) бессовестно - почему?
СообщениеДобавлено: 18 апр 2011, 18:55 
Не в сети

Зарегистрирован: 27 авг 2008, 10:45
Сообщения: 1981
Откуда: Харьков
прог. языки: С/С++
Нет, так нехорошо. Если замкнет - хорошо, придет 1 и будет щастя. А если не замкнет? Там будет мусор на входе, неизвестно что - может быть 0, может 1, а может вообще шум 0-1-0-1... от наводок. Входы без подтяжки можно использовать только с логическими выходами - т.е. с теми, которые умеют выдавать и 0, и 1 честно, подключая ногу к + или к - питания. Ну например это может быть выход компаратора, или какого-нибудь логического элемента. А если у тебя кнопка или иной контакт - лучше подключать его к минусу (GND), а на входе ставить DDRD.x = 0, PORTD.x = 1. Тогда если контакт будет разомкнут - на входе будет Vcc через подтяжечный резистор который внутри МК. А если замкнут - на вход придет 0.

А еще у датчика, замыкаемого водой может не хватить сопротивления чтобы "перетянуть" подтяжку - тогда нужен отдельный компаратор.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ресетится (RESET) бессовестно - почему?
СообщениеДобавлено: 18 апр 2011, 19:29 
Не в сети

Зарегистрирован: 06 июн 2009, 20:42
Сообщения: 231
Откуда: Москва
Цитата:
на входе будет Vcc
Т.е. на ножке будет 1?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ресетится (RESET) бессовестно - почему?
СообщениеДобавлено: 19 апр 2011, 10:14 
Не в сети

Зарегистрирован: 27 авг 2008, 10:45
Сообщения: 1981
Откуда: Харьков
прог. языки: С/С++
Да. Она будет "инверсной" - если разомкнуто, то 1, если замкнуто, то 0.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ресетится (RESET) бессовестно - почему?
СообщениеДобавлено: 23 апр 2011, 21:57 
Не в сети

Зарегистрирован: 06 июн 2009, 20:42
Сообщения: 231
Откуда: Москва
Дописал программу, отладил всё, кроме собственно полива растений раз в сутки. Проблема где-то в приведённом ниже куске кода (в Management всё в порядке, т.к. идиентичен для всех модулей, два из которых работают нормально). Помогите, пожалуйста выявить проблему.

Коротко и в общем о том, что это:
два выключателя: основной и принуждение.
Если основной включен, то полив должен произойти сразу, а в следующий раз через сутки.
Если включен и основной и принуждение, то поливать, при этом счёт времени не останавливается, таким образом, например, можно выключить принуждение на 5-ой (из 10-ти) секунде основного полива, и полив будет продолжаться ещё 5 положенных секунд.
Если основной был выключен кнопкой (а не тревогой из-за протечки), то при включении основного - время должно сброситься и должен начаться полив, соответственно...
(это в общем)

Код:
...
код_вырезан
...


Последний раз редактировалось GrayHunter 24 апр 2011, 20:41, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ресетится (RESET) бессовестно - почему?
СообщениеДобавлено: 24 апр 2011, 07:44 
Не в сети
Аватара пользователя

Зарегистрирован: 01 июл 2009, 08:59
Сообщения: 2254
Откуда: Екатеринбург
прог. языки: асемблер AVR
Для ускорения процесса помощи не хватает в описании вот чего:

1. Как должен работать этот код - это есть (что хорошо!)
2. Как он работает сейчас


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ресетится (RESET) бессовестно - почему?
СообщениеДобавлено: 24 апр 2011, 14:44 
Не в сети

Зарегистрирован: 06 июн 2009, 20:42
Сообщения: 231
Откуда: Москва
Проблема оказалась в проводе, который вроде припаян, а реально изолировался канифолью :)

На этом с обсуждением программы можно закончить. Большое Всем СПАСИБО :good:


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

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


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

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


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

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