MTE Posted June 9, 2006 Author Report Share Posted June 9, 2006 Hialsodu benutzt einen ganz normalen encoder für die wheels, oder ?ich habe mir diese gekauft --> http://www.pollin.de/shop/detail.php?pg=NQ==&a=Njg2OTU3OTk=und die Rasterung entfernt --> http://www.midibox.org/forum/index.php?topic=6693.0ist es nicht eigentlich egal, an welche SR man die encoder anschliesst ?in meiner Firmware, welche Wild Weasel erstellt hat sind die encoder auf die ersten 2 SRs definiert, also hab ich indemfall auf diese auch gelötet...is ja Jacke wie Hose eigentlich.... ;Dich habe ein jog dial ( typ Alps ) aus einem doppel-dvd- player und möchte das innere rad und den äusseren shuttle ring benutzen, um durch das menü im traktor zu wandern, ist dies auch schon realisiert ?dürfte vermutlich dieses Jog-Wheel hier sein, hab hier auch noch eins rumliegen das verbau ich in meinen MB-SEQ ;) http://www3.alps.co.jp/WebObjects/catalog.woa/PDF/E/Switch/Encoder/SRGP/SRGP.PDFrealisiert hat es auch Wild Weasel eben,,,guggst du hier --> http://www.midibox.org/forum/index.php?topic=3852.0da hat er auch die gleichen ALPS Jog-Shuttles verbaut :)Wild Weasel ist einfach unser Mann ;D ;D oder Frau ??? ;D :o ::) GreetzMTE Quote Link to comment Share on other sites More sharing options...
ranger930 Posted June 9, 2006 Report Share Posted June 9, 2006 Hi,danke für deine Rückmeldung, bin hald immernoch mit dem hardware- design beschäftigt,( siehe Traktor controller design unter der rubrik design concept )mit der Software habe ich mich bislang noch nicht wirklich befasst, habe aber schon einen 8051 mit C programmiert,ein wenig assembler sollte auch gehen,mfgranger930ps.: bin schon ganz heiss auf deine bilder ! Quote Link to comment Share on other sites More sharing options...
ranger930 Posted June 9, 2006 Report Share Posted June 9, 2006 lol,die deutschen haben gewonnen,is aber ein anderes thema,kontrol dj, ein super geiles pult mit unwiderstehlichen wheels ist bekannt ? , das problem ist die herstellung,meine idee war ursprünglich diese wheels aus alu zu fertigen, habe aber selbst keine drehbank,zurück zu kontrol dj,hab ein video gesehen, scratch und pitch bend, nur geil, auf eine antwort von hersteller des kontrol dj warte ich leider noch vergebens, 108mm alps encoder, hast du alle module zusammengelötetet ?mfg ranger930 Quote Link to comment Share on other sites More sharing options...
MTE Posted June 10, 2006 Author Report Share Posted June 10, 2006 LöhöL, hier war auch Mega-Fussballer-Gezeter *kalaschnikovpackdurchdiestrasserennJo das Video zu KDJ hab ich auch gesehen....sehr sehr geiles Teil, die Scratch Function will ich auch unbedingt haben....ist sicher auch nur ne kleine Programmierung, aber da bn ich noch weit entfernt.hast du alle module zusammengelötetet ?bezieht sich die Frage aufs WARUM, oder SCHON FERTIG ??? *gIch hab sie alle gelötet weil ich vergaß Buchsenleisten zu bestellen....hält eh besser wenn man sie lötet ;)Fertig isse soweit....fehlt nur noch die Button On/Off und Scratch-Geschichte...LEDs noch verlöten....Wheel Räder bauen...Tutti :)Sollte bis zum 30. fertig werden, da machen wir ne Outdoor-Psy-Party *RummsschebberGrüßeMTE Quote Link to comment Share on other sites More sharing options...
ranger930 Posted June 10, 2006 Report Share Posted June 10, 2006 Moin,trans- poser kenn ich nicht, bitte um eine kurze erklärung,ich habe kein display gesehen, hast du keins benutzt, zb. zur programmierung und kontrolle ?mfg ranger930, Quote Link to comment Share on other sites More sharing options...
MTE Posted June 10, 2006 Author Report Share Posted June 10, 2006 Meinte "Transpose" ;)ich habe kein display gesehen, hast du keins benutzt, zb. zur programmierung und kontrolle ?Doch ich benutze immer ein LCD zum debuggen, geht ja gar net ohne eigentlich...GrüßeMTE Quote Link to comment Share on other sites More sharing options...
MTE Posted June 11, 2006 Author Report Share Posted June 11, 2006 Aargh *KopfrauchIch versuch nun seit 2 Tagen die Buttons zu Programmieren, aber ohne deutsche Anleitung sehe ich da schwarzvoid DIN_NotifyToggle(unsigned char pin, unsigned char pin_value) __wparamdort stelle ich vermutlich die Parameter ein....nur wie ???mit if und else hab ich schon rumgespielt, aber bisher ohne Erfolgich möchte einfach folgendes machen ....Beispiel:wenn Taster 5 gedrückt wird soll er an bleiben...wieder gedrückt soll er ausgehen wenn Taster 6 gedrückt wird soll er an bleiben aber T5 ausgehen....das gleiche soll mit den dazugehörigen LEDs natürlich geschehen.kann mir jemand kurz eine Zeile und die Parameter erklären....den Rest dürfte ich dann selbst erkennen.Please HELP :-[GrüßeMTEP.S.:Ich bin nicht dumm, stelle mich nur manchmal dumm an ;D Quote Link to comment Share on other sites More sharing options...
Wild_Weasel Posted June 11, 2006 Report Share Posted June 11, 2006 Das die Taste "kleben" bleibt kannst du in Traktor einstellen -> control type: hold oder toggle.Du musst hold nehmen.Das mit den Leds ist ein schwierigeres unterfangen.http://www.ucapps.de/mios_c_set_dout.htmlDas steht eh alles drinnen. Speziell halt das hier // Note Off MIOS_DOUT_PinSet(pin, 0); } else { // Note On MIOS_DOUT_PinSet(pin, 1);Wobei die variable pin halt von dem Taster übernommen werden muss.m. Quote Link to comment Share on other sites More sharing options...
MTE Posted June 11, 2006 Author Report Share Posted June 11, 2006 Hiweiss schon das man das im Traktor einstellen kann, nur was bringts mir wenns im Traktor geholdet ist und in der Box nicht, dann leuchtet ja die LED in der Box nicht...es sollte ja sozusagen 1:1 mit der Boxeinstellung sein, damit man nicht die ganze Zeit auf den Bildschirm schauen muss, ob der Taster nun an ist oder net :)GrüßeMTE Quote Link to comment Share on other sites More sharing options...
TK. Posted June 11, 2006 Report Share Posted June 11, 2006 Das Toggeln von Parameterwerten ist ziemlich trivial: erstelle eine Variable, die den Toggle-Status enthaelt, und aendere den Wert nur dann, wenn die entspr. Taste gedrueckt wurde. Die Variable kann auch von mehreren Tastern modifiziert werden... ich denke, wenn Du einfach mal in diese Richtung weiterprogrammierst, kommst Du schon sehr schnell dahinterGruss, Thorsten. Quote Link to comment Share on other sites More sharing options...
MTE Posted June 11, 2006 Author Report Share Posted June 11, 2006 heheihr macht es mir nicht einfach, aber das ist ganz gut so.... :)Ich steig da schon noch dahinter, um UCapps zu kapieren hab ich mit Duden aufm Schoß auch nur 2 Monate gebraucht *gGrüßeMTE Quote Link to comment Share on other sites More sharing options...
MTE Posted June 13, 2006 Author Report Share Posted June 13, 2006 @RangerHast du von dem KontrolDJ-Typen schon ne antwort gekriegt ??GrüßeMTE Quote Link to comment Share on other sites More sharing options...
ranger930 Posted June 13, 2006 Report Share Posted June 13, 2006 Moin,leider nicht, schweigen im Walde,wahrscheinlich will er keine jogwheels verkaufen,denn er kennt bestimmt auch dieses forum, möchte aber seinen Controller verkaufen, kann ich ja verstehen, aber antworten könnte er trotzdem.ich versuche jetzt jemanden zu finden, der mir aus Alu- Rundmaterial so etwas drehen kann, dort kommt dann ein encoder rein, ich bestelle mir für meinen Controller jetzt aber erstmal die Teile, löte alles zusammen, habe Reverse für encoder eingeplant,Ach ja, spannend wird auch die Frontplatte, kaufen ist sehr teuer, deshalb habe ich mir aus dem Baumarkt eine 3mm Hartschaumplatte geholt ( ca 5 Euro ),mal sehen wie ich dort die Faderschlitze und eckigen Auschnitte hinein bekomme,gibt es auch mit einer dünnen aluschicht bei (x)bay, heisst dann dort "Dibond",zeitweise recht günstig erhältlich,wie weit bist Du mit Deiner Programmierung ?Mfg ranger930ps.: ( Timmendorfer Strand, Wasser 16 Grad, Luft 28 Grad, Sonne satt ) Quote Link to comment Share on other sites More sharing options...
MTE Posted June 13, 2006 Author Report Share Posted June 13, 2006 HiAls Jogwheels hab ich nun 6 CDs aneinander geklebt, darauf kleb ich dann noch ne Gummimatte....ich lass das mal mit der Beleuchtung...Mit der Programmierung komme ich nur träge voran, das Grundkonzept hab ich nu mal studiert und soweit verstanden, nur wie man diverse Zeilen definiert....kommt noch :)Dibond......sehr interessantes Material...werf ich mal in die Testliste hier....werde in ferner Zukunft mit nem Kollegen ein Frontplattengeschäft aufziehen...aber wir sind noch ebbes in der Forschung...kann noch ne weile dauern.....Hier Bodensee....Luft - zu stickig....Wassertemp - warm und Titten satt :PGrüßeMTE Quote Link to comment Share on other sites More sharing options...
MTE Posted June 13, 2006 Author Report Share Posted June 13, 2006 Argh ich spring gleich ausm Kellerfenster MIOS_SRIO_NumberSet(16); Wenn ich die Douts alle aktiviert haben will muss das dann auf 16 stehen ?das hiese dort sind DINs und DOUTs zusammengefasst ??Wenn ich also Bsp. Wert 12 nehme wären 8 DIN-SRs und 4 DOUT-SRs aktiv ? Quote Link to comment Share on other sites More sharing options...
Wild_Weasel Posted June 13, 2006 Report Share Posted June 13, 2006 Nein. SR steht für shiftregister. Also Schieberegister. Dieser Eintrag definiert nur wieviele SR bzw. Led Ausgänge es gibt.regardsm. Quote Link to comment Share on other sites More sharing options...
MTE Posted June 14, 2006 Author Report Share Posted June 14, 2006 Checkt mal bitte meinen code,irgendwo is der Wurm drin, kriege die DOUTs net zum laufen, mit "MidiIO" hab ich die module alle mitm Multimeter durchgeprüft....funzenaber hier gehen sie komischerweise netMAIN.C#include "cmios.h"#include "pic18f452.h"unsigned char shuttle_1_alt;unsigned char shuttle_2_alt;void Init(void) __wparam{ // define number of shift registers MIOS_SRIO_NumberSet(16); MIOS_AIN_Muxed(); MIOS_AIN_NumberSet(25); MIOS_AIN_DeadbandSet(7); // update frequency of SRIO chain MIOS_SRIO_UpdateFrqSet(1); // ms}void Tick(void) __wparamvoid Timer(void) __wparamvoid DISPLAY_Init(void) __wparam{ MIOS_LCD_Clear(); MIOS_LCD_CursorSet(0x00); MIOS_LCD_PrintCString(" Traktorizer"); MIOS_LCD_CursorSet(0x40); MIOS_LCD_PrintCString(" by MTE");}void DISPLAY_Tick(void) __wparamvoid MPROC_NotifyReceivedEvnt(unsigned char evnt0, unsigned char evnt1, unsigned char evnt2) __wparam{ MIOS_LCD_Clear(); MIOS_LCD_PrintCString("Received:"); MIOS_LCD_CursorSet(0x40); MIOS_LCD_PrintHex2(evnt0); MIOS_LCD_PrintHex2(evnt1); MIOS_LCD_PrintHex2(evnt2);}void MPROC_NotifyFoundEvent(unsigned entry, unsigned char evnt0, unsigned char evnt1, unsigned char evnt2) __wparamvoid MPROC_NotifyTimeout(void) __wparamvoid MPROC_NotifyReceivedByte(unsigned char byte) __wparamvoid SR_Service_Prepare(void) __wparamvoid SR_Service_Finish(void) __wparamvoid DIN_NotifyToggle(unsigned char pin, unsigned char pin_value) __wparam{ MIOS_MIDI_BeginStream(); MIOS_MIDI_TxBufferPut(0x90); MIOS_MIDI_TxBufferPut(pin); MIOS_MIDI_TxBufferPut(pin_value ? 0x00 : 0x7f); MIOS_MIDI_EndStream(); MIOS_LCD_Clear(); MIOS_LCD_PrintCString("Button "); MIOS_LCD_PrintBCD4(pin);}void ENC_NotifyChange(unsigned char encoder, char incrementer) __wparam{ if (shuttle_2_alt == 1 && incrementer < 0 && encoder == 0){ MIOS_MIDI_TxBufferPut(0x94); MIOS_MIDI_TxBufferPut(0x70); MIOS_MIDI_TxBufferPut(0x7f); MIOS_LCD_Clear(); MIOS_LCD_PrintCString("Jog Wheel "); MIOS_LCD_PrintBCD4(encoder); MIOS_LCD_CursorSet(0x40); MIOS_LCD_PrintCString("Rueckwaerts"); MIOS_Delay(25); MIOS_MIDI_TxBufferPut(0x94); MIOS_MIDI_TxBufferPut(0x70); MIOS_MIDI_TxBufferPut(0x00);} if (shuttle_2_alt == 1 && incrementer > 0 && encoder == 0){ MIOS_MIDI_TxBufferPut(0x94); MIOS_MIDI_TxBufferPut(0x71); MIOS_MIDI_TxBufferPut(0x7f); MIOS_LCD_Clear(); MIOS_LCD_PrintCString("Jog Wheel "); MIOS_LCD_PrintBCD4(encoder); MIOS_LCD_CursorSet(0x40); MIOS_LCD_PrintCString("Vorwaerts"); MIOS_Delay(25); MIOS_MIDI_TxBufferPut(0x94); MIOS_MIDI_TxBufferPut(0x71); MIOS_MIDI_TxBufferPut(0x00); } if (shuttle_2_alt == 0 && incrementer < 0 && encoder == 0){ MIOS_MIDI_TxBufferPut(0x94); MIOS_MIDI_TxBufferPut(0x72); MIOS_MIDI_TxBufferPut(0x7f); MIOS_LCD_Clear(); MIOS_LCD_PrintCString("Jog Wheel: "); MIOS_LCD_PrintBCD4(encoder); MIOS_LCD_CursorSet(0x40); MIOS_LCD_PrintCString("Rueckwaerts"); MIOS_Delay(50); MIOS_MIDI_TxBufferPut(0x94); MIOS_MIDI_TxBufferPut(0x72); MIOS_MIDI_TxBufferPut(0x00);} if (shuttle_2_alt == 0 && incrementer > 0 && encoder == 0){ MIOS_MIDI_TxBufferPut(0x94); MIOS_MIDI_TxBufferPut(0x73); MIOS_MIDI_TxBufferPut(0x7f); MIOS_LCD_Clear(); MIOS_LCD_PrintCString("Jog Wheel: "); MIOS_LCD_PrintBCD4(encoder); MIOS_LCD_CursorSet(0x40); MIOS_LCD_PrintCString("Vorwaerts"); MIOS_Delay(50); MIOS_MIDI_TxBufferPut(0x94); MIOS_MIDI_TxBufferPut(0x73); MIOS_MIDI_TxBufferPut(0x00); } if (shuttle_1_alt == 1 && incrementer < 0 && encoder == 1){ MIOS_MIDI_TxBufferPut(0x94); MIOS_MIDI_TxBufferPut(0x04); MIOS_MIDI_TxBufferPut(0x7f); MIOS_LCD_Clear(); MIOS_LCD_PrintCString("Jog Wheel "); MIOS_LCD_PrintBCD4(encoder); MIOS_LCD_CursorSet(0x40); MIOS_LCD_PrintCString("Rueckwaerts"); MIOS_Delay(25); MIOS_MIDI_TxBufferPut(0x94); MIOS_MIDI_TxBufferPut(0x04); MIOS_MIDI_TxBufferPut(0x00);} if (shuttle_1_alt == 1 && incrementer > 0 && encoder == 1){ MIOS_MIDI_TxBufferPut(0x94); MIOS_MIDI_TxBufferPut(0x05); MIOS_MIDI_TxBufferPut(0x7f); MIOS_LCD_Clear(); MIOS_LCD_PrintCString("Jog Wheel "); MIOS_LCD_PrintBCD4(encoder); MIOS_LCD_CursorSet(0x40); MIOS_LCD_PrintCString("Vorwaerts"); MIOS_Delay(25); MIOS_MIDI_TxBufferPut(0x94); MIOS_MIDI_TxBufferPut(0x05); MIOS_MIDI_TxBufferPut(0x00); } if (shuttle_1_alt == 0 && incrementer < 0 && encoder == 1){ MIOS_MIDI_TxBufferPut(0x94); MIOS_MIDI_TxBufferPut(0x06); MIOS_MIDI_TxBufferPut(0x7f); MIOS_LCD_Clear(); MIOS_LCD_PrintCString("Jog Wheel: "); MIOS_LCD_PrintBCD4(encoder); MIOS_LCD_CursorSet(0x40); MIOS_LCD_PrintCString("Rueckwaerts"); MIOS_Delay(50); MIOS_MIDI_TxBufferPut(0x94); MIOS_MIDI_TxBufferPut(0x06); MIOS_MIDI_TxBufferPut(0x00);} if (shuttle_1_alt == 0 && incrementer > 0 && encoder == 1){ MIOS_MIDI_TxBufferPut(0x94); MIOS_MIDI_TxBufferPut(0x07); MIOS_MIDI_TxBufferPut(0x7f); MIOS_LCD_Clear(); MIOS_LCD_PrintCString("Jog Wheel: "); MIOS_LCD_PrintBCD4(encoder); MIOS_LCD_CursorSet(0x40); MIOS_LCD_PrintCString("Vorwaerts"); MIOS_Delay(50); MIOS_MIDI_TxBufferPut(0x94); MIOS_MIDI_TxBufferPut(0x07); MIOS_MIDI_TxBufferPut(0x00); } }void AIN_NotifyChange(unsigned char pin, unsigned int pin_value) __wparam{ MIOS_LCD_Clear(); MIOS_LCD_CursorSet(0x00); MIOS_LCD_PrintCString("Fader / Pot"); MIOS_LCD_CursorSet(0x40); MIOS_LCD_PrintBCD4(pin); MIOS_LCD_PrintBCD4(MIOS_AIN_Pin7bitGet(pin)); MIOS_MIDI_BeginStream(); MIOS_MIDI_TxBufferPut(0xb0); MIOS_MIDI_TxBufferPut(pin); MIOS_MIDI_TxBufferPut(MIOS_AIN_Pin7bitGet(pin)); MIOS_MIDI_EndStream(); }mios_tables.inc; ;; MIDI Trigger entry structureMT_ENTRY MACRO event_0, event_1 dw (event_1 << 8) | event_0 ENDMMT_EOT MACRO dw 0xffff ENDM global _MIOS_MPROC_EVENT_TABLE_MIOS_MPROC_EVENT_TABLEMIOS_MPROC_EVENT_TABLE ;; entry 0x00-0x0f MT_EOT MT_EOT.....;; --------------------------------------------------------------------------;; In this table DIN pins have to be assigned to rotary encoders for theENC_ENTRY MACRO sr, din_0, mode dw (mode << 8) | (din_0 + 8*(sr-1)) ENDM ENC_EOT MACRO dw 0xffff ENDM global _MIOS_ENC_PIN_TABLE_MIOS_ENC_PIN_TABLEMIOS_ENC_PIN_TABLE ;; encoders 1-16 ;; SR Pin Mode ENC_ENTRY 1, 0, MIOS_ENC_MODE_NON_DETENTED ; ENC_ENTRY 1, 2, MIOS_ENC_MODE_NON_DETENTED ; ENC_EOT ENC_EOT...... org 0x3300 ; never change the origin!GrüßeMTE Quote Link to comment Share on other sites More sharing options...
audiocommander Posted June 14, 2006 Report Share Posted June 14, 2006 Das könnte vielleicht daran liegen, dass du keine DOUT-Funktion aufrufst (kann aber auch sein, dass ich die vor lauter Code nicht sehe... es ist generell keine schlechte Idee, Codeschnipsel auf das Relevante zu kürzen ;) )Grüße,Michael Quote Link to comment Share on other sites More sharing options...
MTE Posted June 14, 2006 Author Report Share Posted June 14, 2006 sorry....habs jetz nochma oben ebbes gekürzt... :) Quote Link to comment Share on other sites More sharing options...
audiocommander Posted June 14, 2006 Report Share Posted June 14, 2006 ...ist trotzem noch kein MIOS_DOUT_Set() drin ;)Grüße,Michael Quote Link to comment Share on other sites More sharing options...
MTE Posted June 14, 2006 Author Report Share Posted June 14, 2006 aha da wird mir so einiges klar...wo finde ich diese oberbefehle ?unter MIOS Functions Reference (C Version) finde ich die nicht Quote Link to comment Share on other sites More sharing options...
audiocommander Posted June 14, 2006 Report Share Posted June 14, 2006 doch :)MIOS_DOUT_PinGetMIOS_DOUT_PinSetMIOS_DOUT_PinSet0MIOS_DOUT_PinSet1MIOS_DOUT_SRGetMIOS_DOUT_SRSetEntweder du nimmst [tt]void MIOS_DOUT_PinSet(unsigned char pin, unsigned char value)[/tt], wobei value 1 (an) oder 0 (aus) ist, oder aber:[tt]void MIOS_DOUT_PinSet1(unsigned char pin)[/tt] für einschalten und [tt]void MIOS_DOUT_PinSet0(unsigned char pin)[/tt] für's ausschalten :)Grüße,Michael Quote Link to comment Share on other sites More sharing options...
MTE Posted June 14, 2006 Author Report Share Posted June 14, 2006 hatte diesen befehl gesucht "MIOS_DOUT_Set() " ;)aber egal...ich hab jetz ungef. 30 oder mehr varianten probiert, ich kriegs einfach net gebacken.....PAUSE Quote Link to comment Share on other sites More sharing options...
audiocommander Posted June 14, 2006 Report Share Posted June 14, 2006 naja, mehr als oben kann ich leider auch nicht schreiben, das DOUT_Set() war nur als allgemeiner "Bezeichner" gemeint für MIOS_DOUT_PinEinschalten()...sozusagen.In deinem Code wird nirgendswo diese Zeile aufgerufen:MIOS_DOUT_PinSet1(0); // schaltet pin1 am DOUT board einschaltenMIOS_DOUT_PinSet1(2); // schaltet pin3 am DOUT board einMIOS_DOUT_PinSet0(5); // schaltet pin6 am DOUT board ausmehr isses wirklich nicht. Aber wenn du die Funktion nicht aufrufst, dann ist es irgendwie klar, dass sich nix schaltet...In der Funktionsreferenz muss du auch unter C-IN und C-OUT schauen, da wird genauer erklärt, welche Werte du hinschicken musst und welche die Funktion zurückgibt... Quote Link to comment Share on other sites More sharing options...
MTE Posted June 15, 2006 Author Report Share Posted June 15, 2006 Jo mächtigen Dank mal für die viele Hilfe, ich hoffe ich geh euch net aufn Sack mit meinen Noob-Fragen...komme mittlerweile schon um einiges besser voran :)mein Fehler war ich schrieb die Klammern falsch ( anstelle von { ::)Hab grad in der Wiki die Code:Blocks-Geschichte entdeckt....werd mich da mal reinarbeiten...Langsam machts richtig Laune damit rumzuhacken :)GrüßeMTE Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.