Программный фильтр

Тут обсуждаем все что связано с микроконтроллерами.

Модератор: gurvinok

Аватара пользователя
GhostX
Сообщения: 1115
Зарегистрирован: 07 дек 2015, 14:40
Откуда: Рязань

Re: Программный фильтр

Сообщение GhostX » 12 янв 2017, 21:00

gurvinok писал(а):А у меня таких помех нет. Что за приемник. Название в студию.
У него сигнал инвертирован. Там помехи в низ, на картинке, идут. С моих приемников такая же гадость сыпется. Передатчик когда включается все пропадает. А название любое выбирай, их китайцы, разные на одно и тоже, напридумывали.

Аватара пользователя
gurvinok
Сообщения: 1500
Зарегистрирован: 02 мар 2013, 09:18
Откуда: Москва

Re: Программный фильтр

Сообщение gurvinok » 12 янв 2017, 23:16

Что значит инвертированный. У меня если подать единицу на передатчик и ее держать, то на приемнике идет полный треш. Если ноль, то на приемнике постоянная единица.
Если долго мучиться, может быть получится.

AVRIK
Сообщения: 141
Зарегистрирован: 24 сен 2016, 11:25
Откуда: Тбилиси

Re: Программный фильтр

Сообщение AVRIK » 12 янв 2017, 23:52

gurvinok писал(а):А у меня таких помех нет. Что за приемник. Название в студию.
Приемник с передатчиком на фотке этажом выше!

AVRIK
Сообщения: 141
Зарегистрирован: 24 сен 2016, 11:25
Откуда: Тбилиси

Re: Программный фильтр

Сообщение AVRIK » 13 янв 2017, 00:12

GhostX, приветствую!
Да, вы правы, в графике покой лог "1", а модулируется в лог "0". Там код в 3-х микросекундах разницы при "прижимании" лог "1" к нулю. Лог "1" на 3мкс короче в лог "0" чем лог "0". Этот код просто генерируется тинкой-13. Я на нем учился таймер настраивать, с считыванием кода. Да, конечно, в таком режиме передатчика его к саяно-шушенскоме гесу надо подключать, и об этом я и говорил в сообщении с фотками приемо/передатчика.
Код самый простой:
/*
* _13_kod_10010101.c
*
* Created: 27.10.2016 18:05:20
* Author: SUN
*/


#include <avr/io.h>
#include <avr/delay.h>
int main(void)
{
DDRB=0xff;
PORTB=0x00;
PORTB|=(1<<0);
while(1)
{
PORTB=0xff; _delay_ms(1);
//---------------------------------------------------------------------------------------
PORTB=0x00; _delay_us(12); PORTB=0xff; _delay_us(58); //1
PORTB=0x00; _delay_us(15); PORTB=0xff; _delay_us(55); //0
PORTB=0x00; _delay_us(12); PORTB=0xff; _delay_us(58); //1
PORTB=0x00; _delay_us(15); PORTB=0xff; _delay_us(55); //0 10101001
PORTB=0x00; _delay_us(12); PORTB=0xff; _delay_us(58); //1
PORTB=0x00; _delay_us(15); PORTB=0xff; _delay_us(55); //0
PORTB=0x00; _delay_us(15); PORTB=0xff; _delay_us(55); //0
PORTB=0x00; _delay_us(12); PORTB=0xff; _delay_us(58); //1

// PORTB=0xff; _delay_us(15);
// PORTB=0x00; _delay_us(15);

}
}
Может вы прикалываетес интересуясь кодом, но я без задней мысли, от души!

Аватара пользователя
GhostX
Сообщения: 1115
Зарегистрирован: 07 дек 2015, 14:40
Откуда: Рязань

Re: Программный фильтр

Сообщение GhostX » 13 янв 2017, 04:52

Нет, код не по приколу спросил. С ходу не разглядел осциллограмму, а вникать чему там равна клеточка лениво было.
Вы _delay_ms и _delay_us не перепутали? Я конечно не спец, но чтоб получать что то, с них, более менее стабильное, я б замедлился, раз так хотя бы в 100. А там кто ее знает, надо пробовать, что то самому даже любопытно стало.))

Аватара пользователя
gurvinok
Сообщения: 1500
Зарегистрирован: 02 мар 2013, 09:18
Откуда: Москва

Re: Программный фильтр

Сообщение gurvinok » 13 янв 2017, 13:52

PORTB=0xff; _delay_ms(1);
//---------------------------------------------------------------------------------------
PORTB=0x00; _delay_us(12); PORTB=0xff; _delay_us(58); //1
PORTB=0x00; _delay_us(15); PORTB=0xff; _delay_us(55); //0
PORTB=0x00; _delay_us(12); PORTB=0xff; _delay_us(58); //1
PORTB=0x00; _delay_us(15); PORTB=0xff; _delay_us(55); //0 10101001
PORTB=0x00; _delay_us(12); PORTB=0xff; _delay_us(58); //1
PORTB=0x00; _delay_us(15); PORTB=0xff; _delay_us(55); //0
PORTB=0x00; _delay_us(15); PORTB=0xff; _delay_us(55); //0
PORTB=0x00; _delay_us(12); PORTB=0xff; _delay_us(58); //1

// PORTB=0xff; _delay_us(15);
// PORTB=0x00; _delay_us(15);
Японский городовой!!! Вот это сила. А всем портом рулить сразу это принципиально или передача идет сразу восьми устройствам.??? :shock:
Если долго мучиться, может быть получится.

Аватара пользователя
GhostX
Сообщения: 1115
Зарегистрирован: 07 дек 2015, 14:40
Откуда: Рязань

Re: Программный фильтр

Сообщение GhostX » 13 янв 2017, 15:48

Алексей, человек учится, посмотри как я ворочую, и не ардуинщин и ни СИшник, все вперемешку, как быстрее придумается, так и напишу... И только потом если не устроит скорость работы, другие какие спокатыки встретятся и настроение будет!!!, могу оптимизировать, переписав пол кода.)))))

Аватара пользователя
gurvinok
Сообщения: 1500
Зарегистрирован: 02 мар 2013, 09:18
Откуда: Москва

Re: Программный фильтр

Сообщение gurvinok » 13 янв 2017, 17:34

Когда я в руки взял первый МК, я так не делал. Ну если управление одним пином, то понятно что не нужен весь порт. 5 минут гугления и можно найти как рулить одним пином на порту.
Если долго мучиться, может быть получится.

AVRIK
Сообщения: 141
Зарегистрирован: 24 сен 2016, 11:25
Откуда: Тбилиси

Re: Программный фильтр

Сообщение AVRIK » 15 янв 2017, 15:58

Приветствую господа!
GhostX, us-не ошибка, старался временной минимум контролировать.
gurvinok- конечно можно было и один пин погонять, но было не принципиально. Ваше замечание по данному вопрису, принимаю как указание всегда писать оптимально.
Спасибо за наставления.

Аватара пользователя
gurvinok
Сообщения: 1500
Зарегистрирован: 02 мар 2013, 09:18
Откуда: Москва

Re: Программный фильтр

Сообщение gurvinok » 15 янв 2017, 19:49

Когда постоянно требуются задержки, да еще и точные, то для этих целей используют таймеры. Их как раз для этого и сделали. А то получается поставили лифт в доме, а жильцы, по незнанию как им пользоваться, ходят пешком.
Если долго мучиться, может быть получится.

Ответить