Jump to content

comment activer mididibox link ?


gégé33
 Share

Recommended Posts

es tu sûr d'avoir tapé: make --version

?

C:\Users\julien>make

make: *** No targets specified and no makefile found. Stop.


C:\Users\julien>make --version

GNU Make version 3.79.1, by Richard Stallman and Roland McGrath.

Built for i686-pc-msys

Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000

 	Free Software Foundation, Inc.

This is free software; see the source for copying conditions.

There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A

PARTICULAR PURPOSE.


Report bugs to <bug-make@gnu.org>.



C:\Users\julien>

Edited by protofuse
Link to comment
Share on other sites

voila ce que j'obtiens avec make --version

shad@SHAD-R6XX8TNJNF ~

$ make --version

GNU Make 3.81

Copyright © 2006 Free Software Foundation, Inc.

This is free software; see the source for copying conditions.

There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A

PARTICULAR PURPOSE.

This program built for i686-pc-msys

shad@SHAD-R6XX8TNJNF ~

$

sinon,pour te donner une idee de mon projet,regarde sur ma galerie,ça serai quand meme dommage d'en rester a ce niveau.....

Edited by gégé33
Link to comment
Share on other sites

voila ce que j'obtiens avec make --version

shad@SHAD-R6XX8TNJNF ~

$ make --version

GNU Make 3.81

Copyright © 2006 Free Software Foundation, Inc.

This is free software; see the source for copying conditions.

There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A

PARTICULAR PURPOSE.

This program built for i686-pc-msys

shad@SHAD-R6XX8TNJNF ~

$

sinon,pour te donner une idee de mon projet,regarde sur ma galerie,ça serai quand meme dommage d'en rester a ce niveau.....

ben ta toolchain semble ok.

il faut taper make install dans le répertoire principal où il y a main.c et main.h

teste déjà ça

le "programme" est main.c

ouvre le fichier, un éditeur de texte basique suffit

regarde un peu le code etc pour comprendre la logique

sur http://ucapps.de/ il ya des traductions en français

Link to comment
Share on other sites

ça me rassure deja de savoir que la toolchain a l'air de fonctionner.

j'avais bien compris qu'il fallait modifier main.c et main.h,le probleme,c'est que dans le repertoire de la midibox lc,sous dossier "src",il n'y a ni main.c ni main.h mais seulement main.inc.

le seul dossier ou je retrouve ces deux fichiers et clockbox_simple_v1c

la demarche semble donc differente pour l'application LC....

voici ce qu'il y a dans le main.inc

; $Id: main.inc 353 2008-06-06 22:39:52Z tk $

;

; Source Code of MIDIbox LC

; A MIOS Application

;

; ==========================================================================

;

; Copyright 1998-2003 Thorsten Klose (tk@midibox.org)

; Licensed for personal non-commercial use only.

; All other rights reserved.

;

; ==========================================================================

;; ---[ MIOS header file ]---

#include "mios.h"

;; ---[ useful macros ]---

#include "macros.h"

;; ---[ vectors to MIOS functions (never change!) ]---

#include "mios_vectors.inc"

;; ---[ user hooks (never change!) ]---

#include "user_vectors.inc"

;; ==========================================================================

;; General Application Settings

;; ==========================================================================

;; ---[ variables used by application ]---

#include "app_defines.h"

; ==========================================================================

;; ---[ configuration table for MIDI processor rotary encoders ]---

#include "mios_tables.inc"

;; ---[ Custom LCD driver ]---

#include "app_lcd.inc"

;; ==========================================================================

;; Standard MIOS hooks

;; ==========================================================================

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

;; This function is called by MIOS after startup to initialize the

;; application

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

USER_Init

;; initialize application specific variables

movlw LC_EMULATION_ID ; Logic Control ID

movwf LC_ID

clrf LC_SYSEX_STATE

clrf LC_CURSOR

clrf LC_MTC_CURSOR

;; init the MTC digits

SET_BSR LC_MTC_DIGIT_1

movlw '0'

movwf LC_MTC_DIGIT_0, BANKED

movwf LC_MTC_DIGIT_1, BANKED

movwf LC_MTC_DIGIT_2, BANKED

movwf LC_MTC_DIGIT_3, BANKED

movwf LC_MTC_DIGIT_4, BANKED

movwf LC_MTC_DIGIT_5, BANKED

movwf LC_MTC_DIGIT_6, BANKED

movwf LC_MTC_DIGIT_7, BANKED

movwf LC_MTC_DIGIT_8, BANKED

movwf LC_MTC_DIGIT_9, BANKED

movlw ':'

movwf LC_MTC_DIGIT_C0, BANKED

movwf LC_MTC_DIGIT_C1, BANKED

movwf LC_MTC_DIGIT_C2, BANKED

movlw ' '

movwf LC_MTC_DIGIT_SPACE, BANKED

movlw 'R' - 0x40

movwf LC_STATUS_DIGIT_A, BANKED

movlw 'T' - 0x40

movwf LC_STATUS_DIGIT_B, BANKED

#if LCD_USE_SECOND

;; initialize the LCD: we allow graphical LCD and up to 2 character LCDs

;; for the 2-character LCD option, we have to set the offset of

;; line 3 and line 4 to 0x80/0xc0

movlw 0x00

movwf MIOS_PARAMETER1

movlw 0x40

movwf MIOS_PARAMETER2

movlw 0x80

movwf MIOS_PARAMETER3

movlw 0xc0

call MIOS_LCD_YAddressSet

#endif

;; use LC_STAT.LC_STAT_GLCD as indicator if graphical LCD

;; or character LCD is connected

bcf LC_STAT, LC_STAT_GLCD

btfsc MIOS_BOX_CFG0, MIOS_BOX_CFG0_USE_GLCD

bsf LC_STAT, LC_STAT_GLCD

;; initialize the AIN driver

movlw NUMBER_MOTORFADERS

call MIOS_AIN_NumberSet

call MIOS_AIN_UnMuxed

movlw AIN_DEADBAND

call MIOS_AIN_DeadbandSet

#if ENABLE_MOTORDRIVER == 1

;; initialize the MF driver

call MIOS_MF_Enable

movlw MOTORFADERS_DEADBAND

call MIOS_MF_DeadbandSet

movlw MOTORFADERS_PWM_DUTY_UP

call MIOS_MF_PWM_DutyCycleUpSet

movlw MOTORFADERS_PWM_DUTY_DOWN

call MIOS_MF_PWM_DutyCycleDownSet

movlw MOTORFADERS_PWM_PERIOD

call MIOS_MF_PWM_PeriodSet

#endif

;; initialize the shift registers

movlw NUMBER_SHIFTREGISTERS

call MIOS_SRIO_NumberSet

movlw SRIO_UPDATE_FREQUENCY

call MIOS_SRIO_UpdateFrqSet

movlw TOUCHSENSOR_SENSITIVITY

call MIOS_SRIO_TS_SensitivitySet

;; initialize encoder speed modes

clrf TMP1 ; loop 8 times

USER_Init_EncSpeedLoop

movlw ENC_VPOT_SPEED_DIVIDER

movwf MIOS_PARAMETER2

movlw ENC_VPOT_SPEED_MODE

movwf MIOS_PARAMETER1

movf TMP1, W

call MIOS_ENC_SpeedSet

incf TMP1, F

movlw 8-1

cpfsgt TMP1, ACCESS

rgoto USER_Init_EncSpeedLoop

movlw ENC_JOGWHEEL_SPEED_DIVIDER

movwf MIOS_PARAMETER2

movlw ENC_JOGWHEEL_SPEED_MODE

movwf MIOS_PARAMETER1

movlw 8

call MIOS_ENC_SpeedSet

;; initialize the integrated MIDI merger

movlw MIOS_MIDI_MERGER_ENABLED

call MIOS_MIDI_MergerSet

;; initialize the user timer (used for the meter handling)

;; (see lc_led.inc)

;; timer should be called every 20 ms == 200000 ticks

;; since this value is greater than 16 bit (== 65535 max) we just

;; use a 1:4 prescaler so the init value must be: 200000 / 4 == 50000

;; (see also the MIOS_TIMER_Init documentation)

movlw 50000 & 0xff ; low-byte

movwf MIOS_PARAMETER1

movlw 50000 >> 8 ; high-byte

movlw 0x02 ; use 1:4 prescaler

call MIOS_TIMER_Init

;; init display page

movlw INITIAL_DISPLAY_PAGE

movwf LC_DISPLAY_PAGE

;; update LEDs which have been assigned to MBLC specific functions

call LC_SFB_LED_Update

;; request update of meters and ledrings

movlw 0xff

movwf LC_METER_UPDATE_REQ

movwf LC_LEDRING_UPDATE_REQ

;; fill host and GPC message screen with spaces

movlw 0x80

movwf TMP1

lfsr FSR0, MSG_HOST_BEGIN

lfsr FSR1, MSG_GPC_BEGIN

movlw ' '

USER_Init_Msg_Loop1

movwf POSTINC0

movwf POSTINC1

decfsz TMP1, F

rgoto USER_Init_Msg_Loop1

;; copy welcome message to msg buffer

TABLE_ADDR USER_INIT_MSG_STR

lfsr FSR0, MSG_HOST_BEGIN

tblrd*+

movff TABLAT, TMP1

USER_Init_Msg_Loop2

tblrd*+

movff TABLAT, POSTINC0

decfsz TMP1, F

rgoto USER_Init_Msg_Loop2

;; init rec/solo/mute status

lfsr FSR0, RSM_MSG_BEGIN

movlw 8

movwf TMP1

movlw '-'

USER_Init_Msg_Loop3

movwf POSTINC0

decfsz TMP1, F

rgoto USER_Init_Msg_Loop3

;; init sel status

lfsr FSR0, SEL_MSG_BEGIN

movlw 8

movwf TMP1

movlw '.'

USER_Init_Msg_Loop4

movwf POSTINC0

decfsz TMP1, F

rgoto USER_Init_Msg_Loop4

;; clear position offset of general purpose controller mode

clrf GPC_OFFSET

return

;; <------------------------------------------------------>

USER_INIT_MSG_STR db 54, "xxxx---===< Logic Control Emulation ready. >===---xxxx"

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

;; This function is called by MIOS in the mainloop when nothing else is to do

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

USER_Tick

;; check meter update request flags

call LC_METERS_Handler

;; check ledring update request flags

call LC_LEDRING_Handler

return

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

;; This function is periodically called by MIOS. The frequency has to be

;; initialized with MIOS_Timer_Set

;; Note that this is an interrupt service routine! Use FSR2 instead of FSR0

;; and IRQ_TMPx instead of TMPx -- and make the routine as fast as possible!

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

USER_Timer

;; branch to Meter Timer

goto LC_LED_MeterTimer

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

;; This function is called by MIOS when a debug command has been received

;; via SysEx

;; Input:

;; o WREG, MIOS_PARAMETER1, MIOS_PARAMETER2, MIOS_PARAMETER3 like

;; specified in the debug command

;; Output:

;; o return values WREG, MIOS_PARAMETER1, MIOS_PARAMETER2, MIOS_PARAMETER3

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

USER_MPROC_DebugTrigger

return

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

;; This function is called by MIOS when the display content should be

;; initialized. Thats the case during startup and after a temporary message

;; has been printed on the screen

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

USER_DISPLAY_Init

;; clear screen

call MIOS_LCD_Clear

;; branch to LC_[GC]LCD_Init

GOTO_IFCLR LC_STAT, LC_STAT_GLCD, ACCESS, LC_CLCD_Init

goto LC_GLCD_Init

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

;; This function is called in the mainloop when no temporary message is shown

;; on screen. Print the realtime messages here

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

USER_DISPLAY_Tick

;; check if host/GPC message update has been requested

btfss LC_STAT, LC_STAT_MSG_UPDATE_REQ

return

;; yes: clear request flag, print message

bcf LC_STAT, LC_STAT_MSG_UPDATE_REQ

goto LC_DISPLAY_Print_Msg

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

;; This function is called by MIOS when a complete MIDI event has been received

;; Input:

;; o first MIDI event byte in MIOS_PARAMETER1

;; o second MIDI event byte in MIOS_PARAMETER2

;; o third MIDI event byte in MIOS_PARAMETER3

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

USER_MPROC_NotifyReceivedEvent

;; continue at LC MPROC handler

goto LC_MPROC_NotifyReceivedEvent

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

;; This function is called by MIOS when a MIDI event has been received

;; which has been specified in the CONFIG_MIDI_IN table

;; Input:

;; o number of entry in WREG

;; o first MIDI event byte in MIOS_PARAMETER1

;; o second MIDI event byte in MIOS_PARAMETER2

;; o third MIDI event byte in MIOS_PARAMETER3

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

USER_MPROC_NotifyFoundEvent

;; update GPC value

goto LC_GPC_AbsValue_Set

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

;; This function is called by MIOS when a MIDI event has not been completly

;; received within 2 seconds

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

USER_MPROC_NotifyTimeout

;; -> jump to "ActionInvalid" for a proper reset of the sysex parser

goto LC_SYSEX_ActionInvalid

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

;; This function is called by MIOS when a MIDI byte has been received

;; Input:

;; o received MIDI byte in WREG and MIOS_PARAMETER1

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

USER_MPROC_NotifyReceivedByte

;; -> continue at LC sysex parser

goto LC_SYSEX_Parser

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

;; This function is called by MIOS before the transfer of a MIDI byte.

;; It can be used to monitor the Tx activity or to do any other actions

;; (e.g. to switch a pin for multiplexed MIDI Outs) before the byte will

;; be sent.

;; Note that this is an interrupt service routine! Use FSR2 instead of FSR0

;; and IRQ_TMPx instead of TMPx -- and make the routine as fast as possible!

;; Input:

;; o transmitted byte in WREG

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

USER_MIDI_NotifyTx

;; branch directly to "midi_rxtx.inc"

goto MIDI_RXTX_NotifyTx

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

;; This function is called by MIOS when a MIDI byte has been received.

;; It can be used to monitor the Rx activity or to do any action - e.g.

;; to react on realtime events like MIDI clock (0xf8) with a minimum latency

;; Note that this is an interrupt service routine! Use FSR2 instead of FSR0

;; and IRQ_TMPx instead of TMPx -- and make the routine as fast as possible!

;; Input:

;; o received byte in WREG

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

USER_MIDI_NotifyRx

;; branch directly to "midi_rxtx.inc"

goto MIDI_RXTX_NotifyRx

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

;; This function is called by MIOS when an button has been toggled

;; Input:

;; o Button number in WREG and MIOS_PARAMETER1

;; o Button value MIOS_PARAMETER2:

;; - 1 if button has been released (=5V)

;; - 0 if button has been pressed (=0V)

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

USER_DIN_NotifyToggle

goto LC_BUTTON_Handler

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

;; This function is called by MIOS when an encoder has been moved

;; Input:

;; o Encoder number in WREG and MIOS_PARAMETER1

;; o signed incrementer value in MIOS_PARAMETER2:

;; - is positive when encoder has been turned clockwise

;; - is negative when encoder has been turned counter clockwise

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

USER_ENC_NotifyChange

goto LC_ENC_Handler

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

;; This function is called by MIOS before the shift register are loaded

;; Note that this is an interrupt service routine! Use FSR2 instead of FSR0

;; and IRQ_TMPx instead of TMPx -- and make the routine as fast as possible

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

USER_SR_Service_Prepare

;; ledrings/meters handler

call LC_LED_DOUT_Handler

#if LEDDIGITS_ENABLED != 1

;; leddigits handler

call LC_LEDDIGITS_Update

#endif

#if MIDI_MONITOR_ENABLED != 0

;; MIDI Rx/Tx Monitor handler

call MIDI_RXTX_Handler

#endif

return

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

;; This function is called by MIOS after the shift register have been loaded

;; Note that this is an interrupt service routine! Use FSR2 instead of FSR0

;; and IRQ_TMPx instead of TMPx -- and make the routine as fast as possible

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

USER_SR_Service_Finish

return

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

;; This function is called by MIOS when a pot has been moved

;; Input:

;; o Pot number in WREG and MIOS_PARAMETER1

;; o LSB value in MIOS_PARAMETER2

;; o MSB value in MIOS_PARAMETER3

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

USER_AIN_NotifyChange

goto LC_MF_FaderEvent

;; ==========================================================================

;; standard (reusable) routines

;; ==========================================================================

#include "midi_rxtx.inc"

;; ==========================================================================

;; Configuration

;; ==========================================================================

;; ---[ LC button/LED functions ]---

#include "lc_io_table.inc"

;; ---[ GPC Labels ]---

#include "lc_gpc_lables.inc"

;; ==========================================================================

;; Application code (see comments in files)

;; ==========================================================================

#include "lc_glcd.inc"

#include "lc_display.inc"

#include "lc_clcd.inc"

#include "lc_sysex.inc"

#include "lc_mproc.inc"

#include "lc_buttons.inc"

#include "lc_sfb.inc"

#include "lc_enc.inc"

#include "lc_leds.inc"

#include "lc_leddigits.inc"

#include "lc_ledrings.inc"

#include "lc_meters.inc"

#include "lc_mf.inc"

#include "lc_hlp.inc"

#include "lc_cali.inc"

#include "lc_gpc.inc"

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

;; Including fonts from $MIOS_PATH/modules/glcd_font/

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

#include <glcd_font_big.inc>

#include <glcd_font_small.inc>

#include <glcd_font_knob_icons.inc>

#include <glcd_font_meter_icons_v.inc>

#include <glcd_font_meter_icons_h.inc>

END

Link to comment
Share on other sites

gégé

regarde le tuto MPLAB essai de modifier les fichiers en assembleur

Tu utilises quel DAW pour faire ta musique, ça serai pas nécessaire de linker tes 24 FADERS.

Ton DAW utilise l'émulation Mackie Control pour 8 faders, Mackie Control XT 8 faders, Mackie Control XT 8 faders comme ça tu as tes 24 faders qui répondent dans ton DAW

Seul inconvénient, il faut pour chaque core une entrée sortie midi

Te casses pas la tête à vouloir absolument linker tes 24 faders, utilise l'émulation macKie control

Edited by djsampling
Link to comment
Share on other sites

gégé

regarde le tuto MPLAB essai de modifier les fichiers en assembleur

Tu utilises quel DAW pour faire ta musique, ça serai pas nécessaire de linker tes 24 FADERS.

Ton DAW utilise l'émulation Mackie Control pour 8 faders, Mackie Control XT 8 faders, Mackie Control XT 8 faders comme ça tu as tes 24 faders qui répondent dans ton DAW

Seul inconvénient, il faut pour chaque core une entrée sortie midi

il lui faudrait activer le midi link forward point et endpoint sur ses cores.

ça permet effectivement de n'utiliser qu'une entrée et sortie pour les 2 cores.

c'est ce que je fais sur la protodeck.

Link to comment
Share on other sites

j'utilise cubase sx3 et sonar 7

ce qui me fais un peu peur,c'est qu'apparement,cubase sx n'a pas la fonction xt.....elle se retrouve sous sonar 7

de plus,je ne suis pas "riche" en ports midi sur mon pc,comment y relier 3 in et 3 out ???

tu connais google?

avant de poser une question, sérieux: cherche un peu

sinon n'espère pas des réponses détaillées qu'une simple recherche sur google peut permettre de trouver

Link to comment
Share on other sites

tu connais google?

avant de poser une question, sérieux: cherche un peu

sinon n'espère pas des réponses détaillées qu'une simple recherche sur google peut permettre de trouver

rassure toi,je n'espere plus grand chose !

je tiens tout de meme a te signaler que tous mon temps libre,je le passe en recherches sur internet afin de comprendre le fonctionnement de tout ça.

il est vrai que je me suis peut etre lancé dans ce projet sans en saisir tous les parametres,certaines choses que je prenait pour aquises se sont revelée etres d'enormes fausses routes....

de toute evidence, il ne fait pas bon etre un debutant sur ce forum......

Link to comment
Share on other sites

rassure toi,je n'espere plus grand chose !

je tiens tout de meme a te signaler que tous mon temps libre,je le passe en recherches sur internet afin de comprendre le fonctionnement de tout ça.

il est vrai que je me suis peut etre lancé dans ce projet sans en saisir tous les parametres,certaines choses que je prenait pour aquises se sont revelée etres d'enormes fausses routes....

de toute evidence, il ne fait pas bon etre un debutant sur ce forum......

tu n'as pas compris

je me suis heurté à la même chose au début de mon projet

et on est tous débutants en plus

de plus,je ne suis pas "riche" en ports midi sur mon pc,comment y relier 3 in et 3 out ???

tu es sûr d'avoir cherché?

Edited by protofuse
Link to comment
Share on other sites

une interface midi par example,dans le genre midisport 4x4 ou autres.....prix de base 150 euros minimum

je ne fais pas non plus un billet de 50 tous les matins.

comme je te l'ai dis,cela fait plus d'un an que j'ai commencé ma box,et je n'ai pu l'avancer serieusement qu'en comptant sur noel ou mon anniv,on m'a offert des tunes pour un module par ci 4 faders par la,j'ai meme fais des heures sup a mon taff pour pouvoir acheter ce qui me manquait,j'avoue qu'une interface midi me simplifierai la vie,mais niveau budjet,ce n'est pas au programme tout de suite.....

Link to comment
Share on other sites

une interface midi par example,dans le genre midisport 4x4 ou autres.....prix de base 150 euros minimum

je ne fais pas non plus un billet de 50 tous les matins.

comme je te l'ai dis,cela fait plus d'un an que j'ai commencé ma box,et je n'ai pu l'avancer serieusement qu'en comptant sur noel ou mon anniv,on m'a offert des tunes pour un module par ci 4 faders par la,j'ai meme fais des heures sup a mon taff pour pouvoir acheter ce qui me manquait,j'avoue qu'une interface midi me simplifierai la vie,mais niveau budjet,ce n'est pas au programme tout de suite.....

rien à voir avec ma remarque.

bon courage

Link to comment
Share on other sites

Ton projet est carément sympa Gégé33!!!!! Ca me rappelle la LC de Axel, il y a quelque année, super truc!

On peut pas laisser ca comme ca, sans software, ca serait trop dommage!!

Bon je regarde un peu tout ca, je te fais un commentaire plus complet ensuite ;)

Link to comment
Share on other sites

Okidoki!

Alors je viens d'installer la toolchain pour compiler l'appli LC (en partant de la http://www.midibox.org/dokuwiki/windows_toolchain_quickstart)

Donc déja as tu bien installé tout ca? (tout, non en fait car SDCC tu n'en a pas besoin, étant donné que la code de l'appli LC est en assembleur uniquement).

Ensuite tu ouvre ton terminal en executant cmd comme décrit, tu set le path (en tapant SET PATH=C:\MSYS\1.0\bin;%programfiles%\gputils\bin;%programfiles%\SDCC\bin;%PATH%)

ensuite la tu va dans le repertoire ou ce situe l'appli LC.

Donc par exemple moi je l'ais mis dans F:\MIOS\midibox_lc_v1_6d, donc je tape dans le terminal:


f:

cd MIOS

cd midibox_lc_v1_6d

Ensuite la tu tape make, et normalement ca devrait te sortir un truc comme ca:

F:\MIOS\midibox_lc_v1_6d>make

rm -rf *.cod *.lst *.err

rm -rf *.hex

gpasm  -p p18f452  -I./src -I ./include/asm -I ./include/share -I ./modules/app_

lcd/dummy -I ./modules/glcd_font  setup_midibox_lc.asm

gpasm  -p p18f452  -I./src -I ./include/asm -I ./include/share -I ./modules/app_

lcd/dummy -I ./modules/glcd_font  setup_midibox_tk.asm


F:\MIOS\midibox_lc_v1_6d>

L'appli est correctement compilé et les fichiers setup_midibox_lc.hex et setup_midibox_tk.hex) ont été créés (ainsi que d'autre fichier temporaire). Donc déja, tu devrais arrivé à faire ca (j'essais de faire les explications le plus claire possible, mais n'hésite pas a demander si tu coince quelque part). Une fois ceci fait, tu peux donc compiler une nouvelle application (la ca a compilé le code de base, qu'on va maintenant pouvoir modifier). alors pour activer le merger sur tes cores, c'est très simple (si si!!) Tu édite le fichier main.inc (situé dans le sous repertoire "module" du projet). Tu recherche la dedans la fonction USER_init qui ressemble pour le moment a ca:
;; --------------------------------------------------------------------------

;;  This function is called by MIOS after startup to initialize the 

;;  application

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

USER_Init

	;; initialize application specific variables

	movlw	LC_EMULATION_ID		; Logic Control ID

	movwf	LC_ID

	clrf	LC_SYSEX_STATE

	clrf	LC_CURSOR

	clrf	LC_MTC_CURSOR


	;; init the MTC digits

	SET_BSR	LC_MTC_DIGIT_0

	movlw	'0'

	movwf	LC_MTC_DIGIT_0, BANKED

	movwf	LC_MTC_DIGIT_1, BANKED

	movwf	LC_MTC_DIGIT_2, BANKED

	movwf	LC_MTC_DIGIT_3, BANKED

	movwf	LC_MTC_DIGIT_4, BANKED

	movwf	LC_MTC_DIGIT_5, BANKED

	movwf	LC_MTC_DIGIT_6, BANKED

	movwf	LC_MTC_DIGIT_7, BANKED

	movwf	LC_MTC_DIGIT_8, BANKED

	movwf	LC_MTC_DIGIT_9, BANKED

	movlw	':'

	movwf	LC_MTC_DIGIT_C0, BANKED

	movwf	LC_MTC_DIGIT_C1, BANKED

	movwf	LC_MTC_DIGIT_C2, BANKED

	movlw	' '

	movwf	LC_MTC_DIGIT_SPACE, BANKED


	movlw	'R' - 0x40

	movwf	LC_STATUS_DIGIT_A, BANKED

	movlw	'T' - 0x40

	movwf	LC_STATUS_DIGIT_B, BANKED


#if LCD_USE_SECOND

	;; initialize the LCD: we allow graphical LCD and up to 2 character LCDs

	;; for the 2-character LCD option, we have to set the offset of 

	;; line 3 and line 4 to 0x80/0xc0

	movlw	0x00

	movwf	MIOS_PARAMETER1

	movlw	0x40

	movwf	MIOS_PARAMETER2

	movlw	0x80

	movwf	MIOS_PARAMETER3

	movlw	0xc0

	call	MIOS_LCD_YAddressSet

#endif


	;; use LC_STAT.LC_STAT_GLCD as indicator if graphical LCD

	;; or character LCD is connected

	bcf	LC_STAT, LC_STAT_GLCD

	btfsc	MIOS_BOX_CFG0, MIOS_BOX_CFG0_USE_GLCD

	bsf	LC_STAT, LC_STAT_GLCD


	;; initialize the AIN driver

	movlw	NUMBER_MOTORFADERS

	call	MIOS_AIN_NumberSet

	call	MIOS_AIN_UnMuxed


	movlw	AIN_DEADBAND

	call	MIOS_AIN_DeadbandSet


#if ENABLE_MOTORDRIVER == 1

	;; initialize the MF driver

	call	MIOS_MF_Enable

	movlw	MOTORFADERS_DEADBAND

	call	MIOS_MF_DeadbandSet


	movlw	MOTORFADERS_PWM_DUTY_UP

	call	MIOS_MF_PWM_DutyCycleUpSet

	movlw	MOTORFADERS_PWM_DUTY_DOWN

	call	MIOS_MF_PWM_DutyCycleDownSet

	movlw	MOTORFADERS_PWM_PERIOD

	call	MIOS_MF_PWM_PeriodSet

#endif


	;; initialize the shift registers

	movlw	NUMBER_SHIFTREGISTERS

	call	MIOS_SRIO_NumberSet

	movlw	SRIO_UPDATE_FREQUENCY

	call	MIOS_SRIO_UpdateFrqSet

	movlw	TOUCHSENSOR_SENSITIVITY

	call	MIOS_SRIO_TS_SensitivitySet


	;; initialize encoder speed modes

	clrf	TMP1		; loop 8 times

Pour résumer vite fait, ca configure tout ce qu'il faut en fonction de ce que tu as mis dans le fichier de config (a la source du projet, setup_midibox_lc.asm). Alors pour activer le merger, tu dois rajouter à la fin de cette fonction (donc après la dernière ligne, et avant la déclaration de fonction suivate), ceci pour le deux premiers core (celui qui a le midi IN, qui recoit le midi OUT de ton interface donc, et celui qui suit):

        movlw        MIOS_MIDI_MERGER_MBLINK_FP

        call        MIOS_MIDI_MergerSet

et pour le dernier:

        movlw        MIOS_MIDI_MERGER_MBLINK_EP

        call        MIOS_MIDI_MergerSet

donc ta fonction USER_init dans main.inc ressemblera à
;; --------------------------------------------------------------------------

;;  This function is called by MIOS after startup to initialize the 

;;  application

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

USER_Init

	;; initialize application specific variables

	movlw	LC_EMULATION_ID		; Logic Control ID

	movwf	LC_ID

	clrf	LC_SYSEX_STATE

	clrf	LC_CURSOR

	clrf	LC_MTC_CURSOR


	;; init the MTC digits

	SET_BSR	LC_MTC_DIGIT_0

	movlw	'0'

	movwf	LC_MTC_DIGIT_0, BANKED

	movwf	LC_MTC_DIGIT_1, BANKED

	movwf	LC_MTC_DIGIT_2, BANKED

	movwf	LC_MTC_DIGIT_3, BANKED

	movwf	LC_MTC_DIGIT_4, BANKED

	movwf	LC_MTC_DIGIT_5, BANKED

	movwf	LC_MTC_DIGIT_6, BANKED

	movwf	LC_MTC_DIGIT_7, BANKED

	movwf	LC_MTC_DIGIT_8, BANKED

	movwf	LC_MTC_DIGIT_9, BANKED

	movlw	':'

	movwf	LC_MTC_DIGIT_C0, BANKED

	movwf	LC_MTC_DIGIT_C1, BANKED

	movwf	LC_MTC_DIGIT_C2, BANKED

	movlw	' '

	movwf	LC_MTC_DIGIT_SPACE, BANKED


	movlw	'R' - 0x40

	movwf	LC_STATUS_DIGIT_A, BANKED

	movlw	'T' - 0x40

	movwf	LC_STATUS_DIGIT_B, BANKED


#if LCD_USE_SECOND

	;; initialize the LCD: we allow graphical LCD and up to 2 character LCDs

	;; for the 2-character LCD option, we have to set the offset of 

	;; line 3 and line 4 to 0x80/0xc0

	movlw	0x00

	movwf	MIOS_PARAMETER1

	movlw	0x40

	movwf	MIOS_PARAMETER2

	movlw	0x80

	movwf	MIOS_PARAMETER3

	movlw	0xc0

	call	MIOS_LCD_YAddressSet

#endif


	;; use LC_STAT.LC_STAT_GLCD as indicator if graphical LCD

	;; or character LCD is connected

	bcf	LC_STAT, LC_STAT_GLCD

	btfsc	MIOS_BOX_CFG0, MIOS_BOX_CFG0_USE_GLCD

	bsf	LC_STAT, LC_STAT_GLCD


	;; initialize the AIN driver

	movlw	NUMBER_MOTORFADERS

	call	MIOS_AIN_NumberSet

	call	MIOS_AIN_UnMuxed


	movlw	AIN_DEADBAND

	call	MIOS_AIN_DeadbandSet


#if ENABLE_MOTORDRIVER == 1

	;; initialize the MF driver

	call	MIOS_MF_Enable

	movlw	MOTORFADERS_DEADBAND

	call	MIOS_MF_DeadbandSet


	movlw	MOTORFADERS_PWM_DUTY_UP

	call	MIOS_MF_PWM_DutyCycleUpSet

	movlw	MOTORFADERS_PWM_DUTY_DOWN

	call	MIOS_MF_PWM_DutyCycleDownSet

	movlw	MOTORFADERS_PWM_PERIOD

	call	MIOS_MF_PWM_PeriodSet

#endif


	;; initialize the shift registers

	movlw	NUMBER_SHIFTREGISTERS

	call	MIOS_SRIO_NumberSet

	movlw	SRIO_UPDATE_FREQUENCY

	call	MIOS_SRIO_UpdateFrqSet

	movlw	TOUCHSENSOR_SENSITIVITY

	call	MIOS_SRIO_TS_SensitivitySet


	;; initialize encoder speed modes

	clrf	TMP1		; loop 8 times


        movlw        MIOS_MIDI_MERGER_MBLINK_EP

        call        MIOS_MIDI_MergerSet

Donc effectivement ca n'est pas pratique car tu va devoir recompiler ton application deux foi:

- pour les deux premier core (qui sont des foward point au niveau du merger)

- pour le dernier (qui est un end point)

et donc tu devra compiler une fois avec MIOS_MIDI_MERGER_MBLINK_EP, uploader sur ton dernier core, puis remplacer par MIOS_MIDI_MERGER_MBLINK_FP, et recompiler pour les deux premier...

bref plutot que de passer du temps a expliqué, je t'upload la modif nécessaire pour qu'en un seul make ca te compile les 2 hex necessaires!

En gros j'ai rajouté une option dans les fichier de config (MIDI_MERGER_END_POINT et MIDI_MERGER_FOWARD_POINT) qui permete ensuite de compiler deux appli en fonction de ce que l'on veut...

Donc en théorie tout ce que tu as a faire maintenant, c'est télécharger le rar que je joint à ce message prendre le terminal (Executer -> cmd), setter les path etc, puis d'aller dans le repertoire ou tu as extrait les sources, et de taper make. Tu obtiendra 2 fichier hex : setup_midibox_lc_ep.hex pour le END POINT (le core dont la sortie MIDI va vers le PC), et setup_midibox_lc_fp.hex qui est destiné aux 2 autres core.

Normalement, ca devrait marcher.... je dis bien normalement, car je n'ai jamais utilisé le merger, et je me demande encore si il faut ou non l'enabler (la doc est pas très claire).

Enfin, déja une fois que tu aura réussis a compiler ces deux applis, tu ne sera plus très loin du but!

Bon bricolage!

Pilo.

midibox_lc_v1_6d_test_merger.rar

Link to comment
Share on other sites

merci pilo, c'est vraiment super, tu me sauve la mise....

tes explications sont super claires,j'arrive enfin a comprendre.

je n'ai pas trop le temps de faires toutes ces manips ce soir.

j'ai deja essayé ça

Ensuite tu ouvre ton terminal en executant cmd comme décrit, tu set le path (en tapant SET PATH=C:\MSYS\1.0\bin;%programfiles%\gputils\bin;%programfiles%\SDCC\bin;%PATH%)

ça fonctionne nickel.

je te tiens au courant des demain pour le restes des operations.

Encore mille fois merci,je voyais tout ça vraiment mal parti......

Merci aussi de tes encouragements,ça rechauffe le coeur :frantics:

Ps:rolleyes: ma box n'est que "tres legerement pompée"(lol) sur celle d'axell,bon j'avoue,presque completement....

merci encore a demain l'ami

Link to comment
Share on other sites

bonsoir

J'ai suivi ton tuto a la lettre et.......

:frantics: ça fonctionne!!!

j'ai pu recompiler les 2 fichiers MIDI_MERGER_END_POINT et MIDI_MERGER_FOWARD_POINT,il ne me reste plus qu'a les uploader dans les differents pic.

Je ne sais vraiment pas comment te remercier pour tout ce que tu as fait. :thumbsup:

sans tes explications,claires et precises ,je n'aurai jamais compris cette demarche si particuliere qui est la programmation.

En un mot,tu me sauve la mise.

Encores quelques soudures et mon reve deviendra peut etre realité....

S'il y a moyen un jour de te renvoyer l'ascenseur,n'hesite pas,ce sera avec grand plaisir....

Et je dirai pour finir, monsieur PILO, big respect.....

Link to comment
Share on other sites

Salut gégé!

N'oublie pas de nous dire comment ca se passe :) (déja est-ce que le merger fonctionne bien?)

Pas de soucis, moi ca me fais plaisir de pouvoir donner un coup de main, et je suis content de savoir que ca t'a aidé!

Si tu veux renvoyer l'ascenceur, dis nous comment tu as réalisé cette superbe midibox :) (construction mécanique, fonctionnalité etc).

Je viens plus très souvent ici, mais le jour ou j'ai répondus, j'ai vu la photo de ta midibox en première page du forum, et c'est comme ca que j'ai vu ce post!

Pilo.

Link to comment
Share on other sites

Salut pilo

Pour l'instant, j'ai testé le merger avec le core 2 en endpoint car j'ai un petit souci sur le core 3(certainement rien de grave, les soudures sont un peu legeres...)

ça semble fonctionner plutot pas mal,ça fait vraiment plaisir, et ce, grace a toi...

Pour t'apporter plus de precisions sur ma box,je dirai que la fabrication de la "coque et de la face avant on été pour moi le plus facile.

Tout et pratiquement fait avec de la récup.

l'armature est en bois (que j'avais deja) la face avant est faite avec du "dibon" (plastique souple compréssé entre 2 feuilles d'aluminium, chutes recupérés a mon taff) ça se travail tres facilement,decoupes aux dimensions avec un cutter,perçage et decoupe plus precises a la scie sauteuse avec lame de scie a metaux .

un bon petit coup de ponçage,une couche d'appret en bombe,2 couches croisées avec la peinture metallisée alu (bombe)

La serigraphie a été faite avec du lazertran puis apres 4 heures de sechage,deux couches de vernis a l'eau .

Certaines parties de la face avant tel que la surface des faders ou des ledmetres sont realisées avec du pvc expansé (cette fois,c'est ma femme qui me refile des chutes de son taff) la decoupe au cutter pour l'axe des fader est plus precise q'avec une defonceuse ou un dremel.

Voila pour ce qui est hardware, sinon pour ses fonctionnalitées,ce sont quasiment les memes qu'une midibox classique.

un petit rajout est prevu pour une entrée audio avec au final un reglage du volume,du pan, un potard pour le gain d'entée, 3 potards pour le reglage des basses , medium, et aigus +un poussoir mute.

le pcb pour realiser ce modules est encore a l'etude.

sinon pour un tel projet,il y a dedans

3 modules core

3 modules mf (ou sont reliés 24 RSAON 100 mm)

3 lcd 2x16 (juste pour affichage des parties mute solo ..etc)

8 modules DIN ( ou sont reliés les poussoirs de type multimec)

8 modules DOUT (led des poussoirs mute solo...+panneau de control,ledring et ledmeter a 12 leds et mtc a 12 led digit)

et deja plus de 15 metres de nappe a 16 brins.

modules IIC non connectés pour l'instant (pas trop besoin non plus pour juste piloter cubase sx3)

pour l'alimentation,j'utilise pour l'instant deux transfo, mais je pense passer prochainement par une alimentation interne separée.

Voila j'espere avoir été clair et precis, mais si tu as d'autres questions,j'y repondrai avec plaisir.

Par manque de temps,je ne pense pas pouvoir "achever ma box avant l'année prochaine,mais dés que son etat aura un peu avancé,je n'hesiterai pas a poster des photos.

Allez, j'arrete la mon roman,et je te dis a plus, et surtout merci encore....

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...