| Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
AVR help
05.05.2011, 12:34
|
|
|
Временная регистрация
Регистрация: 31.08.2010
Сообщений: 52
Сказал спасибо: 3
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
|
AVR help
Помогите люди добрые
Есть не большие трудности в создании
проекта на АVR Atn2313 для управления электронасосом
https://kazus.run/forums/attachment....1&d=1304582641
когда уровень воды достигает ниже минимума насос включается ,
при максимальном выключается (это не трудно)
********************************************
min:in buf,PIND
sbrs buf,1
rjmp min
sbi PORTB,0
rcall wait
max:in buf,PIND
sbrc buf,2
rjmp max
cbi PORTB,0
rcall wait
nop
nop
rjmp min
wait:push prt1
push prt2
ldi prt1,1
w1: dec prt1
breq w3
ldi prt2,2
w2: dec prt2
brne w2
rjmp w1
w3: pop prt1
pop prt2
ret
********************************************
помогите построить алгоритму так ,что бы при ручном нажатии
рабочий насос отключался,или же если он в не рабочем состоянии
чтоб включался....
Последний раз редактировалось echoo_mix; 16.07.2011 в 19:07.
|
|
|
|
Сказали "Спасибо" echoo_mix
|
|
|
05.05.2011, 12:51
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 01.04.2009
Адрес: Рязань
Сообщений: 1,138
Сказал спасибо: 21
Сказали Спасибо 635 раз(а) в 344 сообщении(ях)
|
Re: AVR help___________--______
Уважаемый а где поттяжка баз транзисторов к плюсу?
|
|
|
|
Сказали "Спасибо" _guardianangel
|
|
|
05.05.2011, 13:13
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 01.04.2009
Адрес: Рязань
Сообщений: 1,138
Сказал спасибо: 21
Сказали Спасибо 635 раз(а) в 344 сообщении(ях)
|
Re: AVR help
|
Код:
|
manual: in buf, PIND ;читаем порт D в буфер
sbrc buf, 0 ;проверяем нажата ли кнопка ручного режима
rjmp manual ;если кнопка не нажата. вобщем тупое зацикливание, программа повиснет. затычку взял по аналогии с Вашей
rcall delay ;выжидаем дребезг
in buf, PIND ;читаем порт D в буфер
sbrc buf, 0 ;проверяем нажата ли кнопка ручного режима
rjmp manual ;
in buf, PORTB ;читаем что на порту B
ldi buf1, 0b00000001 ;маска, регистор сам задекларируй с номером больше 16
eor buf, buf1 ;инвертируем состояние ключа
out PORTB, buf ;выводим в порт |
|
|
|
|
Сказали "Спасибо" _guardianangel
|
|
|
05.05.2011, 13:25
|
|
|
Прописка
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
|
Re: AVR help
Ну, если не боитесь дребезга контактов, то как-то так
|
Код:
|
min: in buf,PIND
sbrs buf,0
sbi PINB,0
sbrs buf,1
rjmp min
sbi PORTB,0
rcall wait
max: in buf,PIND
sbrs buf,0
rjmp stop
sbrc buf,2
rjmp max
stop: cbi PORTB,0
rcall wait
rjmp min |
Логика кнопок у вас обратная, поправьте.
(Кстати, зачем вы транзисторы поставили?)
Последний раз редактировалось =GM=; 05.05.2011 в 13:48.
|
|
|
|
05.05.2011, 13:29
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 01.04.2009
Адрес: Рязань
Сообщений: 1,138
Сказал спасибо: 21
Сказали Спасибо 635 раз(а) в 344 сообщении(ях)
|
Re: AVR help
Скорее всего датчики уровней оптические. На фототранзисторах.
|
|
|
|
Сказали "Спасибо" _guardianangel
|
|
|
05.05.2011, 13:32
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 01.04.2009
Адрес: Рязань
Сообщений: 1,138
Сказал спасибо: 21
Сказали Спасибо 635 раз(а) в 344 сообщении(ях)
|
Re: AVR help
Сообщение от =GM=
|
Ну, если не боитесь дребезга контактов, то как-то так
|
Код:
|
min: in buf,PIND
sbrs buf,0
sbi PINB,0
sbrs buf,1
rjmp min
sbi PORTB,0
rcall wait
max: in buf,PIND
sbrs buf,0
sbi PINB,0
sbrc buf,2
rjmp max
cbi PORTB,0
rcall wait
rjmp min |
Логика кнопок у вас обратная, поправьте.
(Кстати, зачем вы транзисторы поставили?)
|
не а и при max должно быть
|
|
|
|
Сказали "Спасибо" _guardianangel
|
|
|
05.05.2011, 13:38
|
|
|
Прописка
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
|
Нет,
Именно sbi PINB,0. Учите матчасть.
|
|
|
|
05.05.2011, 13:39
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,613
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: AVR help
Сообщение от echoo_mix
|
Помогите люди добрые
Есть не большие трудности в создании
проекта на АVR Atn2313 для управления электронасосом
помогите построить алгоритму так ,что бы при ручном нажатии
рабочий насос отключался,или же если он в не рабочем состоянии
чтоб включался....
|
2313 избыточен для данной задачи. Достаточно Тайни-13.
Насос включаете через пускатель с самоблокировочным контактом. Типовая схема включения с двумя кнопками ПУСК и СТОП.
МК управляет двумя реле, контакты которых включены:
1 - параллельно кнопке ПУСК
2 - последовательно с кнопкой СТОП.
МК должен отрабатывать НЕ ПОТЕНЦИАЛЫ управления этими реле, а импульсы, длительностью, достаточной для четкого срабатывания/выключения пускателя.
Таким образом решается вопрос ручного управления вне зависимости от поведения автоматики (ручная подкачка или поломка автоматики). Кстати, сохраняется режим выключения контроллером при достижении заданного уровня (перелив).
|
|
|
|
05.05.2011, 13:41
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 01.04.2009
Адрес: Рязань
Сообщений: 1,138
Сказал спасибо: 21
Сказали Спасибо 635 раз(а) в 344 сообщении(ях)
|
Re: Нет,
Сообщение от =GM=
|
|
Именно sbi PINB,0. Учите матчасть.
|
Извиняюсь - Учите сами. PINB - регистор состояния выводов контроллера. Доступен тока для чтения.
p.s. Блин даташит древнеломатой ревизии. Запись в PINB приведёт к переключению состояния соответствующего бита порта.
Последний раз редактировалось _guardianangel; 05.05.2011 в 13:45.
|
|
|
|
Сказали "Спасибо" _guardianangel
|
|
|
05.05.2011, 13:47
|
|
|
Прописка
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
|
Упорный товарищ
Цитата из документа doc2543L, с.47
"Writing a logic one to PINxn toggles the value of PORTxn, independent on the value of DDRxn. Note that the SBI instruction can be used to toggle one single bit in a port"
(Для удобства поправил логику в первом посте. Позволю себе заметить, что это не штатная программа, а просто идея топикстартеру для реализации его алгоритма)
Последний раз редактировалось =GM=; 05.05.2011 в 13:51.
|
|
|
|
Эти 2 пользователя(ей) сказали Спасибо =GM= за это сообщение:
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 04:26.
|
|