Страница 1 из 1

attiny2313 Передача импульсов

Добавлено: Вт мар 16, 2010 21:14:45
kapitaneo
Здравствуйте.
Образовалась небольшая проблема, нужно передать импульсы с входа порта на выход другого.
Пишу вот так:

PORTD.0=PINB.0

Вроде передает(в Протэусе), но когда подаю сигналы с какого нибудь устройства, конкретное число импульсов, на выходе присутствуют добавочные импульсы.
Например: Вход=50, выход=54 или 57 и подобное.

В чем может быть проблема, или надо как-то по другому это реализовать?

ЗАРАНЕЕ СПАСИБО!!!

Re: attiny2313 Передача импульсов

Добавлено: Вт мар 16, 2010 21:51:42
Gudd-Head
Сразу напрашивается вопрос: а нафига оно надо?

Может, лучше использовать внешнее прерывание для генерации импульса на выходе?

Re: attiny2313 Передача импульсов

Добавлено: Вт мар 16, 2010 21:52:57
Pooher
Похоже на "дребезг". Добавьте в код, на пример, доп. проверку через задержку.

Re: attiny2313 Передача импульсов

Добавлено: Вт мар 16, 2010 22:34:13
kapitaneo
To Gudd-Head:
Вообще там в зависимости от некоторых условий нужно будет или повторить сигнал на входе или добавить к нему n-импульсов, в зависимости от условия. Спасибо за подсказку. :idea: Попробую через прерывания.



To Pooher:
Тоже думал что дребезг, пробывал разные значения для delay, но не получилось. Дат чик может выдавать импульсы с разным промежутком от 1 до 140 Гц. Может есть какие нибудь варианты программы антидребезга без делая? Поделитесь. Буду благодарен за помощь и подсказки! :))

Re: attiny2313 Передача импульсов

Добавлено: Ср мар 17, 2010 10:42:05
kalobyte
делай просто инкремент типа i++ и потом сбрасывай
сделай захват испульса таймером по прерыванию инт0

Re: attiny2313 Передача импульсов

Добавлено: Чт мар 18, 2010 11:05:02
kapitaneo
To _noise:

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

To kalobyte:

ну я пробовал принемать импульсы и счетать таймером по фронту.
А можно по-подробнее, а то что-то не "въезжаю" и если можно с примером кода :write:

Re: attiny2313 Передача импульсов

Добавлено: Чт мар 18, 2010 11:11:00
GP1
Что-то мне опять это напоминает тему про бензораздаточную колонку :roll:
Напоминаю - УК ни кто не отменял.

Re: attiny2313 Передача импульсов

Добавлено: Чт мар 18, 2010 20:48:09
kapitaneo
To GP1:
?


To _noise:

пробыал вот так:

while(PIND.1==0){}
delay_us(200);
if(PINB.0==1)
{PORT.0=0;}
else
{PORTB.0=1}
while (PIND.0==0){}
delay_us(200);

Re: attiny2313 Передача импульсов

Добавлено: Чт мар 18, 2010 21:18:37
GP1
оф-топ
тут просто уже было пару тем, типа:
"помогите вставить импульс"...
выяснилось что сей прибамбас нужен для бензоколонки