mblc LCD vs. LED Problem with displaying SMPTE

Hello!

I built a special version of mblc that I call TRBBT (tr means transport). It contains: 14 buttons, 8 LEDs, 1 Jogwheel, LCD display and a full LED display. This is used as remote control during recording sessions, while the user can’t stay in front of his DAW.

The LCD display is used for displaying time code (SMPTE or BEATS). When I display SMPTE code, I’ve a problem like this (see also attachement). BEATS mode is ok.

SMPTE example:

LCD shows: 000.00.21.4

LED shows: 000.00.21.24

                              |---- missed, lost anywhere.

I use the following code for displaying the SMTPE code in lc_clcd.inc (lc_v1_6a):

;; --------------------------------------------------------------------------

;;  Page0:

;; --------------------------------------------------------------------------

LC_CLCD_Init_Page0

        movlw  0x00 + 0

        call    MIOS_LCD_CursorSet

  ;; print characters on screen

        movlw  ‘T’

        call    MIOS_LCD_PrintChar

        movlw  ‘R’

        call    MIOS_LCD_PrintChar

        movlw  ‘B’

        call    MIOS_LCD_PrintChar

        movlw  ‘B’

        call    MIOS_LCD_PrintChar

        movlw  ‘T’

        call    MIOS_LCD_PrintChar

        movlw  ’ ’

        call    MIOS_LCD_PrintChar

        movlw  ‘m’

        call    MIOS_LCD_PrintChar

        movlw  ‘i’

        call    MIOS_LCD_PrintChar

        movlw  ‘d’

        call    MIOS_LCD_PrintChar

        movlw  ‘i’

        call    MIOS_LCD_PrintChar

        movlw  ‘b’

        call    MIOS_LCD_PrintChar

        movlw  ‘o’

        call    MIOS_LCD_PrintChar

        movlw  ‘x’

        call    MIOS_LCD_PrintChar

        movlw  ’ ’

        call    MIOS_LCD_PrintChar

        movlw  ‘m’

        call    MIOS_LCD_PrintChar

        movlw  ‘b’

        call    MIOS_LCD_PrintChar

        movlw  ‘l’

        call    MIOS_LCD_PrintChar

        movlw  ‘c’

        call    MIOS_LCD_PrintChar

;; print status digits at position 38/2

SET_CLCD_STATUS 0, 38, 2

;; print host messages at position 12/0, (0=normal spacing)

SET_CLCD_HOST_MSG 0, 12, 0, 0

;; don’t print meters

SET_CLCD_METER 0, 0, 0, 0

;; print rec/solo/mute status at 0/0

SET_CLCD_RSM_MSG 0, 0, 0

;; print select status at 0/1

SET_CLCD_SEL_MSG 0, 0, 1

;; print “SMPTE/BEATS” at position: 0/0

SET_CLCD_SMPTE_BEATS 1, 0, 1

;; print MTC digits at position 6/0

SET_CLCD_MTC 1, 6, 1

return

What is wrong? Any idea?

Thank you for helping, best regards, M.M.

Did you change the relative positions in LC_HLP_MTCPositionGet_SMPTE (lc_hlp.inc)?

Please compare it with the original code - this function should not be touched to ensure, that all digits are print on screen

Best Regards, Thorsten.

Did you change the relative positions in LC_HLP_MTCPositionGet_SMPTE (lc_hlp.inc)?

I did not touch this file. So I’ve still no idea.

Best regards, M.M.

I found an solution  :D, an I did it: I modified lc_hlp.inc  ;D!

; old values in italics

LC_HLP_MTCPositionGet

IFCLR LC_STAT, LC_STAT_SMPTE, rgoto LC_HLP_MTCPositionGet_BEATS

LC_HLP_MTCPositionGet_SMPTE

JUMPTABLE_2BYTES 14

;; mtc digits

retlw 12 ; 12 rightmost digit

retlw 11 ; 11

retlw 10 ; 0xff this digit will not be print in SMPTE mode

retlw 8 ;9

retlw 7 ;8

retlw 5 ;6

retlw 4 ;5

retlw 2 ;3

retlw 1 ;2

retlw 0 ;1 leftmost digit

;; colons

retlw 3 ;4

retlw 6 ;7

retlw 9 ;10

;; space

retlw 0 ; to clear unusued position

I think this line was the problem:

retlw 0xff; this digit will not be print in SMPTE mode

Now LCD, LED Displays and Cubase show the same SMPTE code! But don’t ask me why…

Regards M.M.

Fine - this was the only logical explanation for the missing digit.

Best Regards, Thorsten.