реклама на сайте
подробности

 
 
> организация шагов в программе, организация шагов в программе tiny2313
RicLab
сообщение May 24 2010, 04:12
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 24-11-08
Пользователь №: 41 901



Добрый день.
Решил спросить совета у знающих.
Устройство должно управлять нагрузкой(светодиод) регулируя мощность на нём в зависимости от состояния двери. Т.е. при открытиии двери в течении 1 сек плавно повысить мощность до max, при закрытии с задержкой 10 сек в течении 3 сек плавно понизить мощность до min.
В программе ввел переменную step по которой отслеживается какой сейчас шаг. В зависимости от шага меняется коэффициент счетчика изменения мощности. Также отслеживается состояния двери между шагами для возврата на предыдущий шаг при изменении её состояния.
При моделировании в Proteus выполняется только первый шаг, дальше программа не переходит.
Во вложении проект в CVAVR.
Возможно кто то увидет ошибку или предложит другой способ организации шагов.
Сильно не ругать, я только учусь.

smile3046.gif
Прикрепленные файлы
Прикрепленный файл  2313.rar ( 59.27 килобайт ) Кол-во скачиваний: 26
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
RicLab
сообщение Jun 2 2010, 09:25
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 24-11-08
Пользователь №: 41 901



Автоматный подход это действительно хорошо.
Программа реализованная на данном подходе заработала сразу.
Первый вариант программы кстати тоже заработал. Ошибка была в схеме, вход датчика состояния двери был без подтягивающего резистора.
Ловил на входе всё что можно и нельзя когда датчик разомкнут, от того и не работало ничего.

Спасибо всем за знания! smile.gif

Позже планирую выложить отшлифованный проект перенесённый на tiny13.
Go to the top of the page
 
+Quote Post
mempfis_
сообщение Jun 2 2010, 09:42
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409



Цитата(RicLab @ Jun 2 2010, 12:25) *
вход датчика состояния двери был без подтягивающего резистора.


В tiny/atmega есть внутренние подтягивающие резисторы.
Включаются:
Код
DDRx = (1<<5); //пин 5 порта - вход
PORTx = (1<<5); //для пина 5 сконфигурированного на вход включить pull-up


Обычно всегда для входов включаю pull-up (даже если есть внешний). Просто так на всякий случай
Go to the top of the page
 
+Quote Post
mempfis_
сообщение Jun 2 2010, 11:06
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409



Упс обшибся!!!!
Надо так:

Код
DDRx &= ~(1<<5); //пин 5 порта - вход
PORTx |= (1<<5); //для пина 5 сконфигурированного на вход включить pull-up
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 03:59
Рейтинг@Mail.ru


Страница сгенерированна за 0.01357 секунд с 7
ELECTRONIX ©2004-2016