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