bosone Posted May 25, 2005 Report Posted May 25, 2005 just a question: in midibox 64E, along with the encoder, i mounted also analog pots.but: is there a specific reason why in this mios release it was not included the pot behaviour like in the midibox 64? (snap/relative/parallax mode)i was thinking of trying to port the changes from MB64 to MB64E, in order to get pot behaviour also here...did someone already did that?i did a rapid search and found that the pot behaviour reference appears only in:app_defines.hcs_m_potmodemb64_lcdmb64_potsif i make the changes only in these parts of the routines, will it work? Quote
TK. Posted May 25, 2005 Report Posted May 25, 2005 but: is there a specific reason why in this mios release it was not included the pot behaviour like in the midibox 64? (snap/relative/parallax mode)yes, no free memory for all this stuffBest Regards, Thorsten. Quote
bosone Posted May 25, 2005 Author Report Posted May 25, 2005 uhm...that is not encouraging!! :-)anyway, what i'd be interested into is only adding the snap mode by default (i.e. the analog pots always behaves in that mode) for the pots of my midibox 64e...i guess that the code to be used is this one (from mb64_pots.inc): MB64_POT_ConvSnap ;; "snap" mode selected: "soft-takeover" ;; branch depending on clockwise or counter clockwise turn ;; means: last value <= new value movf MB64_POT_LAST_VALUE, W, BANKED IFLEQ MB64_POT_NEW_VALUE, BANKED, rgoto MB64_POT_ConvSnap_CClockwise MB64_POT_ConvSnap_Clockwise ;; pot has been moved clockwise ;; exit if if new value <= active value movf INDF0, W IFLEQ MB64_POT_NEW_VALUE, BANKED, rgoto MB64_POT_Conv_DontSend ;; exit if active value >= last value IFGEQ MB64_POT_LAST_VALUE, BANKED, rgoto MB64_POT_Conv_DontSend ;; else continue rgoto MB64_POT_ConvBypass MB64_POT_ConvSnap_CClockwise ;; pot has been counter clockwise ;; exit if if new value >= active value movf INDF0, W IFGEQ MB64_POT_NEW_VALUE, BANKED, rgoto MB64_POT_Conv_DontSend ;; exit if active value <= last value IFLEQ MB64_POT_LAST_VALUE, BANKED, rgoto MB64_POT_Conv_DontSend ;; else continue rgoto MB64_POT_ConvBypass ;; ------------------------------------------------------------------ MB64_POT_ConvBypass ;; save new value in active value movff MB64_POT_NEW_VALUE, INDF0 ;; ------------------------------------------------------------------ MB64_POT_Conv_DontSend andlw 0x00 ; (set zero bit) return that is to be included, in some way, into mb64e_fader.inc in this position: ;; -------------------------------------------------------------------------- ;; This function is used to send a fader value ;; Input: ;;   o fader number in MB64E_CURRENT_ENTRY ;;   o absolute position in WREG ;; -------------------------------------------------------------------------- MB64E_FADER_Send ;; store current position in TMP1 movwf TMP1 ;; scale value depending on Min/Max entry ;; calc address to Min/Max entry: call MB64E_ADDR_FaderEntry ;; select the 3rd byte movlw 3-1 addwf MB_ADDRL, F ;; scale value: ;; copy min value to MB64E_ENTRY_MIN_VALUE ;; copy max value to MB64E_ENTRY_MAX_VALUE ;; move fader value to WREG call MB64E_BANK_Read movff WREG, MB64E_ENTRY_MIN_VALUE call MB64E_BANK_Read movff WREG, MB64E_ENTRY_MAX_VALUE movf TMP1, W call MB64E_FADER_ScaleValue ;; store result in MB64E_FADER_NEW_VALUE movff WREG, MB64E_FADER_NEW_VALUE ;; get pointer to FADER_VALUE_xx register call MB64E_FSR_FaderValue ;; store value in MB64E_FADER_VALUE movff INDF0, MB64E_FADER_LAST_VALUE ;; copy the new value into this location for the next call movff MB64E_FADER_NEW_VALUE, INDF0 ;; if new value == old value, branch to the end SET_BSR MB64E_BASE movf MB64E_FADER_NEW_VALUE, W, BANKED xorwf MB64E_FADER_LAST_VALUE, W, BANKED bz MB64E_FADER_Send_End ;; store new value call MB64E_FSR_FaderValue movff MB64E_FADER_NEW_VALUE, INDF0 ;; send MIDI value call MB64E_MIDI_SendFaderEvent ;; clear request fader pos update bcf MB_STAT3, MB_STAT3_FADER_UPDATE_REQ bcf MB_STAT3, MB_STAT3_FADER_SOFT_UPDATE_REQ ;; request display update bsf CS_STAT, CS_STAT_DISPLAY_UPDATE_REQ ;; reset the cursor of the CS call CS_MENU_ResetCursor MB64E_FADER_Send_End return however, i make a lot of confusion when i try to understand what the code exacly does... and where to insert the new code...moreover, if i use new variables or subroutines, i feel that i have to declare them somewhere and to assign memory locations.....maybe, i could use variables needed for the motorfaders/touchsensors, which i don't useperhaps in appdefines.h (which for me is a nightmare!!!!)some help!??! Quote
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.