DMX управление контроллером

PIC версия программы(разные темы)

DMX управление контроллером

Сообщение muzikantgleb (Александр) » 11 фев 2013, 15:35

Здравствуйте, уважаемые. Как-то года 3 назад, купил я светодиодный прибор(для ДЕРЕВЕНСКИХ дискотек), светодиоды горели как спички, замучался менять, потом каким-то чудом..., микрочип перестал работать. Вот решил переделать всё ВКОРНЕ! После замены светодиодов, стабилизации напряжения и подбора нужной силы тока для них, необходимо было разработать прошивку для микроконтроллера, который управляет семью сдвиговыми регистрами . Файлы проектов (Proteus и Flowcode) с готовой прошивкой прилагаю, дал Бог( и этот сайт), смастерил за пару вечеров. Вопрос в следующем, родной микрочип еще мог управляться по так называемой шине - DMX!!! ну и + звуковая активация конечно. Может кто сталкивался или знает, как ЕНТО чудо заставить работать по DMX, в СРЕДЕ РАЗРАБОТКИ Flowcode??? Если без языка СИ, не обойтись, то это утопия...
У вас нет доступа для просмотра вложений в этом сообщении.
Аватар пользователя
Ник: muzikantgleb
Имя: Александр
(Курск)
Заинтересованный
Заинтересованный
Информация о пользователе

Re: DMX управление контроллером

Сообщение muzikantgleb (Александр) » 10 фев 2014, 18:50

Доброго времени всем. Решил не оставлять старую, забытую мной тему без завершения и все таки доделать световой прибор, управляемый по DMX. Прошивка и схема да и контроллер собственно, уже совершенно другие чем были в прошлый раз, так что начинал все по новой! Тему поднимаю с целью, что может кому пригодится....или кто-то предложит какие то более рациональные корректировки кода. Конечно в исходнике много чего не хватает ( по приему Dmx) и наверное можно каким то образом приварить виртуальный терминал к микроконтроллеру в протеусе, чтобы управлять с помощью хотябы той же freestyler прямо с компа, но я этому еще не научился. Хотя в железе и с DMX пульта и с ноута через USB_DMX (freestyler), работает отлично!!! Так можно под любой световой прибор приспособить и ШИМ приклеить тоже и шаговиками крутить. Далее добавлю звуковую активацию, побольше встроенных эффектов и еще наверное один канал, чтоб можно было управлять встроенными эффектами с пульта DMX , но это когда время появится.
У вас нет доступа для просмотра вложений в этом сообщении.
Аватар пользователя
Ник: muzikantgleb
Имя: Александр
(Курск)
Заинтересованный
Заинтересованный
Информация о пользователе

Re: DMX управление контроллером

Сообщение TREY3499 (Сергей) » 10 фев 2014, 19:16

Под пики управление по dm ифа тут http://www.matrixmultimedia.com/mmforum ... 512#p13036
Последний раз редактировалось Сергей 10 фев 2014, 19:32, всего редактировалось 1 раз.
Знать всё невозможно,но нужно к этому стремиться!
Аватар пользователя
Ник: TREY3499
Имя: Сергей
(Тверь)
Специалист
Специалист
Информация о пользователе
Вернуться наверх

Re: DMX управление контроллером

Сообщение muzikantgleb (Александр) » 10 фев 2014, 19:29

да я собственно просматривал вашу тему на АВР я на них не работаю так как изначально купил программатор для PIC, и на буржуйском сайте тоже читал. В примере все работает на УРА! Мне вот просто интересно для чего и КАК в профессиональных приборах детектися Break? ( у меня контролер просто идет в прерывание по BREAK выставляется флаг ошибки) и ждет пока придет стартовый бит( новое прерывание) после MAB. что дает стартовый байт ( то что в литературе написано - читал) но нужно ли и КАК это использовать тут?
Аватар пользователя
Ник: muzikantgleb
Имя: Александр
(Курск)
Заинтересованный
Заинтересованный
Информация о пользователе
Вернуться наверх

Re: DMX управление контроллером

Сообщение TREY3499 (Сергей) » 10 фев 2014, 19:36

Вот в этом вопросе я не силен.
код я тоже не сам писал по приему dmx и не могу объяснить почему именно так работает.
Знать всё невозможно,но нужно к этому стремиться!
Аватар пользователя
Ник: TREY3499
Имя: Сергей
(Тверь)
Специалист
Специалист
Информация о пользователе
Вернуться наверх

Re: DMX управление контроллером

Сообщение LEV-PRAV (LEV-PRAV) » 14 фев 2014, 17:30

В AVR есть аппаратное отлавливание брейка, флаг(бит) FE (FRAME ERROR). Когда начинается брейк, контроллер воспринимает его как начало передачи: стартовый бит, 8 нулевых битов, ждёт стоп бит, но его нет, он оказывается то же нулевым. Выставляется флаг FE. Сбрасываем счётчик слотов(данные в потоке называются slot по феншую). Дальше идёт "признак дээмикса" нулевой слот с нулевыми данными, значит всё правильно, и посылке можно верить, ловим данные относительно стартового адреса прибора. Ни чего хитрого.


Давно не упарывался по пикам, но думаю там есть апаратное отлавливание брейка.
Давай на "ТЫ"
Аватар пользователя
Ник: LEV-PRAV
Имя: LEV-PRAV
(Санктум-Петербургум)
Модератор
Модератор
Информация о пользователе
Вернуться наверх

Re: DMX управление контроллером

Сообщение LEV-PRAV (LEV-PRAV) » 14 фев 2014, 17:41

Ага, есть бит FERR в пиках. Та же механника, если стоповый бит не 1. К стати по этому у ДМХ два стоповых бита, что бы ошибок было меньше.
В старые времена аппаратные средства были не очень резвые, для них и брейк такой длинный был утверждён. Теперь же брей должен быть не менее двух байт длинной (по времени)
Давай на "ТЫ"
Аватар пользователя
Ник: LEV-PRAV
Имя: LEV-PRAV
(Санктум-Петербургум)
Модератор
Модератор
Информация о пользователе
Вернуться наверх

Re: DMX управление контроллером

Сообщение muzikantgleb (Александр) » 16 фев 2014, 20:03

Ну конечно В ПИКах есть БИТ ОШИБКИ, я считаю на основании именно него PIC контроллер понимает что раз нет стопового бита ( а тем более двух), значит это БРЕЙК (в програмном смысле) , дальше идет MAB тоесть единица и уже следующая передача состоит из - стартового бита(ноль), 8-ми бит кода данных и двух стоповых битов( но данные всегда - ноль - СТАРТОВЫЙ КОД) и только после этого мы передаем данные об (уровнях) всех 512 каналов ИЛИ НЕ ВСЕХ ( но всегда начинаем с 1 канала со всеми примочками (типа БРЕЙК - МАБ - СТАРТОВЫЙ БАЙТ-КОД)). Пока что я тестировал управление по протоколу DMX мало еще, да и в пределах своей комнаты, тем более что пока что моя программа может принимать данны( адреса) только до 256 каналов, в дальнейшем я приплюсую еще одну ногу какого-нибудь порта для 512 ти каналов, но пока - каких то сбоев ( в лице помех или еще чего то замечено не было) все работает точно с условиями программы. Меня путает стандартный макрос прерывания с измененным обработчиком кода......как правильно его истолковать?
Аватар пользователя
Ник: muzikantgleb
Имя: Александр
(Курск)
Заинтересованный
Заинтересованный
Информация о пользователе
Вернуться наверх

Re: DMX управление контроллером

Сообщение muzikantgleb (Александр) » 16 фев 2014, 20:20

если исходить из этого материала ( http://eugenemcu.ru/publ/2-1-0-53%20%20%20Начало%20изучения%20Си) то он читается так - стандартным макросом мы разрешаем прерывания по USART далее идет ко обработчика прерываний (if (pir1 & (1 << RCIF)) { FCM_DMX_Read();}), его трактую так - если бит RCIF регистра pir1 установлен в единицу( флаг прерывания ) то выполняем макрос ( в фигурных скобках)... ТАК или НЕТ?
Аватар пользователя
Ник: muzikantgleb
Имя: Александр
(Курск)
Заинтересованный
Заинтересованный
Информация о пользователе
Вернуться наверх

Re: DMX управление контроллером

Сообщение LEV-PRAV (LEV-PRAV) » 22 фев 2014, 13:30

Нет, MAB не единица, ну не актуально в уарте высокий уровень звать единицей.
Данных не обязательно должно быть 512. Ни какие приборы не считают что там происходить после того как приняли свои данные. Многие проги управления имеют опцию не слать все 512 байт, например мадрикс: можно отключить фулфрейм. Китайские контроллеры для светодиодных трубок адресуемых лент, используют от 1000 байтов и больше. Да это выход за стандарт, но позволяет увеличить количество данных, там где нельзя добавить поток технически.
Давай на "ТЫ"
Аватар пользователя
Ник: LEV-PRAV
Имя: LEV-PRAV
(Санктум-Петербургум)
Модератор
Модератор
Информация о пользователе
Вернуться наверх

След.

Вернуться в Flowcode PIC

Кто сейчас на форуме

Пользователь просматривает форум: нет зарегистрированных пользователей

cron