Jump to content

Recommended Posts

Posted (edited)

Hello,

Can some one help me with changing the CS_MENU_DIN_TABLE on the MBFM for getting the row buttons on another DIN board. I can't get the interrupt service routine working and just want to use a second DIN board instead of going in to the DOUT for these buttons.

Here is the table

CS_MENU_DIN_TABLE

        ;;              Function name           SR#     Pin#

        DIN_ENTRY       CS_MENU_BUTTON_Dec,      1,      0      ; only valid if rotary encoder not assigned to these pins

        DIN_ENTRY       CS_MENU_BUTTON_Inc,      1,      1      ; (see mios_tables.inc) and CS_MENU_USE_INCDEC_BUTTONS == 1

        DIN_ENTRY       CS_MENU_BUTTON_Esc,      1,      2


        DIN_ENTRY       CS_MENU_BUTTON_Sel1,     1,      3

        DIN_ENTRY       CS_MENU_BUTTON_Sel2,     1,      4

        DIN_ENTRY       CS_MENU_BUTTON_Sel3,     1,      5

        DIN_ENTRY       CS_MENU_BUTTON_Sel4,     1,      6

        DIN_ENTRY       CS_MENU_BUTTON_Sel5,     1,      7

        DIN_ENTRY       CS_MENU_BUTTON_Sel6,     2,      0

        DIN_ENTRY       CS_MENU_BUTTON_Sel7,     2,      1

        DIN_ENTRY       CS_MENU_BUTTON_Sel8,     2,      2

        DIN_ENTRY       CS_MENU_BUTTON_Cfg,      2,      3


        DIN_ENTRY       CS_MENU_BUTTON_InsOP1,   2,      4

        DIN_ENTRY       CS_MENU_BUTTON_InsOP2,   2,      5

        DIN_ENTRY       CS_MENU_BUTTON_InsOP3,   2,      6

        DIN_ENTRY       CS_MENU_BUTTON_InsOP4,   2,      7

        DIN_ENTRY       CS_MENU_BUTTON_InsOPSel, 3,      0


        ;; the M_Row[1234] buttons are handled from an interrupt service routine!

        DIN_ENTRY_EOT



; ==========================================================================

;  This short table lists the SR/pin numbers of the four

;  Matrix Row Select Buttons. 

;  Since these buttons are multiplexed (4 DOUT pins -> 1 DIN pin) to save

;  one DIN shift register, we have to define the DIN pin and 4 DOUT pins

;  which are connected to these buttons (see also schematic)

; ==========================================================================

DIO_M_COL_ENTRY MACRO sr0, pin0, sr1, pin1, sr2, pin2, sr3, pin3, sr4, pin4, sr5, pin5

        db      (pin0 + 8*(sr0-1)), (pin1 + 8*(sr1-1)), (pin2 + 8*(sr2-1)), (pin3 + 8*(sr3-1)), (pin4 + 8*(sr4-1)), (pin5 + 8*(sr5-1))

        ENDM


DIO_M_ROW_ENTRY MACRO sr_in, pin_in, sr0, pin0, sr1, pin1, sr2, pin2, sr3, pin3

        db      (pin_in + 8*(sr_in-1)), (pin0 + 8*(sr0-1)), (pin1 + 8*(sr1-1)), (pin2 + 8*(sr2-1)), (pin3 + 8*(sr3-1))

        ENDM


DIO_M_TABLE

        ;; --> DIN <-- pins of the 6 column select buttons

        ;;               Col1 SR/Pin, Col2 SR/Pin,  Col3 SR/Pin,  Col4 SR/Pin,  Col5 SR/Pin,  Col6 SR/Pin

        DIO_M_COL_ENTRY  4, 2,        4, 3,         4, 4,         4, 5,         4, 6,         4, 7


        ;; --> DOUT <-- pins of the 6 LED columns

        ;;               Col1 SR/Pin, Col2 SR/Pin,  Col3 SR/Pin,  Col4 SR/Pin,  Col5 SR/Pin,  Col6 SR/Pin

        DIO_M_COL_ENTRY  2, 6,        2, 7,         3, 0,         3, 1,         3, 2,         3, 3


        ;; --> 1*DIN/4*DOUT <-- pins of the 4 row select buttons

        ;;               DIN SR/Pin,  Row1 SR/Pin,  Row2 SR/Pin,  Row3 SR/Pin,  Row4 SR/Pin

        DIO_M_ROW_ENTRY  3, 1,        2, 2,         2, 3,         2, 4,         2, 5



; ==========================================================================

;  The following table defines all available DOUT pins with the appr.

;  register and bit which is assigned to the pin

;  CS_MENU_LED_Update uses this table to update all LEDs

; 

;  The register name and bit number can be found on the left, 

;  the shift register and pin number on the right side.

;

;  SR/pin numbers:

;     SR =  1 for the first DOUT shift register

;     SR =  2 for the second DOUT shift register

;     ...

;     SR = 16 for the last DOUT shift register

;

;     Pin = 0 for the D7 output pin of the shift register

;     Pin = 1 for the D6 output pin of the shift register

;     ...

;     Pin = 7 for the last output pin (D0) of the shift register

;

;  Set the SR and pin number to 0 if a LED function should not be used

;

;  The table must end with DOUT_ENTRY_EOT!

; ==========================================================================


DOUT_ENTRY MACRO reg, bit, sr, pin

                dw      reg, bit | ((pin + 8*(sr-1)) << 8)

        ENDM


DOUT_ENTRY_EOT MACRO

        dw      0x0000, 0x0000

        ENDM


CS_MENU_DOUT_TABLE

        ;;              Register and bit                        SR#     Pin#      Description

        DOUT_ENTRY      CS_MENU_SELECTED_INS_FLAGS, 0,          1,      0       ; INS1 LED (Note: Pin #0 is the D7 output of first SR)

        DOUT_ENTRY      CS_MENU_SELECTED_INS_FLAGS, 1,          1,      1       ; INS2 LED

        DOUT_ENTRY      CS_MENU_SELECTED_INS_FLAGS, 2,          1,      2       ; INS3 LED

        DOUT_ENTRY      CS_MENU_SELECTED_INS_FLAGS, 3,          1,      3       ; INS4 LED


        DOUT_ENTRY      CS_MENU_SELECTED_OP_FLAGS, 0,           1,      4       ; OP1 LED

        DOUT_ENTRY      CS_MENU_SELECTED_OP_FLAGS, 1,           1,      5       ; OP2 LED

        DOUT_ENTRY      CS_MENU_SELECTED_OP_FLAGS, 2,           1,      6       ; OP3 LED

        DOUT_ENTRY      CS_MENU_SELECTED_OP_FLAGS, 3,           1,      7       ; OP4 LED


        DOUT_ENTRY      TMP1, 0,                                2,      0       ; Instrument LED

        DOUT_ENTRY      TMP1, 1,                                2,      1       ; OP LED


        ;; NOTE: the pins of the MIDI Rx/Tx LEDs are assigned at main.asm

        DOUT_ENTRY_EOT

Edited by Echopraxia
Posted

So I am looking at the DIO_M_ROW_ENTRY

;; --> 1*DIN/4*DOUT <-- pins of the 4 row select buttons

        ;;               DIN SR/Pin,  Row1 SR/Pin,  Row2 SR/Pin,  Row3 SR/Pin,  Row4 SR/Pin

        DIO_M_ROW_ENTRY  3, 1,        2, 2,         2, 3,         2, 4,         2, 5
What do I need to change to define only the 4 pins on a new DIN SR. I would do DIN SR 5 PIN 0,1,2,3. Do I just delete The ;; --> 1*DIN/4*DOUT <-- Column and also delete the first entry which was labeled DIN SR/Pin like this?
;; --> DIN <-- pins of the 4 row select buttons

        ;;               Row1 SR/Pin,  Row2 SR/Pin,  Row3 SR/Pin,  Row4 SR/Pin

        DIO_M_ROW_ENTRY  5, 0,         5, 1,         5, 2,         5, 3

Or do I add it to the first Din column below DIO_M_COL_ENTRY ?

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...
×
×
  • Create New...