Пт май 16, 2014 10:06:18
Пт май 16, 2014 12:27:26
staba писал(а):А никто и не претендовал на 100% авторство прошивки, просто каждый исправлял её под свои нужды.
V-USB-MIDI Software License
The V-USB-MIDI performs the MIDI stream connection over low-speed USB.
The V-USB-MIDI is developed by Martin Homuth-Rosemann.
This program (not including usbdrv) is free software; you can redistribute
it and/or modify it under the terms of the GNU General Public License (GPL2)
as published by the Free Software Foundation. A copy of the GPL version 2
can be found in the appendix of this document.
Since V-USB-MIDI works together with usbdrv, you must follow OBJECTIVE
DEVELOPMENT's license agreement on the occasion of use of this program.
CAUTION
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
Using the MIDI stream over low-speed USB is NOT allowed by the USB
1.x and 2.0 standard. Use at your own risk. There is NO GUARANTEE that
current or future operating systems support MIDI over low speed USB.
Martin Homuth-Rosemann
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
тут сгрызли кусок....
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
тут сгрызли кусок....
staba писал(а):На мой взгляд использовать мегу16 на 5 фейдеров нецелесообразно, так как при каждом переключении внутреннего мультиплексора уйдёт больше времени, чем с использованием внешнего мультиплексора. Можно применить внешний быстрый ацп и несколько мультиплексоров.
staba писал(а):Да и под энкодеры можно взять мк с большим количеством внешних прерываний (вроде меги 88).
Пт май 16, 2014 12:50:40
Пт май 16, 2014 15:09:44
Cat346 писал(а):а если энкодер крутили то выдаем
принятое ранее значение с инкрементом или декриментом? Или как в комповой мышке направление и значение смещения?
staba писал(а):У меня в девайсе минимум 20шт, а так знакомый думает о 40шт и более
под 20 энкодеров? это 60 ног... и что все на прерывания посадить?
а не проще ли мегу16 с 4 портами = 32 дата ноги и 2 из них на I2C а 30 оставшихся ног на 10 энкодеров?
Пт май 16, 2014 15:16:51
Сб май 17, 2014 10:52:18
staba писал(а):Вот только я не понимаю, что именно вы строите, DMX пульт или миди клавиатуру?
staba писал(а):Если пульт - то не вижу смысла в энкодерах, с фейдерами нагляднее и обратную связь городить не нужно,
тем более что DMX таковой и не имеет, да и значений всего 128.
staba писал(а):Ну не 60, а достаточно 20. Если быстродействие не так важно, то можно и на одном мк всё собрать
: 64 фейдера, несколько энкодеров влезут и мелкосхему для dmx и вот вам готовое решение.
Сб май 17, 2014 11:07:20
staba писал(а):И посмотрите на проект midibox, там не спроста с атмег на стм32 перескочили,
и не садят всего лишь 5 фейдеров на 1 мк. Да и dmx у них присутствует.
Вс май 18, 2014 12:28:23
Cat346 писал(а):Какие значения управляющих байтов в пакете оптимально использовать под свои энкодеры, кнопки и файдеры?
В MIDI-DJ-CJ-CONTROLLER-2 были задействованы B0 5A 3C = Control90 60, B0 5B 01 = ReverbDepth 1 и т.д.
staba писал(а):у светорежиссера есть БОЛЬШОЕ желание получить на каждый эффект пару = файдер + энкодер
Вт май 20, 2014 00:11:17
Диджей писал(а):Собрал я наконец контроллер на atmega8, использую два мультиплексора. с прошивкой помог staba, за что ему огромное спасибо! Вот прошивка для ATmega8 на два мультиплексора и два энкодера, еще на 19 ноге МК висит светодиод. пользуйтесь, кому надо
Вт май 20, 2014 10:29:17
Вт май 27, 2014 16:40:54
#define A_Enc PINB.2
#define B_Enc PINB.3
_____
if(A_Enc == B_Enc)
{
move=1;
if(!A_Enc)
begin_position=0;
else
begin_position=1;
}
else
{
if(begin_position)
{
if(!A_Enc && B_Enc && move)
{
value++;
move=0;
}
if(A_Enc && !B_Enc && move)
{
value--;
move=0;
}
}
else
{
if(!A_Enc && B_Enc && move)
{
value--;
move=0;
}
if(A_Enc && !B_Enc && move)
{
value++;
move=0;
}
}
}
Ср май 28, 2014 17:30:53
staba писал(а):Про логику работы я вам уже ответил, вот только хранить данные у себя не нужно, пусть этим софт занимается, а ваш пульт только будет отдавать значение инкремента или декримента определённого канала.
if (En == 2) { // энкодер влево
midiMsg[iii++] = 0x0b;
midiMsg[iii++] = 0xb0+(midiPst[13] & 0x0F); // chanel
midiMsg[iii++] = midiPst[13+0x10]; // control#
midiMsg[iii++] = 0x00;
freeslot--;
}
if (En == 1) { // энкодер вправо
midiMsg[iii++] = 0x0b;
midiMsg[iii++] = 0xb0+(midiPst[13] & 0x0F); // chanel
midiMsg[iii++] = midiPst[13+0x10]; // control#
midiMsg[iii++] = 0x7F;
freeslot--;
}
staba писал(а):Какие вам угодно, главное чтоб ваша программа их понимала.
staba писал(а):Если на одном канале будет энкодер и фейдер, то может произойти ситуация подобно той, что вы описали. К примеру фейдер стоит в нулевом положении, энкодером измените значение к примеру до 120, а дернув фейдер значение канала опять вернётся к нулю, и произойдёт резкий скачёк.
Ср май 28, 2014 17:42:03
mich91 писал(а):Мой алгоритм обработки энкодера от китай мышки, на CodeVisionAVR
Ср май 28, 2014 19:06:14
Cat346 писал(а):mich91 писал(а):Мой алгоритм обработки энкодера от китай мышки, на CodeVisionAVR
Алгоритм - очень кривой, при глюках с дребезгом он насчитает....
Почему кривой и как сделать безглючный подскажет гугль по запросу
"Обработка Инкрементального Энкодера На Прерываниях."
Вопрос в другом - что на энкремент слать?
Вт июн 17, 2014 20:12:23
Вт июн 24, 2014 02:50:46
Вт июн 24, 2014 23:26:54
Сб июл 19, 2014 19:37:32
Сб июл 19, 2014 20:38:20
Сб июл 19, 2014 21:33:08
staba писал(а):Рассказывайте на каком камне делаете, на каком языке пишите.