Jump to content

pilo

Frequent Writer
  • Posts

    1,093
  • Joined

  • Last visited

  • Days Won

    4

Everything posted by pilo

  1. ok je vois alors :) un switch rotatif, et des résistances en série, pour faire une gros pont diviseur, que tu branche sur une entrée analogique. AU niveau du firmware tu gère ca comme un potentiomètre, mais qui aurait que 6 valeurs.
  2. thank you thorsten ! actually I wanted to make a 100% C sm driver, as you already wrote an assembler version :) I knew that I will be blame for doing this :-[ :P
  3. Actually the row number seems to be increment before the notify togle event is called. So I tried this (I know I shouldn't call anything in SR_Service_Finish). ///////////////////////////////////////////////////////////////////////////// // This function is called by MIOS when an button has been toggled // pin_value is 1 when button released, and 0 when button pressed ///////////////////////////////////////////////////////////////////////////// void DIN_NotifyToggle(unsigned char pin, unsigned char pin_value) __wparam { if(pin == 128) { unsigned char i; for(i = 0; i < 8; i++) { MIOS_MF_FaderMove(i, 800); } } if(pin == 129) { unsigned char i; for(i = 0; i < 8; i++) { MIOS_MF_FaderMove(i, 400); } } if(pin == 130) { unsigned char i; for(i = 0; i < 8; i++) { MIOS_MF_FaderMove(i, 000); } } else if(pin > 8) { MIOS_LCD_CursorSet(0x00); MIOS_LCD_PrintBCD5(pin); } } ///////////////////////////////////////////////////////////////////////////// // This function is called by MIOS after the shift register have been loaded ///////////////////////////////////////////////////////////////////////////// void SR_Service_Finish(void) __wparam { unsigned char i; unsigned char row_tmp = row; for(i = 0; i < 8; i++) { if(MIOS_DIN_PinGet(i) == 0) { DIN_NotifyToggle(128+row_tmp*8 + i, 1); } } MIOS_DOUT_PinSet1(row); row++; if(row > 7) row = 0; MIOS_DOUT_PinSet0(row); } But i still haven't got the right rown number... and I'm still trying to find where I am wrong. Maybe another solution is to update the row number and DOUT state, if DIN notify toggle has got a higher "priority" than USER_tick?
  4. Not if you send your patch to the GPASM group :) then it would be available to everyone. I don't really understand why this macro feature is not correctly handle by gpasm, and I was quite disappointed by the complexity of their lex/yacc sources.
  5. Hi Synapsys! I try to mod the gapsm yacc source code... but the yacc source code looks weird to me :) (to much C instr in it). Compiler was one of my courses last years :-[ but to much theory and not enough practice maybe.
  6. hehe I run MPASM is a dosemu window under linux :) DOS version so. GPASM can't compile MIOS because it doesn't handle MACRO correctly.... But I'm sure I correct this "END expected" error, and it was so dumb that I forget it.... ???
  7. I fix it without moving the END function... the file seems to be the same! lol I can't remember what was the problem...
  8. it's something else... I really can't remember how I fix it :-[
  9. Excellent :) I made a tiny a quick makefile before, but only to compile single .c file project . I change for yours npw ;) Thank you!
  10. Hi! here's my source code for handling a switching matrix with the C apps, using DIN and DOUT : int row ... void Init(void) __wparam { Â int i; Â /* Matrix Init */ Â for(i = 0; i < 8;i++) { Â Â MIOS_DOUT_PinSet1(i); Â } Â row = 0; Â MIOS_DOUT_PinSet0(0); } ... void SR_Service_Prepare(void) __wparam { Â MIOS_DOUT_PinSet1(row); Â row++; Â if(row > 7) row = 0; Â MIOS_DOUT_PinSet0(row); } void DIN_NotifyToggle(unsigned char pin, unsigned char pin_value) __wparam { Â MIOS_LCD_CursorSet(0x00); Â MIOS_LCD_PrintBCD5(pin); Â MIOS_LCD_CursorSet(0x40); Â MIOS_LCD_PrintBCD5(row); } Works well. Maybe need too add some bouncing handling stuff too. And there's a small shift in the switch row number ;D
  11. ok ;) now I read again your first message and understand what you meant :) I also make a big siwtch/led pcb before, but I don't plan to use it anymore... and I switch to breadbpard for that (easier to place components, and a lot of wire cna be solder on those. For the emulator stuff : I can't compile mios with gpasm (macro problems) and so it's very hard to see why it doesn't works... only with the hex file, I get no message on the screen, but it works for old pic16f877 apps, so I guess it's possible to run mios.
  12. I got the same problem 2 weeks ago, and I can't remember what did I do to make it works :-[ Something really simpe!! let me look again.
  13. Pas de sens pour le quartz non plus ;)
  14. Ok thanks ;) I try to merge both bootstrap and mios hex file, without luck >:( pic16f firmware works (with LCD). You mean a nop at 0x0000 and (replace the goto 0x0...) and another one at 0x0004 ? (replace the sam kind of goto) as there's already a nop at 0x0002. I think you mean if it doesn't work? The aim of an emulator is just for "fun" and debugging apps :)
  15. Hi! I'm looking for the bootstrap loader source code. I want it to be able tu use .cod file for running it with gpsim pic emulator, in order to make a real hardware emulator for midibox. I can work with hex file only (and compile bootstrap mios and apps hex file into one big hex file), but I will not have the symbol stuff in the emu... which is not very easy to do. Thanks Pilo
  16. la solution avec AOP est pas mal aussi.... mais je continue de penser qu'une solution soft serait plus plug'n play :)  et réutilisable.
  17. mmm le problmème c'est que si tu met un 12V non réguler pour le potard, ca va faire osciller les valeurs, il faut impérativement mettre une zener ou un regulateur. Pour l'alim : oui en effet la question n'est pas très claire, mais on a tous été novice ;) Alors, l'alimentation, ca dépend ce que tu prends : si tu prends un transformateur (un abaisseur de tension ALTERNATIVE), alors tu peuxla brancher directement sur le module core (qui dispose du pont de diode et des condos pour redresser et filtrer la tension). Si tu utilise une alimentation CONTINUE, alors la tu peux aussi la brancher directement sur le module core,comme dans le cas du transfo (la tensionne sera pas redresser), et le régulateur du module core s'occupera de réguler a 5v. En revanche, la tension nécéssaire pour les pot, qui doit aussi être régulé, il faudra faire quelque chose. Donc soit un regulateur, soir une régulation a base de zener. A partir de 12V, comme tu le dis tu arrivera seulement à 4.8V (c'est pourquoi je trouve la solution soft plus simple pour gerer le problème, elle est "tout terrain"). Donc pour le 0V (la masse), que tu va utiliser pour tes potentiomètre, "c'est celui" du module core (il y a 2 pin pour le connecteurs de potards avec le 5V et le 0V). Si tu utiliser une tension de reference externe pour l'histoire des 40%, le 0V, commun a tout le circuit, sera le meme. Donc tu peux le prendre "n'importe ou" (module core, AIN). voila j'èspère que j'ai été claire ::) (j'en suis aps sur alors n'hésite pas a demander plus d'info)
  18. en fait sur un regulateur de 78xx il fait que la tension d'entrée soit supérieur de 3V à la tension de sortit, mais pas plus de 7V de plus (donc pour 5V, il te faut au minimum 8V, et un maximum de 12V). Meme si en pratique ca peut marcher dans une plage un peu plus large :) Pour les zener, c'est différent, mais en général c'est fait pour des petites puissance. Une diode zener laisse passer le courant en sens inverse la diode quand la tension dépasse la tension de zener. L'avantage c'est que cette tension de seuil zener est la tension présente ensuite au borne de la diode. il suffit de la mettre en série avec une résistance (dont la valeur dépend de la puissance consomer) et tu as une tension de référence :)
  19. ah oui, imbatable la solution d'un tension plus élevé :) attention toute fois, 9V c'est peut etre un peu sjute? car si les potards ne couvre que 40% de la course, meme avec 9V on derait pas encore faire du 0-5V. Donc je pensais carément faire 12V, avec une zener pour éviter la tension de chutte necessaire (la ca consome pas bcp). Pour le core oui il est alimenter en 5V, et le régulateur est sur le module core ;)
  20. Et le boitier tu peux le trouver chez selectronic ;) http://www.selectronic.fr Mais tu va voir, c'est pas donné...
  21. En fait faire un boitier avec un plan incliné n'est pas facile.. Mais ne y pensant cette semaine j'ai trouvé une astuce qui peut rendre pas mal (je sais pas avec quoi faire des plans....) Deja, éviter les découpe autre qu'avec des angles droits, trop dur a faire a la main, et trop couteuse, pareil pour le pliage... je suis entrain de tester la faisabilité de boitier rack 19" avec seulement de l'alu acheter a la decoupe et des équèrres en alu, prix de reviens très faible... Ce que j'appelle equerre c'est en fait un profilé ALU en L (acheter par barre de 2m). j'essais de faire un dessin....
  22. Ce genre de boitier semble facile a trouver non? je regarde ce soir dans mes catalogue. Sinon, tu peux le faire en entier... avec des equerre d'alu (genre 1.5x1.5cm) et tu fait découper des plaques d'alu (ca coute pas très cher). Je me demandais si j'allais pas faire pareil pour la mienne.....
  23. Je pense que tu as compris ;) c'est tout a fait ca! Va pour la solution soft alors, car j'ai deja vu ce genre de question trainer sur le forum, si on a un controlleur qui peut pas donner de valeur dans la plage 0/5V, une petite routine de convertion et hop :) Et puis étant donné la puissance du PIC, ce genre de solution est tout a fait approprié je pense (alors que rajouter du hardware, c'est plus lourd et plus difficile a mettre au point).
  24. Salut! alors : tout ceux pour les modules ;) mais comme tu compte achter des kits, en, les fiches midi et alim (comme tu le dis plus bas)heeeuu du cable? Aucune idée.... peut etre le meme genre que ceux sur les bornes arcades? n'importe quel magazin de composant qui se resepcte :) y'a un thread avec une longue liste sur le forum (il est collé). POur le problème des molette de modulation, en effet c'est un problème. ALors je connais pas la solution la plus jolie pour regler ca, mais j'en vois 2 : amplifier le signal, pour que "a fond" tu as bien les 5V et non 2V (nécéssite un ampli op). Ou alors jouer sur la résolution (au niveau software du pic), comme on numérique sur 10bits, si tu veux un message que sur 7, et bien tu as assez de valeurs sur le tiers de la course pour reconstituer ca (c'est pas clair... je sais ;D). Faudrai demander ca sur le forum anglais, pour que Thorsten donne un bref avis la dessus :)
×
×
  • Create New...