Guest ekopappa Posted May 18, 2007 Report 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
TK. Posted May 18, 2007 Report 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.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now