Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Общетехнические вопросы

Общетехнические вопросы Общие вопросы аналоговой и цифровой электроники.

Ответ
 
Опции темы Опции просмотра
Старый 26.11.2016, 12:37   #1
maagalex
Senior Member
 
Аватар для maagalex
 
Регистрация: 25.02.2007
Адрес: &Alex==Israel.BatYam
Возраст: 40
Сообщений: 3,967
Вес репутации: 1705/93
maagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant future
Отправить сообщение для maagalex с помощью ICQ Отправить сообщение для maagalex с помощью MSN Отправить сообщение для maagalex с помощью Skype™
По умолчанию Как работают такие строки на С?..StripLights_DATA = 100; // Write Red -StripLights_DATA = (100); // Write green

Ковыряю некий пример работы с китайской гирляндой (светодиоды со встроенным сдвиговым регистром WS2812)
В функции вывода цветов на светодиоды такие строки

StripLights_DATA = (uint8)(color & 0x000000FF); // Write Green

color = color >> 8;
StripLights_DATA = (uint8)(color & 0x000000FF); // Write Red
color = color >> 8;
StripLights_DATA = (uint8)(color & 0x000000FF); // Write Blue


Что в принципе непонятно, ибо значение передается по очереди одной и той-же переменной..
Что такое StripLights_DATA ?


#defineStripLights_DATA (*(reg8 *) StripLights_B_WS2811_dshifter_u0__F0_REG)

Что такое StripLights_B_WS2811_dshifter_u0__F0_REG ?

#defineStripLights_B_WS2811_dshifter_u0__F0_REG CYREG_UDB_W8_F0_02

То есть какой-то внутренний регистр модуля UDB, это что-то вроде цифрового модуля на котором сконфигурировали эту управлялку гирляндой..
Непонятно как значения присвоенные одной и той-же переменной попадают в разные места?


maagalex вне форума   Ответить с цитированием
Старый 26.11.2016, 14:21   #2
DmitrijVDN
Senior Member
 
Регистрация: 09.04.2010
Сообщений: 644
Вес репутации: 1160/43
DmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud of
По умолчанию Re: Как работают такие строки на С?..StripLights_DATA = 100; // Write Red -StripLights_DATA = (100); // Write green

Цитата:
Сообщение от maagalex Посмотреть сообщение

Непонятно как значения присвоенные одной и той-же переменной попадают в разные места?


а с чего вы решили что они попадают в разные места? место одно и тоже какой-то регистор модуля наподобие юарта....
вы даташит на WS2811 читали ? как оный воспринимает данные
DmitrijVDN вне форума   Ответить с цитированием
Старый 26.11.2016, 14:36   #3
dosikus
Senior Member
 
Аватар для dosikus
 
Регистрация: 05.06.2007
Возраст: 44
Сообщений: 3,404
Вес репутации: 5249/122
dosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond repute
По умолчанию Re: Как работают такие строки на С?..StripLights_DATA = 100; // Write Red -StripLights_DATA = (100); // Write green

maagalex, шо не дается каменный цветок кипариса?
А как насчет - "усе просто и прозрачно"

Первая WS хавает первый 24бита из секвенции , пропуская остальные .
До второй естесно доходят вторые 24бита из секвенции и так далее.
После паузы все повторяется.
А что там наворотили на твоем кипарисе - рой мануал на камень...
dosikus вне форума   Ответить с цитированием
Старый 26.11.2016, 23:26   #4
maagalex
Senior Member
 
Аватар для maagalex
 
Регистрация: 25.02.2007
Адрес: &Alex==Israel.BatYam
Возраст: 40
Сообщений: 3,967
Вес репутации: 1705/93
maagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant future
Отправить сообщение для maagalex с помощью ICQ Отправить сообщение для maagalex с помощью MSN Отправить сообщение для maagalex с помощью Skype™
По умолчанию Re: Как работают такие строки на С?..StripLights_DATA = 100; // Write Red -StripLights_DATA = (100); // Write green

Так это понятно, про последовательный регистр я написал.
Но вот как чисто с точки зрения С можно в одит и тот-же регистр кидать данные, и они попадают в разые цвета?..
Ладно бы после кидания была пауза и ожидался флаг и в прерывании бы данные куда-то сдвигались, но никаких пауз нет..
Может быть это не переменная а указатель на место в памяти, и он меняется?..Но опять же кто и когда его меняет?..

По поводу кипариса сарказм не совсем в кассу)..Тут модуль "гирлянда" написал некий энтузиаст, и сделал это весьма своеобразно с упрощенным даташитом ..
Скажем вместо указания цвета значениями 0-255 он создал табличку цветов и оттенков и 4 градации яркости, как бы и не подразумевая что кто-то станет делать из этого что-то большее чем гирлянду..
То есть то что такой проект вообще есть и за это спасибо, а кипарис дает базу на которой можно подобное реализовать, я вот не умею взять и заставить UDB модуль выполнять какую-то функцию и поэтому беру готовые кубики ..а кто-то да может..
maagalex вне форума   Ответить с цитированием
Старый 26.11.2016, 23:58   #5
dosikus
Senior Member
 
Аватар для dosikus
 
Регистрация: 05.06.2007
Возраст: 44
Сообщений: 3,404
Вес репутации: 5249/122
dosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond repute
По умолчанию Re: Как работают такие строки на С?..StripLights_DATA = 100; // Write Red -StripLights_DATA = (100); // Write green

maagalex, а ты читать не любишь, по твоей же ссылке озвучено FIFO и таймер на пауза_сброс нарисован.
А вообщем я был прав - визуальные тыкалки кипариса ни чему тебя не научили...
dosikus вне форума   Ответить с цитированием
Старый 27.11.2016, 00:56   #6
maagalex
Senior Member
 
Аватар для maagalex
 
Регистрация: 25.02.2007
Адрес: &Alex==Israel.BatYam
Возраст: 40
Сообщений: 3,967
Вес репутации: 1705/93
maagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant future
Отправить сообщение для maagalex с помощью ICQ Отправить сообщение для maagalex с помощью MSN Отправить сообщение для maagalex с помощью Skype™
По умолчанию Re: Как работают такие строки на С?..StripLights_DATA = 100; // Write Red -StripLights_DATA = (100); // Write green

Цитата:
Сообщение от dosikus Посмотреть сообщение
maagalex, а ты читать не любишь, по твоей же ссылке озвучено FIFO и таймер на пауза_сброс нарисован.
А вообщем я был прав - визуальные тыкалки кипариса ни чему тебя не научили...
Таймер как синхронизуется тогда если никакой привязки ко времени в программе нет? Присваивается значение, потом присваивается новое, почему именно между этими командами что-то происходит по таймеру или еще как?..Визуальные модули кстати это лишь предварительная дефолтная установка, в самой програме я дергаю регистрами и меняю все что мне нужно в процессе..
maagalex вне форума   Ответить с цитированием
Старый 27.11.2016, 07:54   #7
dosikus
Senior Member
 
Аватар для dosikus
 
Регистрация: 05.06.2007
Возраст: 44
Сообщений: 3,404
Вес репутации: 5249/122
dosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond repute
По умолчанию Re: Как работают такие строки на С?..StripLights_DATA = 100; // Write Red -StripLights_DATA = (100); // Write green

Честно говоря я не смотрел что там внутри. Но логичным кажется сие:
Передающий буфер с FIFO, c организацией 144x24 бита.
Передача начинается после заполнения буфера, автоматом.
Ну и пауза автоматом, после передачи всего буфера...

Цитата:
Сообщение от maagalex Посмотреть сообщение
я вот не умею взять и заставить UDB модуль выполнять какую-то функцию и поэтому беру готовые кубики ..а кто-то да может..
Это скользкий путь аурдуньи, когда вместо осознанного кодинга начинается метод тыка и гадания ...

Последний раз редактировалось dosikus; 27.11.2016 в 07:59.
dosikus вне форума   Ответить с цитированием
Старый 27.11.2016, 12:54   #8
maagalex
Senior Member
 
Аватар для maagalex
 
Регистрация: 25.02.2007
Адрес: &Alex==Israel.BatYam
Возраст: 40
Сообщений: 3,967
Вес репутации: 1705/93
maagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant future
Отправить сообщение для maagalex с помощью ICQ Отправить сообщение для maagalex с помощью MSN Отправить сообщение для maagalex с помощью Skype™
По умолчанию Re: Как работают такие строки на С?..StripLights_DATA = 100; // Write Red -StripLights_DATA = (100); // Write green

Цитата:
Сообщение от dosikus Посмотреть сообщение

Это скользкий путь аурдуньи, когда вместо осознанного кодинга начинается метод тыка и гадания ...
Почему тыка?..Имеем чип с полной документацией от производителя, имеем готовые программные модули для чипа с документацией от их авторов, включая описание API..
Готовыми библиотечными функциями не пользуешься совсем?..Тут тоже самое только все стандартизированно, там находится изображение модуля, там меню его настройки, там даташит на него ..И гарантия того что он правильно ляжет в чип и не возникнет конфликт с другим модулем по прерываниям или портам или чему-то еще..

По FIFO я это понимаю, но чтобы скормить ему свои значения R,G,B нужно понимать как он кушает те значения что ему дают сейчас
maagalex вне форума   Ответить с цитированием
Старый 27.11.2016, 13:19   #9
maagalex
Senior Member
 
Аватар для maagalex
 
Регистрация: 25.02.2007
Адрес: &Alex==Israel.BatYam
Возраст: 40
Сообщений: 3,967
Вес репутации: 1705/93
maagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant futuremaagalex has a brilliant future
Отправить сообщение для maagalex с помощью ICQ Отправить сообщение для maagalex с помощью MSN Отправить сообщение для maagalex с помощью Skype™
По умолчанию Re: Как работают такие строки на С?..StripLights_DATA = 100; // Write Red -StripLights_DATA = (100); // Write green

Кстати кипарис неплохо платит авторам модулей, вот вам и дополнительный заработок, и другим польза..
maagalex вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чем/как отлаживать код написаный на Си в WinAVR Yokel Микроконтроллеры других производителей 49 30.09.2014 09:48
Имитатор DS18B20 Filya44 Вопросы начинающих 14 12.03.2012 17:39
PIC16F84a stepka Вопросы начинающих 56 24.03.2010 18:30
Часы на pic 16f874a и ds1307n работают, но не работают faramun21 Продукция MICROCHIP 8 10.07.2009 04:40
подключение магнитолы Sergey1 Общетехнические вопросы 10 27.12.2007 22:39


Часовой пояс GMT +3, время: 19:47.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd. Перевод: zCarot