Страница 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-импульсов, в зависимости от условия. Спасибо за подсказку.

Попробую через прерывания.
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:
ну я пробовал принемать импульсы и счетать таймером по фронту.
А можно по-подробнее, а то что-то не "въезжаю" и если можно с примером кода

Re: attiny2313 Передача импульсов
Добавлено: Чт мар 18, 2010 11:11:00
GP1
Что-то мне опять это напоминает тему про бензораздаточную колонку
Напоминаю - УК ни кто не отменял.
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
оф-топ
тут просто уже было пару тем, типа:
"помогите вставить импульс"...
выяснилось что сей прибамбас нужен для бензоколонки