Jump to content

Flexibler Encoder Handler


avogra
 Share

Recommended Posts

Hallo,

so, jetzt hab ich mich endlich mal an die versprochene Grafik für die neuen Encoder-Modes gemacht. Ist das so verständlich? Soll ich den Teil für die Custom modes so drin lassen oder lieber als extra eintrag in die wiki?

Grüße, Alex

post-6710-125622861365_thumb.gif

  • Like 1
Link to comment
Share on other sites

  • 1 year later...

Liebe Leute, ist es möglich, das Verhalten meiner Encoder softwaremäßig umzukehren/"umzupolen", also einen Increment Befehl in einen Decrement Befehl und anders herum zu wandeln?

Ich habe gestern meine fertig geätzten Platinen für meine Midibox LC bekommen, und mußte feststellen, daß die Encoder zwar funktionieren, aber bei der Steuerung der Pans meiner DAW falsch "gepolt" sind (Linksdrehung läßt den Pan Regler nach rechts wandern...). Anstatt auf meiner Platine die Leiterbahnen durch zu schneiden und Litzenverbindungen zu löten, würde ich lieber eleganter vorgehen. Wo genau muß ich da ansetzen, im MIOS oder in der LC Applikation (oder gar beides)?

Vielen Dank im Voraus,

Emre

Link to comment
Share on other sites

Ich denke, ich hab es hinbekommen. Ich habe einfach folgenden Block im mios_enc.inc wie folgt geändert:

;; if Bit N of ENC_MODE is set, according ENC_STAT triggers Do_Inc / Do_Dec

;;

;; Bit N 7 6 5 4

;; ENC_STAT 8 E 7 1

;; DEC <- <- <- <-

;; Pin A ____|-------|_______

;; Pin B ________|-------|___

;; INC -> -> -> ->

;; ENC_STAT 2 B D 4

;; Bit N 0 1 2 3

;; Binary tree translates ENC_STAT to N and calls Do_Inc / Do_Dec, if

;; related bit N is set

;; This method is based on ideas from Avogra

;; MEMO: IRQ_TMP4 = ENC_STAT, TABLAT = ENC_MODE

BRA_IFSET IRQ_TMP4, 3, ACCESS, MIOS_ENC_Do_89ABCDEF

MIOS_ENC_Do_01234567

BRA_IFSET IRQ_TMP4, 2, ACCESS, MIOS_ENC_Do_4567

MIOS_ENC_Do_0123

BRA_IFSET IRQ_TMP4, 1, ACCESS, MIOS_ENC_Do_23

MIOS_ENC_Do_01

;; 0: Do_Nothing

;; 1: Do_Dec

BRA_IFCLR IRQ_TMP4, 0, ACCESS, MIOS_ENC_Do_Nothing

BRA_IFSET TABLAT, 4, ACCESS, MIOS_ENC_Do_Inc

rgoto MIOS_ENC_Do_Nothing

MIOS_ENC_Do_23

;; 2: Do_Inc

;; 3: Do_Nothing

BRA_IFSET IRQ_TMP4, 0, ACCESS, MIOS_ENC_Do_Nothing

BRA_IFSET TABLAT, 0, ACCESS, MIOS_ENC_Do_Dec

rgoto MIOS_ENC_Do_Nothing

MIOS_ENC_Do_4567

BRA_IFSET IRQ_TMP4, 1, ACCESS, MIOS_ENC_Do_67

MIOS_ENC_Do_45

;; 4: Do_Inc

;; 5: Do_Nothing

BRA_IFSET IRQ_TMP4, 0, ACCESS, MIOS_ENC_Do_Nothing

BRA_IFSET TABLAT, 3, ACCESS, MIOS_ENC_Do_Dec

rgoto MIOS_ENC_Do_Nothing

MIOS_ENC_Do_67

;; 6: Do_Nothing

;; 7: Do_Dec

BRA_IFCLR IRQ_TMP4, 0, ACCESS, MIOS_ENC_Do_Nothing

BRA_IFSET TABLAT, 5, ACCESS, MIOS_ENC_Do_Inc

rgoto MIOS_ENC_Do_Nothing

MIOS_ENC_Do_89ABCDEF

BRA_IFSET IRQ_TMP4, 2, ACCESS, MIOS_ENC_Do_CDEF

MIOS_ENC_Do_89AB

BRA_IFSET IRQ_TMP4, 1, ACCESS, MIOS_ENC_Do_AB

MIOS_ENC_Do_89

;; 8: Do_Dec

;; 9: Do_Nothing

BRA_IFSET IRQ_TMP4, 0, ACCESS, MIOS_ENC_Do_Nothing

BRA_IFSET TABLAT, 7, ACCESS, MIOS_ENC_Do_Inc

rgoto MIOS_ENC_Do_Nothing

MIOS_ENC_Do_AB

;; A: Do_Nothing

;; B: Do_Inc

BRA_IFCLR IRQ_TMP4, 0, ACCESS, MIOS_ENC_Do_Nothing

BRA_IFSET TABLAT, 1, ACCESS, MIOS_ENC_Do_Dec

rgoto MIOS_ENC_Do_Nothing

MIOS_ENC_Do_CDEF

BRA_IFSET IRQ_TMP4, 1, ACCESS, MIOS_ENC_Do_EF

MIOS_ENC_Do_CD

;; C: Do_Nothing

;; D: Do_Inc

BRA_IFCLR IRQ_TMP4, 0, ACCESS, MIOS_ENC_Do_Nothing

BRA_IFSET TABLAT, 2, ACCESS, MIOS_ENC_Do_Dec

rgoto MIOS_ENC_Do_Nothing

MIOS_ENC_Do_EF

;; E: Do_Dec

;; F: Do_Nothing

BRA_IFSET IRQ_TMP4, 0, ACCESS, MIOS_ENC_Do_Nothing

BRA_IFSET TABLAT, 6, ACCESS, MIOS_ENC_Do_Inc

;; rgoto MIOS_ENC_Do_Nothing

MIOS_ENC_Do_Nothing

MIOS_ENC_Do_Return

tblrd*- ; switch back to first byte of entry

tblrd*

rgoto MIOS_ENC_AtomicHandler_Return

Dabei habe ich immer MIOS_ENC_Do_Dec und MIOS_ENC_Do_Inc miteinander ausgewechselt. Weiß zwar nicht, ob das der "richtige Weg" ist, aber meine Pan Regler funktionieren jetzt wie gewollt.

Grüße, Emre

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...