Guest ekopappa Posted May 18, 2007 Report Share Posted May 18, 2007 hi@allmaybe someone could push a newbie in the right direction.i want to spread the rsm message over the 2 lcds, so that every track has a matching m/s/r character below.first i tried to squeeze some spaces between the characters like this:LC_CLCD_LEDStatusUpdate_Rec ;; print the solo status if value == 0, else a "R" movf TMP1, W andlw 0x07 addlw 0x00 ; rec == 90 0[0-7] movf PLUSW0, W bz LC_CLCD_LEDStatusUpdate_SoloLC_CLCD_LEDStatusUpdate_Rec1 ;; print R movlw 'R ' rgoto LC_CLCD_LEDStatusUpdate_RSM_Save LC_CLCD_LEDStatusUpdate_Solo ;; print the mute status if value == 0, else a "S" movf TMP1, W andlw 0x07 addlw 0x08 ; solo == 90 0[8-F] movf PLUSW0, W bz LC_CLCD_LEDStatusUpdate_MuteLC_CLCD_LEDStatusUpdate_Solo1 ;; print S movlw 'S ' rgoto LC_CLCD_LEDStatusUpdate_RSM_Save LC_CLCD_LEDStatusUpdate_Mute ;; print space or "S" if value == 0 movf TMP1, W andlw 0x07 addlw 0x10 ; mute == 90 1[0-7] movf PLUSW0, W bz LC_CLCD_LEDStatusUpdate_Mute0LC_CLCD_LEDStatusUpdate_Mute1 ;; else print M movlw 'M ' rgoto LC_CLCD_LEDStatusUpdate_RSM_SaveLC_CLCD_LEDStatusUpdate_Mute0 ;; print 'R' if rec active, 'S' if solo active, else space clrf TMP2 ; TMP2.0 notifies that rec active, TMP2.1 that solo active movf TMP1, W andlw 0x07 addlw 0x00 ; rec == 90 0[0-7] movf PLUSW0, W skpz bsf TMP2, 0 movf TMP1, W andlw 0x07 addlw 0x08 ; solo == 90 0[8-F] movf PLUSW0, W skpz bsf TMP2, 1 ;; print "R", "S" or ' ' (in this priority) movlw ' ' IFSET TMP2, 1, movlw 'S ' IFSET TMP2, 0, movlw 'R ' ;; rgoto LC_CLCD_LEDStatusUpdate_RSM_SaveLC_CLCD_LEDStatusUpdate_RSM_Save ;; save character in RSM_MSG array movwf TMP2 ; temp. save it in TMP2 ;; prepare pointer to RSM_MSG array lfsr FSR1, RSM_MSG_BEGIN movf TMP1, W andlw 0x30 addwf FSR1L, F movff TMP2, INDF1 ; transfer character to array ;; print message call LC_CLCD_Print_RSM ;; and exit rgoto LC_CLCD_LEDStatusUpdate_Endand this ;; init pointer to message lfsr FSR0, RSM_MSG_BEGIN ;; print 8 chars movlw 30 movwf TMP1in lc_clcd.inc, but that didn´t work.then i tried to add lcd_rsm_d here:;; font, x-position, y-position, distance ;; if font == 0, element will not be printSET_CLCD_RSM_MSG MACRO font, x, y, d movlw x movwf LCD_RSM_X movlw y * 0x40 movwf LCD_RSM_Y movlw d movwf LCD_RSM_D movlw font & 0xff movwf LCD_RSM_FONT_H ENDMandLC_CLCD_Init_Page3 ;; don't print status digits SET_CLCD_STATUS 0, 0, 0 ;; don't print "SMPTE/BEATS" SET_CLCD_SMPTE_BEATS 0, 0, 0 ;; don't print MTC digits SET_CLCD_MTC 0, 0, 0 ;; print host messages at position 12/0, (1=large spacing, x and y ignored) SET_CLCD_HOST_MSG 0, 12, 0, 1 ;; print horizontal meters at position 7/1 (distance between meter chars: 2) ;; |4 means: x-2 on second display SET_CLCD_METER 0, 0, 0, 0 ;; don't print rec/solo/mute status - x,y,d SET_CLCD_RSM_MSG 1, 0, 0, 3 ;; don't print select status SET_CLCD_SEL_MSG 0, 0, 0 returnin lc_clcd_macros.inc/lc_clcd.inc, but it didn´t work either.now i think this might be a bigger thing than i imagined. so i´m gratefull for any hints where to start. greetings Quote Link to comment Share on other sites More sharing options...
TK. Posted May 18, 2007 Report Share Posted May 18, 2007 Since you are searching for any hints: I think it's better to do such modifications in the C based version, it's easier to understand:http://www.ucapps.de/mios/midibox_lc_v2_0_alpha1.zipthe display output routines are located in lc_lcd.cBest Regards, Thorsten. Quote Link to comment Share on other sites More sharing options...
Guest ekopappa Posted May 18, 2007 Report Share Posted May 18, 2007 thank you. i will look into this one. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.