roboforum.ru

Технический форум по робототехнике.

Про меандр

Про меандр

Lockdog » 18 мар 2010, 17:32

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

Re: Про меандр

=DeaD= » 18 мар 2010, 17:45

Частота какая меандра?

Re: Про меандр

=DeaD= » 18 мар 2010, 17:45

Вообще RC-фильтры вроде еще не запрещены законом... :wink:

Re: Про меандр

vadinator » 18 мар 2010, 17:47

"Выпрямить", можно в самом МК, введя допустимую задержку на анализ перехода выхода из 1 в 0 - входной сигнал считать присутствующим на входе, пока после перехода не прошло время равное длительности периода например...вариантов много... ну и естественно можно ввести аппаратный фильтр по входу...

Re: Про меандр

avr123.nm.ru » 18 мар 2010, 18:49

Lockdog писал(а): меандр. Можно ли его как-то выпрямить?


Надо вход Цп зашунтировать конденсатором на землю, а меандр подавать на этот вход АЦП через резистор. Произведение R на C должно быть раз в 10 и более больше максимального периода меандра.

Только меандр это когда "1" и "0" равное время присутствуют. Т.е.

меандр это частный случай прямоугольного сигнала.

Re: Про меандр

Lockdog » 25 мар 2010, 02:11

В общем, нашёл решение, как "выпрямить" меандр с помощью логических вентилей.
Нужно один и тот же сигнал подать на два входа "ИЛИ", но один из них ещё и пропустить через инвертор.
Вложения
1.jpg

Re: Про меандр

avr123.nm.ru » 25 мар 2010, 08:40

Студентам надо показать - чтобы запомнили как ...

Re: Про меандр

Michael_K » 25 мар 2010, 13:00

два входа "ИЛИ", но один из них ещё и пропустить через инвертор.

Эмм. А почему просто выход на единицу не коротнуть :)
(0 или 1) точно так же как и (1 или 0) ВСЕГДА дадут единицу...
Меандр там, не меандр, оторванный вход или заземленный - всегда.
Смысл-то в этой схеме какой?

Re: Про меандр

Michael_K » 25 мар 2010, 13:01

avr123.nm.ru писал(а):Студентам надо показать - чтобы запомнили как ...

Тоже весело.

Re: Про меандр

Lockdog » 25 мар 2010, 13:22

Michael_K писал(а):
два входа "ИЛИ", но один из них ещё и пропустить через инвертор.

Эмм. А почему просто выход на единицу не коротнуть :)
(0 или 1) точно так же как и (1 или 0) ВСЕГДА дадут единицу...
Меандр там, не меандр, оторванный вход или заземленный - всегда.
Смысл-то в этой схеме какой?

Я всегда иду окольными путями)))

Re: Про меандр

Ворон » 25 мар 2010, 14:38

вообще-то в схемке смысл есть- так как это формирователь коротких импульсов из длинных по фронту))чем больше последовательных инверторов) тем выше задержка до появления импульса и/или его длительность, время срабатывания одного инвертора умноженое на количество их,и плюс время задержки выходного элементе= ширина импульса, это вроде основы схемотехники... хотя мог и приврать где-то ,но вряд ли :wink:

Re: Про меандр

Lockdog » 10 май 2010, 00:01

Вот написал такой код для обработки меандра с периодом 0,5 с.
Код: Выделить всёРазвернуть
#include <mega8.h>

// Timer 1 output compare A interrupt service routine
interrupt [TIM1_COMPA] void timer1_compa_isr(void)
{
   PORTD.0 = 1;
 
  if (PINC.0 == 0)
  {
   PORTD.0 = 0;
  }
}

// Declare your global variables here

void main(void)
{
DDRC=0x00;
DDRD=0xFF;
PORTC=0x00;
PORTD.0=0;

TCCR1A=0x00;
TCCR1B=0x0D;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x0F;
OCR1AL=0x92;
OCR1BH=0x00;
OCR1BL=0x00;

TIMSK=0x10;

#asm("sei")
while (1)
      {
      };
}


Предделитель 1024 с
Режим СТС, прерывание при совпадение с OCR1A

Но почему-то не работает, ни в протеусе, ни на реальном железе.
Помогите плиз
Последний раз редактировалось Vooon 10 май 2010, 16:34, всего редактировалось 1 раз.
Причина: [code=cpp]!!!

Re: Про меандр

Lockdog » 11 май 2010, 14:17

Никто не сможет помочь? :sorry:

Re: Про меандр

rig » 11 май 2010, 17:18

cv.PNG

кодевижен помоги!

а чем стандартные помощники не устравают?? Аппаратный шим к примеру в меге есть :P

Re: Про меандр

Lockdog » 11 май 2010, 17:28

Дык я в кодвижне и писал, зачем мне шим? Я хочу чтобы таймер через каждые 0,5 сек вызывал прерывание и в нём проверял состояние ножки и если оно = 1, то выполнять какю-либо команду


Rambler\'s Top100 Mail.ru counter