Jump to content

Recommended Posts

Posted

Ñ Ð¿Ð»Ð¾Ñ…Ð¾ понимаю что значит onoff ononly toggle :)

Ñветодиод можно Ñделать, почему нет-то?

а вот Ñ Ð±Ð»Ð¸Ð½ÐºÐ¾Ð¼ как поÑтупить Ñ Ð½Ðµ знаю... нужно форум шерÑтить, кто-то делал

Posted (edited)

Ð˜Ð½Ð´Ð¸ÐºÐ°Ñ†Ð¸Ñ 0%. Ð’ AIN_NotifyChange добавлÑем:

	if (pin==4) { (pin_value==64) ? MIOS_DOUT_PinSet (30,1) : MIOS_DOUT_PinSet(30,0); }

	if (pin==5) { (pin_value==64) ? MIOS_DOUT_PinSet (62,1) : MIOS_DOUT_PinSet(62,0); }

OnOff Ñ Ð¿Ð¾Ð»Ð°Ð³Ð°ÑŽ: нажал-отпуÑтил - включилоÑÑŒ, нажал-отпуÑтил - выключилоÑÑŒ

Toggle: нажал - включилоÑÑŒ, отпуÑтил - выключилоÑÑŒ

Это в тракторе наÑтраиваетÑÑ, еÑли Ñ Ð½Ðµ ошибаюÑÑŒ. Вот только зачем нужны были плÑÑки Ñ Ð±ÑƒÐ±Ð½Ð¾Ð¼ вокруг Shift? :)

Ð OnOnly Ñто что? :)

Edited by spongebob
Posted

В локальные переменные:

unsigned char timer_tick;

unsigned char blink_led;
Ð’ Init:
  timer_tick=0;

  blink_led=0;

  MIOS_TIMER_Init(0x03, 62500);

Добавить функцию тика по таймеру. ЗдеÑÑŒ Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð¼ÐµÑ€Ð° моргают 31 и 63 Ñветодиоды.
void Tick(void) __wparam

{

  if (timer_tick=>10) {

	timer_tick=0;

	}

  if (timer_tick==0) {

	// Ñделать что-то раз в 500mS

	(blink_led==1) ? (blink_led=0) : (blink_led=1);

	MIOS_DOUT_PinSet(31,(blink_led && MIOS_DOUT_PinGet(31)));

	MIOS_DOUT_PinSet(63,(blink_led && MIOS_DOUT_PinGet(63)));

	}

  timer_tick++;


}

Ð£Ð¼ÐµÐ½ÑŒÑˆÐ°Ñ Ð³Ñ€Ð°Ð½Ð¸Ñ†Ñƒ timer_tick, а так же играÑÑÑŒ Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°Ð¼Ð¸ MIOS_TIMER_Init добейÑÑ Ð½ÑƒÐ¶Ð½Ð¾Ð¹ паузы. Значение второго параметра MIOS_TIMER_Init не больше 65535.

Posted (edited)

OnOnly - нажал 7f, отпуÑтил - нет команды, нажал 7f и.Ñ‚.д

Я проÑто ещё и Ñ VirtualDJ хочу его пробовать, что-то в тракторе хорошего что-то в виртуале, ещё не определилÑÑ.

попробовал

if ((pin==46 || pin==6) && pin_value==1) {

return;

}

вÑе работает :frantics: . spongebob ты шаман однако :hairy:

Ñ‰Ð°Ñ Ð¾Ñтальное пробовать буду :shifty:

Edited by Chubaka
Posted (edited)

Toggle: нажал - включилоÑÑŒ, отпуÑтил - выключилоÑÑŒ

Ð OnOnly Ñто что? :)

Как Ñ Ð¿Ñ€ÐµÐ´ÑтавлÑÑŽ, речь идёт об Ñтих режимах кнопок ( MB64 , MB 64e ) :

A special feature is implemented for the buttons: the behaviour of every button can be specified with the Snapshot Button before a event will be assigned to it:

cs31.gifSend learned value when button pressed, send zero when button released.

cs32.gifSend learned value only when button pressed, don't send a zero value when button released.

cs33.gifSend learned value with the first keypress, send zero value with the second keypress.

Edited by Janis1279
Posted

Ðга, понÑл

придумаем, не волнуйÑÑ :)

void Tick Ñто не та Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ :)

нада было void Timer

Posted (edited)

const unsigned char btn_mode[78]={

0,0,1,1,1,1,1,2,2,1,

2,2,1,2,1,0,0,1,1,0,

1,0,0,0,0,0,0,0,1,0,

4,4,1,0,1,1,0,0,2,2,

1,2,2,1,1,2,1,1,1,1,

1,0,0,0,0,0,0,0,0,0,

1,0,4,4,2,1,1,1,1,1,

4,4,1,1,1,1,1,2};


unsigned char btn_state[78]={

0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0};
void DIN_NotifyToggle(unsigned char pin, unsigned char pin_value) __wparam

{

switch(btn_mode[pin]){

case 0: // OnOff

	break;

case 1: // Toggle

	if (pin_value==0) {

		(btn_state[pin]==1) ? (btn_state[pin]=0) : (btn_state[pin]=1);

		if (btn_state[pin]==0) {return;}

	} else {return;}

	break;

case 2: // OnOnly

	if (pin_value==1) {return;}

	break;

}


MIOS_MIDI_BeginStream();

MIOS_MIDI_TxBufferPut(0x90); // Note Event at channel #1

MIOS_MIDI_TxBufferPut(pin);  // just forward the pin number (0..127)

MIOS_MIDI_TxBufferPut(pin_value ? 0x00 : 0x7f); //

MIOS_MIDI_EndStream();

}

Edited by spongebob
Posted

Ð’ AIN_NotifyChange

поÑтавил вот так (подглÑдел в Traktorizer, main.c)

if (pin==4) if (pin_value >=62 && pin_value <=66) { MIOS_DOUT_PinSet (30,1) ; }else{ MIOS_DOUT_PinSet(30,0); }

еÑли Ñтавить pin_value==64 то её вообще трудно поймать , промаргивает проÑто.

вÑÑ‘ бы нечего тока вот Ñ Ð½Ðµ пойму чето: Ñветодиод Ñтот Ñрабатывает в Ñамом начале движениÑ, по монитору в mios studio Ñто получаетÑÑ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ðµ равно 7 или 8 (b0 04 07 и bo 04 08). при чём и в твоём варианте Ñрабатывал при тех же значениÑÑ….

const unsigned char btn_mode[78]={

0,0,1,1,1,1,1,2,2,1,

2,2,1,2,1,0,0,1,1,0,

1,0,0,0,0,0,0,0,1,0,

4,4,1,0,1,1,0,0,2,2,

1,2,2,1,1,2,1,1,1,1,

1,0,0,0,0,0,0,0,0,0,

1,0,4,4,2,1,1,1,1,1,

4,4,1,1,1,1,1,2};

unsigned char btn_state[78]={

0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0};

\

а Ñто что, и куда Ñувать :blink:

Posted (edited)

маÑÑивы пихай в начало, где переменные

первый маÑÑив - Ñто тип кнопки

второй - ÑоÑтоÑние (только Ð´Ð»Ñ toggle)

про Ñветодио не понÑл немного...

if ((pin==4) && (pin_value >=62 && pin_value <=66)) { MIOS_DOUT_PinSet (30,1);}

else {MIOS_DOUT_PinSet(30,0);}

Edited by spongebob
Posted

понÑл куда))))

режим toggle и on only работают

режим onoff Ñ‰Ð°Ñ Ð¿Ð¾Ð»ÑƒÑ‡Ð°ÐµÑ‚ÑÑ Ñ‚Ð°Ðº: нажал - 7f, отпуÑтил-нечего, нажал второй раз- ничего, отпуÑтил - ничего, нажал 3 раз -7f

00 по второму нажатию не выдаёт

const unsigned char btn_mode[78]={

0,0,1,1,1,1,1,2,2,1,

2,2,1,2,1,0,0,1,1,0,

1,0,0,0,0,0,0,0,1,0,

4,4,1,0,1,1,0,0,2,2,

1,2,2,1,1,2,1,1,1,1,

1,0,0,0,0,0,0,0,0,0,

1,0,4,4,2,1,1,1,1,1,

4,4,1,1,1,1,1,2};

Ñто, Ñ ÐºÐ°Ðº понимаю вроде карты, а как её пользоватьÑÑ ÐµÑли Ñ Ð·Ð°Ñ…Ð¾Ñ‡Ñƒ поменÑть режимы каких нибудь кнопок?

Posted (edited)
про Ñветодио не понÑл немного...

if ((pin==4) && (pin_value >=62 && pin_value <=66)) { MIOS_DOUT_PinSet (30,1);}

else {MIOS_DOUT_PinSet(30,0);}

ну по Ñтрочке он должен зажигатьÑÑ Ð² значении переменного резиÑтора 63,64,65 тобиш по Ñередине, а он зажигаетÑÑ Ð² значении 07,08 тобиш почти в начале , причем в твоём варианте он также зажигалÑÑ Ð¿Ñ€Ð¸ значении 07,08 :huh: вот как то так

з.Ñ‹. Ñ Ð¼Ð°ÑÑивом разобралÑÑ, каждое значение ÑоответÑтвует номеру кнопки по порÑдку :rolleyes:

Edited by Chubaka
Posted

попробуй убрать case 0: break; из switch()

и поÑмотри что будет

Posted

Ртак?

void DIN_NotifyToggle(unsigned char pin, unsigned char pin_value) __wparam

{

if btn_mode[pin]==1 { // Toggle

        if (pin_value) {return;}

        else {  (btn_state[pin]==1) ? (btn_state[pin]=0) : (btn_state[pin]=1);

                if (btn_state[pin]==0) {return;}

                }

}

if btn_mode[pin]==2 { // OnOnly

        if (pin_value) {return;}

}


MIOS_MIDI_BeginStream();

MIOS_MIDI_TxBufferPut(0x90); // Note Event at channel #1

MIOS_MIDI_TxBufferPut(pin);  // just forward the pin number (0..127)

MIOS_MIDI_TxBufferPut(pin_value ? 0x00 : 0x7f); //

MIOS_MIDI_EndStream();

}

Posted

а так ошибку при компилÑции выдает:

main.c:200: syntax error: token -> 'btn_mode' ; column 11

make: *** [_output/main.o] Error 1

Posted (edited)

Ñкомпелировал но

тоже Ñамое :sad:

Edited by Chubaka
Posted

Ñтранно...

а еÑли оÑтавить только

MIOS_MIDI_BeginStream();

MIOS_MIDI_TxBufferPut(0x90); // Note Event at channel #1

MIOS_MIDI_TxBufferPut(pin);  // just forward the pin number (0..127)

MIOS_MIDI_TxBufferPut(pin_value ? 0x00 : 0x7f); //

MIOS_MIDI_EndStream();

?

Posted

нет toggle, нажал -7f, отпуÑтил -00., Ñ‚.е как в первом иÑходнике было

Posted (edited)

так Ñто OnOff :)

Ты же Ñам Ñкидывал что означает что.

OnOff: нажал - 0x7f, отпуÑтил - 0x00

Toggle: нажал - 0x7f, отпуÑтил - ничего, нажал - 0x00, отпуÑтил - ничего, нажал - 0x7f и Ñ‚.д.

OnOnly: нажал - 0x7f, отпуÑтил - ничего

Edited by spongebob

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...