роботы робототехника микроконтроллеры


 Страниц (7): « 1 2 3 4 [5] 6 7 »   

> Описание: Нужна помощь по программированию
killgur Post Id



Гуру


Сообщений всего: 1189
Дата рег-ции: Февр. 2010  



То что протеус показал высокий уровень- это его личные проблемы, там ничего нет, когда порт работает как вход, если его не притянуть за уши к высокому или низкому уровням .... там шум.

Строчки "для очистки совести" можно смело безболезненно убрать- это я проверял сколько продержится высокий уровень между переключением порта с выхода на вход.

Посмотрите схему там я специально притянул к земле вход PD2

В протеусе можете сделать то же и к кнопке подведите ввысокий уровень, вот так и добъетесь положительного сигнала.

текст задержки (если у Вас 4Мгц)

вставить вместо

nop
nop


U2 это генератор сигнала (кнопка имхо никакой не генератор сигнала, а генератор дребезга и геммороя)

и схема не в протеусе сделана.
(Добавление)
Цитата:

А можно пример с простой кнопкой, нажал горит PC0, второй раз нажал горит PC1 и так далее ?


плюс на кнопку повесь и все


; ldi rmp,0b11110000
; out portc,rmp

оставь закоментированными

работа будет выглядеть так
Прикреплено изображение
с2.png

(Отредактировано автором: 15 Июня, 2011 - 15:24:37)

 
 Top
sibiryak Post Id



Главнокомандующий


Сообщений всего: 248
Дата рег-ции: Февр. 2011  



killgur пишет:
и схема не в протеусе сделана.


А если не секрет в каком симмуляторе ?

Может он удобнее Замешательство
 
 Top
killgur Post Id



Гуру


Сообщений всего: 1189
Дата рег-ции: Февр. 2010  



sibiryak пишет:
killgur пишет:
и схема не в протеусе сделана.


А если не секрет в каком симмуляторе ?

Может он удобнее Замешательство


Он на любителя и это не совсем тот сммулятор , скажем так, плюс стоит 20 килоевро Подмигивающий есть правда демо версия, но если уж сели за протеус то вперед, им пользуются многие и много в интернете для него информации. А по этой программе ее нет практически никакой.
 
 Top
sibiryak Post Id



Главнокомандующий


Сообщений всего: 248
Дата рег-ции: Февр. 2011  



killgur пишет:
и схема не в протеусе сделана.


А если не секрет в каком симмуляторе ?

Может он удобнее Замешательство
 
 Top
sibiryak Post Id



Главнокомандующий


Сообщений всего: 248
Дата рег-ции: Февр. 2011  



Всё заработало, только когда запускаешь прогу, сразу светится первый диод потухает после подачи импульса, после чего загорается второй диод и горит до подачи следующего импульса и т.д. Замешательство

А хотелось бы чтоб как по первому графику, загорался по времени. Я сделал импульсный генератор на таймере 555.

С этими строками ничего не работает
ldi rmp,11110000b
out portc,rmp ;гасим
Без них работает по второму графику

(Отредактировано автором: 15 Июня, 2011 - 19:31:38)

 
 Top
nest Администратор Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  




Если это - всё что нужно, то лучше сделать на твёрдой логике. Надёжней будет... А то ну как МК завсинет в мороз или жару или помеха пройдёт.
 
 Top
sibiryak Post Id



Главнокомандующий


Сообщений всего: 248
Дата рег-ции: Февр. 2011  



nest пишет:

Если это - всё что нужно, то лучше сделать на твёрдой логике. Надёжней будет... А то ну как МК завсинет в мороз или жару или помеха пройдёт.


А я не знаю как можно на логике распределить сигналы Замешательство
 
 Top
killgur Post Id



Гуру


Сообщений всего: 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)

 
 Top
sibiryak Post Id



Главнокомандующий


Сообщений всего: 248
Дата рег-ции: Февр. 2011  



killgur пишет:
скорей всего сразу сработало прерывание почему то (потому что "Я сделал импульсный генератор на таймере 555."
Помираю со смеху
Нее оно и с кнопкой так же сразу горит, даже если ничего нет.
killgur пишет:
оно то работает но очень быстро


Ну да работает, но как то как попало, может протеус так показывает Замешательство
А почему тогда на маленьких частотах не работает ?
(Добавление)
killgur пишет:
полностью согласен

я уже намекал на специализированные микросхемы

а на рисунке
схема счетчика считающего до 4 по кругу


Я же говорил идею создания сего девайса. Когда стану микропроцессорным ассом будет не только зажигание Жуть
 
 Top
killgur Post Id



Гуру


Сообщений всего: 1189
Дата рег-ции: Февр. 2010  



схема на железе (вариант)
Прикреплено изображение
155.png

 
 Top
killgur Post Id



Гуру


Сообщений всего: 1189
Дата рег-ции: Февр. 2010  



диаграмма работы

(перевернул для простоты светодиоды поэтому все зеркально)
Прикреплено изображение
diagr2.png

 
 Top
sibiryak Post Id



Главнокомандующий


Сообщений всего: 248
Дата рег-ции: Февр. 2011  



Нашёл в протеусе осцилограф всё оказывается работает как надо высший восторг
А как можно увеличивать и уменьшать длительность импульсов ?
 
 Top
killgur Post Id



Гуру


Сообщений всего: 1189
Дата рег-ции: Февр. 2010  



sibiryak пишет:
Нашёл в протеусе осцилограф всё оказывается работает как надо высший восторг
А как можно увеличивать и уменьшать длительность импульсов ?


вставляя изменяемую задержку (в разумных пределах)
 
 Top
sibiryak Post Id



Главнокомандующий


Сообщений всего: 248
Дата рег-ции: Февр. 2011  



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
; =============================


А где именно здесь задержка Смущение
 
 Top
killgur Post Id



Гуру


Сообщений всего: 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)

 
 Top
Страниц (7): « 1 2 3 4 [5] 6 7 »
« Программирование микроконтроллеров »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 





Powered by Exclusive Bulletin Board
ExBB FM 1.0 RC1 Smiles by Fool from Foolstown
  Яндекс.Метрика   Рейтинг@Mail.ru