Описание: Нужна помощь по программированию |
Поиск в теме | Версия для печати |
killgur |
Отправлено: 15 Июня, 2011 - 15:01:41
|
Гуру
Сообщений всего: 1189
Дата рег-ции: Февр. 2010
|
То что протеус показал высокий уровень- это его личные проблемы, там ничего нет, когда порт работает как вход, если его не притянуть за уши к высокому или низкому уровням .... там шум.
Строчки "для очистки совести" можно смело безболезненно убрать- это я проверял сколько продержится высокий уровень между переключением порта с выхода на вход.
Посмотрите схему там я специально притянул к земле вход PD2
В протеусе можете сделать то же и к кнопке подведите ввысокий уровень, вот так и добъетесь положительного сигнала.
текст задержки (если у Вас 4Мгц)
вставить вместо
nop
nop
U2 это генератор сигнала (кнопка имхо никакой не генератор сигнала, а генератор дребезга и геммороя)
и схема не в протеусе сделана.
(Добавление)
Цитата:
А можно пример с простой кнопкой, нажал горит PC0, второй раз нажал горит PC1 и так далее ?
плюс на кнопку повесь и все
; ldi rmp,0b11110000
; out portc,rmp
оставь закоментированными
работа будет выглядеть так Прикреплено изображение
(Отредактировано автором: 15 Июня, 2011 - 15:24:37) |
|
|
killgur |
Отправлено: 15 Июня, 2011 - 19:32:10
|
Гуру
Сообщений всего: 1189
Дата рег-ции: Февр. 2010
|
sibiryak пишет:Всё заработало, только когда запускаешь прогу, сразу светится первый диод потухает после подачи импульса, после чего загорается второй диод и горит до подачи следующего импульса и т.д.
должны все не гореть в начале ( протеус че то химичит) скорей всего сразу сработало прерывание почему то (потому что "Я сделал импульсный генератор на таймере 555."
а так все правильно работает
(Добавление)
sibiryak пишет:
А хотелось бы чтоб как по первому графику, загорался по времени. Я сделал импульсный генератор на таймере 555.
С этими строками ничего не работает
ldi rmp,11110000b
out portc,rmp ;гасим
Без них работает по второму графику
код задержки вставь вместо
nop
nop
перед
ldi rmp,11110000b
out portc,rmp ;гасим
оно то работает но очень быстро
(Добавление)
nest пишет:
Если это - всё что нужно, то лучше сделать на твёрдой логике. Надёжней будет... А то ну как МК завсинет в мороз или жару или помеха пройдёт.
полностью согласен
я уже намекал на специализированные микросхемы
а на рисунке
схема счетчика считающего до 4 по кругу
155ие5+155ид3 хотя бы (выдерживают легкое постукивание кувалдой)
на рисунке раньше то же с каким нибуть ждущим мультивибратором на АГ(Отредактировано автором: 15 Июня, 2011 - 19:37:27) |
|
|
killgur |
Отправлено: 15 Июня, 2011 - 21:39:44
|
Гуру
Сообщений всего: 1189
Дата рег-ции: Февр. 2010
|
sibiryak пишет:killgur пишет:; =============================
; delay loop generator
; 4000 cycles:
; -----------------------------
; delaying 3999 cycles:
ldi R17, $1F
WGLOOP0: ldi R18, $2A
WGLOOP1: dec R18
brne WGLOOP1
dec R17
brne WGLOOP0
; -----------------------------
; delaying 1 cycle:
nop
; =============================
А где именно здесь задержка
есть такая программка delay loop generator
а задержка там где нет коментариев (вложенные циклы)
но лучше по таймеру....
(Добавление)
Вот еще вариант железной схемы которая как и требовалось "разбрасывает сигналы в четыре линии".(Отредактировано автором: 15 Июня, 2011 - 21:40:23) |
|
|
|
Поиск в теме | Версия для печати |
Страниц (7): « 1 2 3 4 [5] 6 7 » |
« Программирование микроконтроллеров » |
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
|
|
|
|
|