Страница 3 из 5

Re: дистанционное управление на 20 нагрузок на ATtiny2313

Добавлено: Ср сен 21, 2011 14:26:03
uwrtey
решил я использовать вот такой код
1111111100000010 первая кнопка
1111111100000100 вторая кнопка
1111111100000110 третья
...
1111111100101000 двадцатая кнопка
первые восемь единиц это старт байт
затем два нуля и код состоящий из пяти битов, затем снова нуль которым заканчивается команда любой кнопки (итого опять восемь символов)

Re: дистанционное управление на 20 нагрузок на ATtiny2313

Добавлено: Ср сен 21, 2011 15:20:45
uwrtey
как лучше защитить от помех - несколько раз повторять этот код или дописать к коду контрольную сумму?
например вот так
1) повторяющаяся команда в коде 11111111 00000010 00000010 (естественно без пробелов - здесь они для удобства чтения)

2) повторяющийся код
11111111 00000010
11111111 00000010

3) с контрольной суммой 11111111 00000010+00101000 (контрольная сумма 21)

ЗЫ самому больше нравится первый вариант! сойдет???

Re: дистанционное управление на 20 нагрузок на ATtiny2313

Добавлено: Чт сен 22, 2011 18:20:56
uwrtey
с контрольной суммой как то сложнее получается а вот первый вариант вполне экономичней
посылается код состоящий из стартовых бит и несколько раз (минимум два) повторяющейся команды
приемник сравнивает первую и вторую команду и в случае их совпадения выполняет ее. в противном случае сканирует эфир сначала....
Уважаемые Гуру,такой вариант сойдет?

Re: дистанционное управление на 20 нагрузок на ATtiny2313

Добавлено: Пт сен 23, 2011 00:15:54
Jack_A
uwrtey писал(а):с контрольной суммой как то сложнее получается а вот первый вариант вполне экономичней
посылается код состоящий из стартовых бит и несколько раз (минимум два) повторяющейся команды
приемник сравнивает первую и вторую команду и в случае их совпадения выполняет ее. в противном случае сканирует эфир сначала....
Уважаемые Гуру,такой вариант сойдет?
Кому может повредить контрольная сумма? Весь мир применяет и не жалуется. Я в одной из своих поделок блок данных, сопровождаемый КС, совал в пакет в 3 экземплярах, работало на ура. Теперь представьте : посылаете в пакете 3 одинаковых ( но без КС ) блока, два побились, а один нормальный. Несмотря на это, перезапраашиваем, хотя в пакете блок с корректными данными уже есть. Потеря времени, задержка реакции.

Re: дистанционное управление на 20 нагрузок на ATtiny2313

Добавлено: Пт сен 23, 2011 05:06:12
uwrtey
согласен, обдумаю.
просто хотел посылать две одинаковых команды и сравнивать между собой
а с контрольной суммой не мог бы ты выложить свой кусок кода одной команды? (хочу посмотреть как другие делают)

Re: дистанционное управление на 20 нагрузок на ATtiny2313

Добавлено: Пт сен 23, 2011 11:06:43
Jack_A
Если число команд небольшое и они без параметров, то можно сделать проще : не рассчитывать КС, а к команде прицеплять готовый код подтверждения, что-то грубо вроде "цифровой подписи". Например, команда 1 : включить устройство 1, к ней прикручиваеи : допустим, '7tRR', к команде 2 - 'z8J6' и т.д. И это повторяем в пакете 3 раза. На приемном конце устройства знают правильные значения этих кодов подтверждения и номера команд, которым они соответствуют, и если в 3 блоках пакета найдется хотя бы один кусок с совпадающими этими реквизитами, то команда детектирована верно.
Для передачи команд с параметрами , набор которых неограничен, нужно считать КС. Для повышения ерундиции в данном вопросе стоит почитать :
http://www.piclist.ru/S-CRC16-RUS/CRC16.html
или любю другую статейку, что выдаст Яндекс по запросу CRC16. Достаточно вменяемая статея в Википедии. Я ее даже приятелю в научный отчет влимонил ( договор подряда у них подхалтуривал ) . :)

Re: дистанционное управление на 20 нагрузок на ATtiny2313

Добавлено: Пт сен 23, 2011 18:32:37
uwrtey
число команд должно быть от 20, можно конечно и больше - но пока остановлюсь на 20
Jack_A писал(а):Если число команд небольшое и они без параметров, то можно сделать проще : не рассчитывать КС, а к команде прицеплять готовый код подтверждения, что-то грубо вроде "цифровой подписи".
если не сложно то накалякай плиз кусочек кода на русском...
(а то я совсем профан в передаче данных, а с микроконтролерами только начал)

Re: дистанционное управление на 20 нагрузок на ATtiny2313

Добавлено: Пт сен 23, 2011 20:19:54
uwrtey
как правильно подобрать частоту кварца?
мне кажется, что стоит повесить кварц на 20 мегагерц, а передачу/опрос информации производить с частотой 5 килогерц (вход в радио-передающий модуль 6 килогерц по датащиту)
частоту передачи/опроса ин-фы задавать с помощью зацикливания ... :dont_know: :shock:
как?

Re: дистанционное управление на 20 нагрузок на ATtiny2313

Добавлено: Сб сен 24, 2011 08:23:38
Jack_A
uwrtey писал(а): если не сложно то накалякай плиз кусочек кода на русском...
(а то я совсем профан в передаче данных, а с микроконтролерами только начал)
Не, я описал общий подход к повышению помехоустойчивости, а дальше уж, как говорят -- вот тебе удочка, а лови сам. На чужом коде программить не научишься, придется шишки набивать самолично.
К тому же на русском языке я кодить не умею, в основном - на ассемблере :)

Re: дистанционное управление на 20 нагрузок на ATtiny2313

Добавлено: Сб сен 24, 2011 15:30:41
uwrtey
спс
зы: большое спс

Re: дистанционное управление на 20 нагрузок на ATtiny2313

Добавлено: Пт окт 28, 2011 19:29:47
phanis
Вот мой пример реализации управления одной нагрузкой, но при желании можно доработать Исходники Приемник _передатчик.rar
http://s1.ipicture.ru/uploads/20111028/6K8LPNPK.jpg

Re: дистанционное управление на 20 нагрузок на ATtiny2313

Добавлено: Вт янв 03, 2012 13:26:14
uwrtey
чем смотреть вложенные файлы?
нельзя ли исходники в .txt выложить? буду очень признателен

Re: дистанционное управление на 20 нагрузок на ATtiny2313

Добавлено: Вт янв 03, 2012 15:08:47
uwrtey
вот тут немного понаписал на асме (для передатчика)
.............. задержку не написал так как не определился с кварцем...

вот собсна вопрос : влезет ли данный код в тиньку 2313 ? и будет ли работать такой принцип через радио эфир (в котором шума предостаточно) ???

Re: дистанционное управление на 20 нагрузок на ATtiny2313

Добавлено: Ср янв 04, 2012 11:04:38
jordan
Давно не писал на асме, но если мне не изменяет память там нужно для начала определить стек...

ldi temp, low(Ramend)
out spl, temp

для тинки как то вот так! :))

Re: дистанционное управление на 20 нагрузок на ATtiny2313

Добавлено: Ср янв 04, 2012 12:49:40
uwrtey
jordan, это не по теме...
да и зачем же он в моем случае?

Re: дистанционное управление на 20 нагрузок на ATtiny2313

Добавлено: Ср янв 04, 2012 12:50:07
Jack_A
uwrtey писал(а):вот тут немного понаписал на асме
Это тебе кажется :(

Когда прочитаешь такое :
rcall Delay: ;задержка
охота читать дальше пропадает.
А влезет или не влезет - не надо гадать, просто скомпилить,
предварительно исправив ошибки, оно и видно будет.

Re: дистанционное управление на 20 нагрузок на ATtiny2313

Добавлено: Ср янв 04, 2012 13:30:01
uwrtey
... точно :oops:

Re: дистанционное управление на 20 нагрузок на ATtiny2313

Добавлено: Ср янв 04, 2012 13:34:56
uwrtey
ну дак как на счет помехоустойчивости такого принципа кодирования сигнала?

Re: дистанционное управление на 20 нагрузок на ATtiny2313

Добавлено: Ср янв 04, 2012 14:33:51
Jack_A
uwrtey писал(а):ну дак как на счет помехоустойчивости такого принципа кодирования сигнала?
Какого - "такого" ? Тут было обсуждение с полдюжины разных способов. Можно вопрос мусолить до второго пришествия марсиан - а толку? Зависит от уровня помех в конкретном месте, от требуемого уровня надежности передачи. Определись - и пробуй. Передать команду из фиксированного не очень большого набора - задача не семи пядей во лбу.

Re: дистанционное управление на 20 нагрузок на ATtiny2313

Добавлено: Ср янв 04, 2012 14:49:40
jordan
во первых инициализация стека обязательна, а во вторых вам уже отвечали что для вашего случая не нужно никакого кодирования, способов кодирование от помех много, вы замучаетесь кодировать и декодировать его, для вашего случая выше крыши будет дублирование команды, 2,3 или 4 раза как вам нравиться, но хватит и 2... сделайте такой пакет,
(преамбула--идентификатор--команда--команда--..--) и не париться с CRC и кодированием