Jump to content

Midibox 64 problem


W0tu
 Share

Recommended Posts

hallo zusammen

hab heute endlich alles fertig gelötet und eingeschaltet

aber auf dem display erscheint "chorus#16" mit zufälligen parameterwerten, habe alle 64 potis wie beschrieben verbunden

ich weiß einfach nicht was ich übersehen habe.

hat jemand einen rat?

gruß sebi

Link to comment
Share on other sites

bin fast am verzweifeln :-\

laut MIOS studio senden meine MB in den Kanälen: 13 - 16, die controller: 93, zufällige signale

die anderen potis scheinen zu funktioniern

habe aber alle gleich verlötet und alles an masse gehängt

ich weiß einfach nicht was ich da noch machen kann ???

Link to comment
Share on other sites

puh!! nur nicht hysterisch werden.

habe den fehler endlich gefunden ein kabel war hinüber, ausgetauscht und es funktioniert ;D

bis auf den encoder, nur ein stück, den ich zu den restlichen buttons gelötet habe.

wie erkennt der core das es sich um einen encoder handelt ???

und noch eine newbie frage wie kann ich die benennung der potis ändern?

danke wotu

Link to comment
Share on other sites

Für was verwendest du den Encoder? Es gibt die Möglichkeit mit ihm im Menü weiter bzw. zurück zu blättern. Du musst dann allerdings eine kleine Änderung in der main.asm vornehmen.

Die Namen der Potis kannst du mit mk_syx ändern. Bei Problemen kannst du mir ja ne PM schicken. Hier ist beschrieben wie´s geht:

http://www.ucapps.de/howto_tools_mbsyx.html

Gruß

Markus

Link to comment
Share on other sites

Da laesst sich etwas zurechtbasteln.

In mios_tables.inc musst Du die Pinbelegung des Encoders eintragen. Am besten ersetzt Du:


#if DEFAULT_ENC_DATAWHEEL < 0
ENC_EOT
#else
[/code] durch:
[code]
#if DEFAULT_ENC_DATAWHEEL < 0
ENC_ENTRY  5,  0,  MIOS_ENC_MODE_DETENTED ; Data Wheel
#else
wenn der Encoder an Pin 16 und 17 angeschlossen ist (es wird von 0 gezaehlt, hier eine Tabelle: http://www.ucapps.de/mios/mios_din_dout_pin_numbers.txt) Nun kannst Du auch schon in USER_ENC_NotifyChange die Encoder-Events zu MIDI Events umwandeln. Bspw.:

USER_ENC_NotifyChange
;; send Note C-3 on left-turn, and C#3 on right-turn
movlw 0x90 ; Note, Channel #1
call MIOS_MIDI_TxBufferPut
movlw 0x3c ; C-3
IFSET MIOS_PARAMETER2, 7, movlw 0x3d ; C#3
call MIOS_MIDI_TxBufferPut
movlw 0x7f
goto MIOS_MIDI_TxBufferPut
[/code] Wenn Du die Noten von einem Taster abhaengig machen moechtest, so fuege noch eine Fallunterscheidung ein. Ich nehme an, dass der Schalter an Pin 34 angeschlossen ist:
[code]
USER_ENC_NotifyChange
movlw 34 ; check status of pin #34
call MIOS_DIN_PinGet
bnz USER_ENC_NotifyChange_1
USER_ENC_NotifyChange_0
;; send Note C-3 on left-turn, and C#3 on right-turn
movlw 0x90 ; Note, Channel #1
call MIOS_MIDI_TxBufferPut
movlw 0x3c ; C-3
IFSET MIOS_PARAMETER2, 7, movlw 0x3d ; C#3
call MIOS_MIDI_TxBufferPut
movlw 0x7f
goto MIOS_MIDI_TxBufferPut

USER_ENC_NotifyChange_1
;; send Note D-3 on left-turn, and D#3 on right-turn
movlw 0x90 ; Note, Channel #1
call MIOS_MIDI_TxBufferPut
movlw 0x3e ; D-3
IFSET MIOS_PARAMETER2, 7, movlw 0x3f ; D#3
call MIOS_MIDI_TxBufferPut
movlw 0x7f
goto MIOS_MIDI_TxBufferPut

Gruss, Thorsten.

Link to comment
Share on other sites

wow :o das ist eine antwort.

hoffe das ich das noch durchschaue wo oder was ist mios_tables.inc?

danke thorsten

dafür das du es möglich machst die egenen vorstelungen vom musizieren umzusetzen

diese internetseite war für mich eine offenbahrung ;D

(wieviel zeit habe ich verschwendet um den perfekten midikontroler zu finden? ::))

gruß

Sebi

Link to comment
Share on other sites

... wenn der Schalter wirklich an Pin34 angeschlossen ist, einfach den bestehenden "USER_ENC_NotifyChange"-Code-Teil durch...

USER_ENC_NotifyChange

movlw 34 ; check status of pin #34

call MIOS_DIN_PinGet

bnz USER_ENC_NotifyChange_1

USER_ENC_NotifyChange_0

;; send Note C-3 on left-turn, and C#3 on right-turn

movlw 0x90 ; Note, Channel #1

call MIOS_MIDI_TxBufferPut

movlw 0x3c ; C-3

IFSET MIOS_PARAMETER2, 7, movlw 0x3d ; C#3

call MIOS_MIDI_TxBufferPut

movlw 0x7f

goto MIOS_MIDI_TxBufferPut

USER_ENC_NotifyChange_1

;; send Note D-3 on left-turn, and D#3 on right-turn

movlw 0x90 ; Note, Channel #1

call MIOS_MIDI_TxBufferPut

movlw 0x3e ; D-3

IFSET MIOS_PARAMETER2, 7, movlw 0x3f ; D#3

call MIOS_MIDI_TxBufferPut

movlw 0x7f

goto MIOS_MIDI_TxBufferPut

...ersetzen

Greets, Roger

Link to comment
Share on other sites

Mit dem Encoder Eintrag (ENC_ENTRY) lag ich uebrigens voellig falsch.

Man traegt hier nicht etwa die beiden Pin Nummern (32, 33) ein, sondern die Shift Register Nummer und die Pin Nummer.

An welchen Pins hast Du eigentlich den Encoder angeschlossen? Wenn wir das wuessten, muessten wir weniger "abstrakte" Hinweise geben. ;-)

Gruss, Thorsten.

Link to comment
Share on other sites

Das ist in dem Fall ein Problem. Encoder müssen an "gerade" PINs angeschlossen sein. Du solltest also den Encoder auf die Pins 8+9 umlöten und den einen Taster von der 8 auf die 10. Damit wäre der Encoder and SR2, Pin 0 (+1) -> ENC_ENTRY  2, 0, MIOS_ENC_MODE_...

Link to comment
Share on other sites

müssen an gerade pins?

das ist eigentlich kein problem danke, was ich aber noch nicht ganz verstehe ist wenn ich die main.asm überschreibe, reicht es main.hex auf die MB64 zu laden? oder wie bekomme ich die änderungen in meine kiste? über syx.? dazu brauch ich perl wenn ich das richtig verstanden habe (funktioniert bei mir nicht, probiere noch ne andere version) oder bin ich immer noch auf dem holzweg?

gruß

sebi

Link to comment
Share on other sites

Hi W0tu

zu den "geraden" Encodern....

638894808_2e921e9841_o.jpg

ich denke die Grafik erklärt alles....linke seite ungerade gelötet, rechts gerade (von 0 gezählt) ;)

Um deine Applikation auf die Box zu schubsen gehst du vor wie hier beschrieben

...main.asm und mios-tables in MPLAB ändern, speichern, compilieren (dadurch wird das neue .hex und .syx file geschrieben).

Du brauchst aber nur eines davon das Du auf Deine Box lädst, je nachdem wie du vorgehen willst lädst Du das hex mit MIOSStudio oder das syx mit MIDIOX... ;)

Grüße

Link to comment
Share on other sites

so hab es ausprobiert

im MPLAB geöffnet geändert und compiliert doch es kommt diese fehlermeldung:

Make: The target "C:\Users\sebi a\Desktop\midibox64_v2_4\main.o" is out of date.

Executing: "C:\Program Files\Microchip\MPASM Suite\MPAsmWin.exe" /q /p18F452 "main.asm" /l"main.lst" /e"main.err"

Error[173]  C:\USERS\SEBI A\DESKTOP\MIDIBOX64_V2_4\MAIN.ASM 712 : Source file path exceeds 62 characters

(C:\USERS\SEBI A\DESKTOP\MIDIBOX64_V2_4\CS_MENU_TABLES_STRUCT.INC)

Halting build on first failure as requested.

BUILD FAILED: Sat Sep 29 20:37:58 2007

habe es auch unverändert versucht doch es bringt die selbe meldung.

was mach ich falsch?

gruß

Sebi

Link to comment
Share on other sites

hab ich nach ein paar experimenten auch kapiert

dumme fragen kann mann stellen ;D

muss ja nur logisch combinieren.

compilieren kann ich nun aber der encoder sendet immer noch in beide richtungen (Channel7,C3 + Channel8, C3) gemeinsam

möchte nur das er nach links und rechts seperat sendent

die pins sind nun auf: SR"2, 10 und 11

im Mplab geöffnet macht das mit dem umschreiben irgentwie sinn

verstehe aber noch nicht wirklich was ich mit was verändere (null programier erfahrung) werd aber weiter forschen ;)

sehr viel kann man ja im main.asm nachlesen

gruß

sebi

Link to comment
Share on other sites

hi

mir sind nach vielen experimenten (zeile ändern, compilieren, raufladen, testen) wieder einige lichter aufgegangen

verstehe nun was diese nummern bedeuten (0x00...) channels/events/velocity

vermute das movlw, movff, call, etc. befehle sind (kann ich die irgentwo ansehen?)

hab das mit dem encoder nachgebastelt

In mios_tables.inc musst Du die Pinbelegung des Encoders eintragen. Am besten ersetzt Du:

#if DEFAULT_ENC_DATAWHEEL < 0
	ENC_EOT
#else
durch:
#if DEFAULT_ENC_DATAWHEEL < 0
	ENC_ENTRY  5,  0,  MIOS_ENC_MODE_DETENTED	; Data Wheel
#else
Nun kannst Du auch schon in USER_ENC_NotifyChange die Encoder-Events zu MIDI Events umwandeln. Bspw.:
USER_ENC_NotifyChange
	;; send Note C-3 on left-turn, and C#3 on right-turn
	movlw	0x90		; Note, Channel #1
	call	MIOS_MIDI_TxBufferPut
	movlw	0x3c		; C-3
	IFSET	MIOS_PARAMETER2, 7, movlw 0x3d ; C#3
	call	MIOS_MIDI_TxBufferPut
	movlw	0x7f
	goto	MIOS_MIDI_TxBufferPut
bei mir sieht es so aus
#if DEFAULT_ENC_DATAWHEEL < 0
	ENC_ENTRY	1,	4,	MIOS_ENC_MODE_DETENTED
USER_ENC_NotifyChange
	movlw	0x97
	call	MIOS_MIDI_TxBufferPut
	movlw	0x3c
	IFSET	MIOS_PARAMETER2, 7, movlw 0x3d
	call	MIOS_MIDI_TxBufferPut
	movlw	0x7f
	goto	MIOS_MIDI_TxBufferPut

aber irgentwas scheint nicht zu stimmen

der encoder sendet ohne unterbrechung note on befehle

was bedeutet die 7 hinter MIOS_PARAMETER2?

werde weiter experimentieren

bin aber um jeden hinweis froh

gruß

Sebi

Link to comment
Share on other sites

Schoen zu sehen, wie Du voran kommst. :)

Die Assembler Befehle findest Du im Datasheet unter http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1335&dDocName=en010296

und die haeufig verwendeten Befehlskombinationen wie IFCLR/IFSET sind im macros.h File gesammelt.

Mit:


movlw 0x3c
IFSET MIOS_PARAMETER2, 7, movlw 0x3d
        call MIOS_MIDI_TxBufferPut
[/code]

erreicht man folgendes: zunaechst wird der Wert 0x3c in das Arbeitsregister (W) geschrieben. Wenn in der Variablen MIOS_PARAMETER2 bit #7 gesetzt ist, dann wird der Wert mit 0x3d ueberschrieben.

MIOS_MIDI_TxBufferPut sendet dann anschliessend den aktuellen Wert.

MIOS_PARAMETER2,7 ist bei einer Linksdrehung gesetzt (der "incrementer" ist in diesem Fall negativ, also bspw. 0xff. Bei einer Rechtdrehung ist er positiv, also bspw. 0x01 - Stichwort "signed values")

der encoder sendet ohne unterbrechung note on befehle

Das deutet darauf hin, dass mit dem DIN Modul etwas nicht stimmt. Werden die Werte auch dann gesendet, wenn der Encoder nicht angeschlossen ist? Dann ueberpruefe mal die Pull-Up Widerstaende an den digitalen Eingaengen.

Gruss, Thorsten.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...