![](http://midibox.org/forums/uploads/set_resources_1/84c1e40ea0e759e3f1505eb1788ddf3c_pattern.png)
pilo
-
Posts
1,093 -
Joined
-
Last visited
-
Days Won
4
Content Type
Profiles
Forums
Blogs
Gallery
Posts posted by pilo
-
-
Salut!
Tout recoder peut etre pas quand meme, il faut ajuster la facon dont son affiché les éléments sur le lcd.
C'est prévus dans le code déja, regarde lc_hlp.inc la dernière fonction LC_HLP_MsgCursorPos permet de customiser l'affichage des 55 charactère sur 2 écran de 2x40.
En modifiant tu doit pouvoir remapper sur 2 écran de 2x24, en envoyant par exemple un des 6 charactère sur une addresse non visible.
LC_HLP_MsgCursorPos JUMPTABLE_2BYTES 55 ;; (55 table entries) retlw 0x00 + 0 retlw 0x00 + 1 retlw 0x00 + 2 retlw 0x00 + 3 retlw 0x00 + 4 retlw 0x00 + 24 // charactère non visible sur un ecran 2x24 retlw 0x00 + 5 retlw 0x00 + 6 retlw 0x00 + 7 retlw 0x00 + 8 retlw 0x00 + 9 retlw 0x00 + 10 retlw 0x00 + 24 // charactère non visible sur un ecran 2x24 retlw 0x00 + 11 retlw 0x00 + 12 retlw 0x00 + 13 retlw 0x00 + 14 retlw 0x00 + 15 retlw 0x00 + 16 retlw 0x00 + 24 // charactère non visible sur un ecran 2x24 retlw 0x00 + 17 retlw 0x00 + 18 retlw 0x00 + 19 retlw 0x00 + 20 retlw 0x00 + 21 retlw 0x00 + 22 retlw 0x00 + 24 // charactère non visible sur un ecran 2x24 retlw 0x00 + 23 retlw 0x80 + 0 retlw 0x80 + 1 retlw 0x80 + 2 retlw 0x80 + 3 retlw 0x80 + 4 retlw 0x80 + 24 // charactère non visible sur un ecran 2x24 retlw 0x80 + 5 retlw 0x80 + 6 retlw 0x80 + 7 retlw 0x80 + 8 retlw 0x80 + 9 retlw 0x80 + 10 retlw 0x80 + 24 // charactère non visible sur un ecran 2x24 retlw 0x80 + 11 retlw 0x80 + 12 retlw 0x80 + 13 retlw 0x80 + 14 retlw 0x80 + 15 retlw 0x80 + 16 retlw 0x80 + 24 // charactère non visible sur un ecran 2x24 retlw 0x80 + 17 retlw 0x80 + 18 retlw 0x80 + 19 retlw 0x80 + 20 retlw 0x80 + 21 retlw 0x80 + 22 retlw 0x80 + 24 // charactère non visible sur un ecran 2x24
Je garantis pas que ca marche du premier coup, mais l'idée est la.
-
En effet c'est nILS qui a vu le probleme tout de suite :)
Ce n'etait pas grand chose de ma part d'aller poster sur forum anglais, mais je suis content de savoir enfin que ta midibox marche :)
on attends beaucoupde photos! ;)
-
Re,
alors ca pourrait venir d'un problème de version de MIOS (le code pour les encodeur a été modifié dernièrement, et le hex fournis dans le zip des sources du code pour la LC est peut etre toujours compilé avec l'ancienne version).
Alors il faudrait que tu test en mettant a jour mios (1.9g) sur le pic, et avec un peu de chance tout va fonctionner (après recompilation de l'appli LC)!
tiens nous au courant ;)
-
Hey nILS!
Thanks for the fast answer :)
I didn't know about the change in encoder handler, it should be this!
I tell him right now!
Thank you very much!
-
Hi!
I'm here to help a french midiboxer making is great midibox LC works. (but who has trouble with english ;))
When he uses the hex file in the zip package midibox_lc_v1_6d.zip, his encoder and jog wheel are working. But when he recompiles the sources, even when changing nothing, the encoder and jog wheel aren't working anymore. (He need to recompile in order to activate meters and led digits).
He says the config in setup_midibox_lc matches is setup.
So I though that the hex in the archive wasn't compiled from the sources?
Anyone have a clue on this, and how to setup the encoder so they could work?
Thank you!
-
Salut gégé!
Si tout est pareil, c'est que le hex fournis dans le zip n'a pas été compilé a partir de ces sources, je vais aller posté sur un forum anglais pour demander si quelqu'un en sait plus sur le sujet.
Sinon tu me demandais si j'avais trouvé de quoi faire mes bouttons, et bien je pense que oui! et pour un prix relativement bas : je pensais utiliser des battons de pistoler à colle... ca coute rien du tout, ca se coupe assez facilement, ca a un "touché" sympa, et des propriété lumineuse interessante!!
/edit:
le liens vers le forum troubleshooting
-
Il est pas impossible en effet que le code sur le svn soit plus récent que celui du zip de l'appli LC, toute fois si les binaires contenus dedans te permete d'utilise les encodeur, c'est que ca doit etre un pb de config (a moins que les hex du zip est été compilé a partir des souces SVN, plus récentes, mais j'en doute).
Si tu trouve rien au niveau de la config, il faudra demander sur un forum anglais (je pense qu'on pourra te filer un coup de main). Comme tu le dis y'a aucune raison que ca ne marche pas, et ta misibox est bien trop impresionante pour qu'elle reste comme ca ;)
Bon qu'on soit d'accord, le make est un fichier qui réunit l'ensemble des fichiers sources (assembleur) à compiler en code binaire exécutable par ton PIC.Je pense qu'il voulait savoir si il n'y avait aucun message d'erreur du compilateur.
-
Salut gégé33!
La je suis largué.....
Serait il possible que le probleme vienne de la compilation ?
Si je recompile l'appli mblc sans rien y changer,"juste pour voir" ,je perd l'usage de mes encodeurs quand meme.
Je dois vraiment etre un cas a part....
c'est que le hex fournis dans le zip ne doit pas etre le résultat de la compilation du code... Maintenant, si en ne changeant rien, tu n'a pas d'encodeur, ca ouvre des pistes (au moins une).
voila ce qui est ecris dans l'invite de commande apres compilation.
Est-ce normal ?
Oui tout est correct la.
Alors est-ce que la config de tes encoder est correct? (a la fin de setup_midibox_lc.hex) :
MIOS_ENC_PIN_TABLE ;; encoders 1-16 ;; SR Pin Mode ENC_ENTRY 13, 0, MIOS_ENC_MODE_NON_DETENTED ; V-Pot 1 ENC_ENTRY 13, 2, MIOS_ENC_MODE_NON_DETENTED ; V-Pot 2 ENC_ENTRY 13, 4, MIOS_ENC_MODE_NON_DETENTED ; V-Pot 3 ENC_ENTRY 13, 6, MIOS_ENC_MODE_NON_DETENTED ; V-Pot 4 ENC_ENTRY 14, 0, MIOS_ENC_MODE_NON_DETENTED ; V-Pot 5 ENC_ENTRY 14, 2, MIOS_ENC_MODE_NON_DETENTED ; V-Pot 6 ENC_ENTRY 14, 4, MIOS_ENC_MODE_NON_DETENTED ; V-Pot 7 ENC_ENTRY 14, 6, MIOS_ENC_MODE_NON_DETENTED ; V-Pot 8 ENC_ENTRY 15, 0, MIOS_ENC_MODE_NON_DETENTED ; Jog-Wheel ENC_EOT
A savoir le SR et les pin associé, puis le type d'encodeur (MIOS_ENC_MODE_NON_DETENTED, MIOS_ENC_MODE_DETENTED, etc)?
Pilo
-
salut!
Oui je vois ce que tu veux dire la conversion. Mais justement il est peut etre pas si dur d'ajouter "une vrai sortie" dmx sur la midibox, et avec le code approprié envoyer une info sur 8bits.
C'est vrai que c'est un peu plus dur si tu ne sais pas programmer (j'aurais envie de dire que c'est une bonne occasion pour apprendre? mais ca peut etre long et pas ce que tu recherche).
Smashtv tu peux le contacter sur ce forum, mais je te conseil peut etre de tenter un post dans une des sections international (en anglais) du forum ou tu aura surement plus de chance de trouver des pistes, réponses, pour ton projet!
Je ne connais pas de facon suffisante le DMX, et les applis dispo pour la midibox pour répondre convenablement.
Pilo
-
Je pensais qu'elles n'étaient pas bonne, mais n'en suis pas sur... (en fait j'ai regarder les valeurs que tu affichais contre celle que ca aurait du, mais bon, ca peut etre rien a voir).
Si tu vois le HD44780, c'est pas mal car tu peut tester les connections.
En effet ca semble standard dans la plupart des cas.
Mais vérifie au cas ou (le connecteur est, a priori, directment connecté sur les pin adequat du HD44780, au pire via resistance), et je pense que tu devrais trouver le problème comme ca! Je l'espère en tout cas ;)
Pilo.
-
Salut
comme le dit xarolium, tu as surement un problème de cablage du LCD.
Sans datasheet c'est dur a dire. Est-ce que tu vois le HD44780 dessus?
si oui, il faut prendre son datasheet, et a partir de la tu pourra retrouver le brochage correct du connecteur.
A vu de nez je dirai que le D0 est mal cablé, D3 aussi (mais je suppose par rapport au incorrection d'affichage, ca peut etre plus compliqué que ca).
-
Salut,
je connais pas grand chose au protocol DMX.
J'ai jeter quand meme un coup d'oeil au lien que tu donne (MIDI to DMX512), il semble tout a fait possible d'envoyer les messages midi attendu par ce convertisseur. Maintenant il faudra surement en effet faire un peu de code.
Mais tu dois aussi pouvoir t'en passer, avec une interface DMX pour midibox (ce que semble présenter le user project midiboxdmx?).
Pour l'histoire des valeurs, je ne comprends pas trop pourquoi il fait une convertion 7bits -> 8bits (a priori le core fait la convertion des pot sur 10bits, donc avoir 256 valeurs c'est jouables).
Il n'y a pas de raison a priori pour ne pas avoir 64 faders.
Enfin quelque soit la solution, il faudra surement un firmware customisé. Ca n'est pas forcément très compliqué (comme l'histoire de la convertion des 7bits vers 8). Comme il est dit sur la page midibox dmx, cela s'adresse a une personne avec des compétences en programmation (car tel quel le projet n'est pas totalement utilisable).
Il n'y a personne d'autre qui a tenté quelque chose avec du DMX? (si je dis pas de bétise, SmashTV m'en avait parlé... mais ca remonte a plusieurs années, et je ne sais pas si il a fait quelquechose ou non).
-
Bonsoir ;)
Super les liens!! et aussi le termen "jonc", que je ne connaissais pas pour ca... (et chercher tube acrylique, ca donne que des resultats sur la peinture!!).
Je vais regarder un peu ce qui est faisable, j'avais aussi été tenté par des boutons "moulés" (moxi avait donné des infos la dessus).
Bref a voir, merci pour les infos ;)
Alors oui les connecteurs ca peut etre un peu fragile en effet...
Sur ton DIN, les ci sont soudé directement, ou tu utilise un support? des fois ce genre de composants ne supportent pas trop bien la chaleur (quand on les soudes).
Ca devrait pas etre trop dur de trouver le CC sur le module, et je pense en partant comme ca, module après module, tu devrais arriver au final à tous faire marcher!
-
salut!
Donc alors tes connections correspondent exactement a ce qu'il y a dans le fichier fichier setup_midibox_lc.asm?
D'ailleurs celui la ne change pas après la compilation : la compilation prends tous les fichiers sources, et en fait un .hex.
De plus tu n'est justement pas obligé de suivre a la lettre les branchements donné par TK, car tu peux donc les customiser en recompilant.
Ensuite, tu as donc tout branché comme ca :
http://www.ucapps.de/midibox_lc/midibox_lc_buttons.pdf
?
Donc si je comprends bien : le premier DINx4 fonctionne toujours? (avec application non recompilé, et avec celle que tu recompile?), par contre le register qui suivent non?
Quand tu dis "quand je branche", tu branche le module alors que la midibox est éteinte? (c'est pas conseiller de le faire quand elle est sous tension).
Effectivement si quand ils sont brancher, la midibox ne s'allume pas, c'est que tu doit avoir un CC quelque part (si tu veux nous donner des photos pas de soucis).
Ce que je comprends pas, c'est comment alors tu branche le DIN des encodeurs dans les cas ou ceux ci fonctionnent?
Ah et a tu utilisé des connecteurs pour les modules, ou tu a soudé des cables dessus (pour les relier entre eux)?
L'avantage d'utiliser des connecteur c'est que tu peux facilement les connecter/deconnecter, et donc pour trouver les problème c'est plus facile (tu peux meme utiliser d'autre application que la LC pour les test).
Pour isoler les problèmes, je pense que le plus simple est de prendre les éléments un a un.
On devrait finir par tout faire marcher correctement ;)
Pas de soucis pour l'aide, ca m'aide aussi à me remetre un peu dedans! ;)
J'ai tous les éléments (fader motorisé, encodeur, lcd, switch, led etc), les modules principaux (core, mf, quelque DIN et DOT, meme le USB/midi) mais c'est tout un peu n'importe comment (j'avais essayer pas mal de truc avec la midibox), il faut que je mette de l'ordre un peu et que je trouve comment faire un boitier... car c'est pas du tout pratique d'avoir tout ca qui se ballade. Je pensais faire une face avant en alu, mais les slots pour les fader... pas simple à faire. Je regardais, mais sans top de succès, ou trouver du dibbon? (je suis assez curieux de voir a quoi ca ressemble!). De même pour les switch, je pensais utiliser des tige d'acrylique transparente (entre 6 et 10mm de diamètre), pour mettre au dessus des switch, et coller une led à coté (sous la face avant) pour les illuminés. C'est pas tant un problème de design (quoi que ca serait chouette), mais ca évite aussi d'avoir a percer un trou par led qui vont avec les switch. Mais je n'arrive pas a trouver ces tiges en france, et je sais meme pas exactement comment ca peut se travailler...
-
Arf avoir de l'ambition ce n'est pas avoir les yeux plus gros que le ventre!! quand je vois (et je suis pas le seul), la photo de ta midibox... ca fait baver quand meme!
De plus je pense avoir trouver le problème :)
Donc déja je pense qu'il n'y aucun problème de court circuit car sinon rien ne marcherait jamais.
En me disant que dès que tu utilisais une appli recompilé, tu n'as plus les encodeurs etc, je me dis que peut etre tu n'a pas configurer correctement :
dans le fichier setup_midibox_lc.asm tu as ces lignes :
;; NOTE2: the shift registers are counted from zero here, means: 0 is the first shift register, 1 the second... #define LEDRINGS_SR_CATHODES 8 ; shift register with cathodes of the 8 LED rings #define METERS_SR_CATHODES 9 ; shift register with cathodes of the 8 meters #define LEDRINGS_METERS_SR_ANODES_1 10 ; first shift register with anodes of the 8 LED rings (and 8 meters) #define LEDRINGS_METERS_SR_ANODES_2 11 ; second shift register with anodes of the 8 LED rings (and 8 meters) (...) #define LEDDIGITS_SR_SEGMENTS_1 12 ; shift register which drives the segments of digit 7-0 (right side) #define LEDDIGITS_SR_SELECT_1 13 ; shift register which selects the digits 7-0 #define LEDDIGITS_SR_SEGMENTS_2 14 ; shift register which drives the segments of digit 15-8 (left side) #define LEDDIGITS_SR_SELECT_2 15 ; shift register which selects the digits 15-8 (...) MIOS_ENC_PIN_TABLE ;; encoders 1-16 ;; SR Pin Mode ENC_ENTRY 13, 0, MIOS_ENC_MODE_NON_DETENTED ; V-Pot 1 ENC_ENTRY 13, 2, MIOS_ENC_MODE_NON_DETENTED ; V-Pot 2 ENC_ENTRY 13, 4, MIOS_ENC_MODE_NON_DETENTED ; V-Pot 3 ENC_ENTRY 13, 6, MIOS_ENC_MODE_NON_DETENTED ; V-Pot 4 ENC_ENTRY 14, 0, MIOS_ENC_MODE_NON_DETENTED ; V-Pot 5 ENC_ENTRY 14, 2, MIOS_ENC_MODE_NON_DETENTED ; V-Pot 6 ENC_ENTRY 14, 4, MIOS_ENC_MODE_NON_DETENTED ; V-Pot 7 ENC_ENTRY 14, 6, MIOS_ENC_MODE_NON_DETENTED ; V-Pot 8 ENC_ENTRY 15, 0, MIOS_ENC_MODE_NON_DETENTED ; Jog-Wheel ENC_EOT
il faut que cela soit configurer suivant la facon dont tu as connecté tes encodeurs, led, etc sur les DIN et DOUT. Le hex compilé fournis dans l'archive doit correspondre a ta config, mais ce qu'il y a dans le code... et donc quand tu recompil, et bien la config software n'est plus bonne!
Pourrais tu nous donner la facon dont tu as cablé tout ca? (sur quel DIN sont les encodeur, sur quel DOUT sont les led, vu, et ledring?)
Je pense que c'est ca?
Si ce n'est pas ca, on trouvera quand meme!! (je suis entrain de ressortir des cartons tout ce qui concerne la midibox ;))
-
Je passe rarement, mais de temps en temps quand même! ;)
Alors la première chose que je testerai, c'est de remetre une application LC "non modifiée" (sans les modifs sur les led ring etc), et voir si comme avant, ta jog et tes encodeurs fonctionnent a nouveaux (si c'est non, alors c'est que le problème devrait etre materiel et non logiciel).
Je regarde en vitesse le code de l'appli LC, mais je vois rien qui empecherait le fonctionnement des encodeurs. Mais bon on est jamais sur!
Pilo.
-
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.
-
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.
-
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 ;)
-
No problems Lylehaze, I will try to see on my side what I can do :)
Do you think it's possible to receive and decode the IR signal in MIOS, using USER_Tick or USER_Timer?
-
Hey everyone!
I'm back here :)
I'm looking for some kind of IR remote decoder with a midibox (to controll either a PGA, or an alps motorized pot for a power amp), and decided to see if anybody here hasn't got the same idea :)
Lylehaze : did you go any further in IR control? (RC5 decoding, or something likethat?).
I also don't have much time to work on that kind of stuff too, and that's why I'm looking in a MBHP powered solution. I think it could be great to have this working with the PGA mixer stuff.
Pilo.
-
Salut,
y'a pas de quoi, c'est normal de donner un coup de main :)
Alors pour le Display_Tick : c'est une fonction qui est appellé par MIOS pour mettre à jour l'affichage. C'est une fonction qui est a redéfinir dans ton programme, pour afficher ce que tu veux. C'est fait ainsi, car l'affichage n'a pas forcément besoin d'etre mis à jour "souvent", et de ce fait, MIOS s'occupe de gérer quand il faut l'appeller.
N'hésite pas à poster ton code, et si il y a des problèmes etc ;)
Pilo
-
Ah super que ca marche :)
sauf sdcard? je pense que comme le suggère stryd, tu devrais essayer de retelecharger l'archive, et de compiler a partir de ca.
stryd thanks for the help ;) you're right about the pin identifier error... it cames from lines where there can't really be an error.
-
Merci, pilo! I'll watch quietly from the background now
You can still be usefull I think :) so keep watching :P
Alors j'ai tout installé, et ca compile sans problème ici... (mais je suis sous linux c'est peut etre un peu plus simple, je sais pas).
je note toutefois des différence entre nos ligne de compilation... ce qui est étrange et certainement la source du probème
(j'ai remplacer le chemin vers mios par mios_base pour comparer rapidement).
sh mios_base/mios-sdcc -c -mpic16 -p18f452 --fommit-frame-pointer --optimize-goto --optimize-cmp --disable-warning 85 --obanksel=2 -I./ -I./src -I mios_base/include/c -I mios_base/include/share -I mios_base_v1_0b/modules/sdcard -DDEBUG_MODE=0 main.c -o _output/main.o
sh mios_base/mios-sdcc -c -mpic16 -p18f452 --fommit-frame-pointer --optimize-goto --optimize-cmp --disable-warning 85 --obanksel=2 -I./src -I mios_base/include/c -I mios_base/include/share -DDEBUG_MODE=0 main.c -o _output/main.o
j'ai un -I. et -Imios_base_v1_0b/modules/sdcard ... on va demander à stryd_one :)
Hey stryd, it seems that his make is not dealing with declaration of SDCC_INCLUDE over multiple files? The only include are those declared from common.mk, but the -I. (from the makefile in example directory) and
-I $(MIOS_PATH)/modules/sdcard (from sdcard.mk) are ignored....
I don't know if this comes from make under windows... any idea?
Thanks ;)
Pilo
MBLC recompilation
in Français
Posted
Je garantis pas que ca fonctionne du premier coup, mais ca doit ouvrir une piste.
Le fonctionnement est simple : cette fonction sert a mapper les 55 colonnes "originales" du LCD de la LC sur les colonnes du/des lcd connecté sur ta midibox.
les lcd sont adressé au niveau de MIOS comme ceci : de 0x00 à 0x3f tu a la première ligne, de 0x40 à 0x7f tu as la seconde, de 0x80 à 0xbf la 3eme ligne (ou premiere ligne du second lcd) et de 0xc0 à 0xff. Donc en tout ca fait 4 ligne de 64 charactère max (répartit sur un ou 2 lcd, y'a des exception aussi en fonction des LCD utilisés, etc).
Bref donc la quand la fonction fait retlw 0x00 + 0 ben c'est le premier charactère de la premier ligne, retlw 0x00 + 1 le second, 0x80 + 0 le premier de la 3eme ligne (ou première du second lcd), etc.
Donc si tu utilise des LCD de 24 charactère, le charactère 0x00 + 24 (qui les 25eme charactères de la première ligne), n'est pas affiché.
et tu as 55 valeur possible (la premièer ligne de la fonction indique que en fonction du paramètre passer on va executer tel ligne de code), et pour chacune de ses 55 valeurs du determine quelle "colonne" va etre utilisé (en fait c'est quelle colonne sur la première ligne, car ensuite determiné le charactère de la 2eme ligne c'est facile, il suffit d'ajouter 0x40).
A noté que 0x80 est en base 16 (préfix 0x), c'est donc 16 * 8 = 128. Dans 0x80 + 24 par exemple, 0x80 est en base 16, mais pas 24 (pas de préfix 0x).
Mais je pense qu'une fois que tu verra ce que ca fait, tu arrivera a ajuster ca pour tes besoins!