www.open-tager.ru
http://www.open-tager.ru/forum/

LTAscetik
http://www.open-tager.ru/forum/viewtopic.php?f=5&t=1565
Страница 184 из 532

Автор:  Pingvin [ 02 фев 2013, 14:02 ]
Заголовок сообщения:  Re: LTAscetik

Такая монтажная пойдет?

Вложения:
montaj2.jpeg
montaj2.jpeg [ 240.18 KiB | Просмотров: 4937 ]
montaj.jpeg
montaj.jpeg [ 233.33 KiB | Просмотров: 4937 ]

Автор:  Pingvin [ 02 фев 2013, 14:11 ]
Заголовок сообщения:  Re: LTAscetik

maksim писал(а):
Ребята выложите последнюю версию поекта Ascetik в одном архиве(схему,печатку,прошивку,конфигуратор).Зарание спасибо)))

Схема, печатка и прошивка здесь.
Конфигуратор.

Сайт проекта ltascet.ru потихоньку наполняется. :)

Есть готовые печатки заводского изготовления! ;)

Автор:  LTagKirov [ 02 фев 2013, 16:35 ]
Заголовок сообщения:  Re: LTAscetik

Pingvin писал(а):
Не хватает таймеров - если несущую ИК формировать аппаратно, нечем будет звук воспроизводить. Но то, что код не оптимален - спорить не буду, это очевидно.


Немного по другому запланировал структуру

Таймер 0 - часы для синхронизации всего процесса
генерирует прерывания 8..10кгц, точное значение некритично, используется для опроса ИК, дискретизации звука, отмеривани передачи ИК импульсов. Производные от таймера события 8..10гц - мигание светодиодами, 80..100 гц - опрос клавиатуры.

таймер1 - один канал генерирует несущую для ИК, другой канал работает на ШИМ звука, Регулировка ШИМ для ИК используется аппаратная. В принципе этот таймер тоже можно использовать с прерываниями.

таймер 2 пока неиспользуется.

PS. Оптимальность кода вопрос философский - по мне лучше более читабельный :)

Автор:  LTagKirov [ 02 фев 2013, 16:38 ]
Заголовок сообщения:  Re: LTAscetik

Регистр конфигурации TCCR1A

COM1A1 COM1B1 FOC1A=0 WGM11
COM1A0 COM1B0 FOC1B=0 WGM10

Регистр конфигурации TCCR1В
ICNC1 = 0 X WGM12
ICES1 = 0 WGM13 CS12 CS11 CS10


Несущая частота ИК и ЦАП звука определяется регистром ICR1 = TOP,
Выбирается из ряда ИК несущих 36,38,56 КГц

ШИМ задаётся для разных каналов отдельно регистрами OCR1A и OCR1B
Можно применить три режима, с установкой верхнего модуля счёта:

Fast PWM f = Fosc / ( N * TOP) WGM = 1110
Phase Corect PWM f = Fosc / ( 2 * N * TOP) WGM = 1010
Phase & Freq Corect PWM f = Fosc / ( 2 * N * TOP) WGM = 1000

Автор:  Nestr [ 02 фев 2013, 17:07 ]
Заголовок сообщения:  Re: LTAscetik

Цитата:
Такая монтажная пойдет?

Да
толь ко что за полосочки на ней? например та что на проце?

Автор:  Pingvin [ 02 фев 2013, 17:08 ]
Заголовок сообщения:  Re: LTAscetik

Nestr писал(а):
Цитата:
Такая монтажная пойдет?

Да
толь ко что за полосочки на ней? например та что на проце?

Не обращайте внимание - "неразведённые цепи".

Автор:  Pingvin [ 02 фев 2013, 17:14 ]
Заголовок сообщения:  Re: LTAscetik

LTagKirov писал(а):
Регистр конфигурации TCCR1A

COM1A1 COM1B1 FOC1A=0 WGM11
COM1A0 COM1B0 FOC1B=0 WGM10

Регистр конфигурации TCCR1В
ICNC1 = 0 X WGM12
ICES1 = 0 WGM13 CS12 CS11 CS10


Несущая частота ИК и ЦАП звука определяется регистром ICR1 = TOP,
Выбирается из ряда ИК несущих 36,38,56 КГц

ШИМ задаётся для разных каналов отдельно регистрами OCR1A и OCR1B
Можно применить три режима, с установкой верхнего модуля счёта:

Fast PWM f = Fosc / ( N * TOP) WGM = 1110
Phase Corect PWM f = Fosc / ( 2 * N * TOP) WGM = 1010
Phase & Freq Corect PWM f = Fosc / ( 2 * N * TOP) WGM = 1000


Если мы хотим менять скважность несущей ИК - частота ШИМ = Fкварца/256.
Мало того, что кварц прийдется ставить "нестандартный" 36кГц*256=9.216 МГц (слава Богу - такие есть), но и для другой несущей потребуется другой кварц.

Можно, конечно, использовать режим CTC (сброс при совпадении), но скважность не сможем менять и прерываний не будет (изменение состояния вывода OCn при совпадении с регистром сравнения - в данном режиме вызов прерывания блокируется).
А чем тогда будем мерить длительность между прерываниями INT0?

таймер0 - ШИМ для звука. Прерывания не генерируются.
таймер1 - аппаратная генерация несущей. Прерывания не генерируются.
таймер2 - прерывания 8 КГц для формирования звука.

Нужно ещё чем то отмерять длительномть "1" и "0" при приёме/передаче.
Чем отмерять?
Получиться? :?

ЦАП (ШИМ) звука работает в режиме FAST PWM на частоте кварца.
Частота ШИМ звука = 16 000/256 = 62,5 кГц.
Не вижу смысла тут что то менять.

P.S. Кстати -можно попробовать отлавливать пакеты с TSOPа с помощью Блока захвата таймера. Только надо все пазлы сложить - хватит ли для этого всего ресурсов таймеров?
P.P.S. По счастливой случайности выводы OSC1A (аппаратный ШИМ) и ICP1(вход для блока захвата) не задействованы пока на маленькой платке! :) Так что поле для экспериментов огромно... ;)

Автор:  LTagKirov [ 02 фев 2013, 18:59 ]
Заголовок сообщения:  Re: LTAscetik

Pingvin писал(а):
Если мы хотим менять скважность несущей ИК - частота ШИМ = Fкварца/256. Мало того, что кварц прийдется ставить "нестандартный" 36кГц*256=9.216 МГц (слава Богу - такие есть), но и для другой несущей потребуется другой кварц. Не вижу смысла тут что то менять.


В том то и дело что к делителю 256 мы не привязаны и легко можем установить частоту любой какой захотим в пределах разумного. А для установки скважности ШИМ используется другой регистр. В таймере 1 один регистр для делителя и два для ШИМов. Дополнительно ещё есть пределитель, но я его выключаю, для повышения точности.

PS. Менять конечно ничего ненадо, так на будущее может кто читает и сам пописывает 8-)

Автор:  Pingvin [ 02 фев 2013, 19:06 ]
Заголовок сообщения:  Re: LTAscetik

LTagKirov писал(а):
В том то и дело что к делителю 256 мы не привязаны и легко можем установить частоту любой какой захотим в пределах разумного. А для установки скважности ШИМ используется другой регистр. В таймере 1 один регистр для делителя и два для ШИМов. Дополнительно ещё есть пределитель, но я его выключаю, для повышения точности.


Одновременно мы не можем и любую частоту сгенерить (режим работы таймера CTC - сброс при сравнении) и менять скважность (режим FAST PWM)!
Или я чего то не догоняю? :?

Автор:  LTagKirov [ 02 фев 2013, 19:07 ]
Заголовок сообщения:  Re: LTAscetik

Pingvin писал(а):
Нужно ещё чем то отмерять длительномть "1" и "0" при приёме/передаче.Чем отмерять?


Про ненужность таких точных измерений уже писал. Проверил такой алгоритм - работает даже на частоте опроса датчиков 4кгц :)

PS. Сейчас работаю над похожей программой, не для лазертага, кучу интерестностей обнаружил, всё самому приходится вытаскивать, а так хочется копи-пасте - копи-пасте - копи-пасте :mrgreen:

Страница 184 из 532 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/