Jump to content

Modification de prog pour ajout de Velocité


xarolium
 Share

Recommended Posts

Salut a tous

Je suis entrain de realiser un module tout simplejuste avec un module core pour midifier ma boite a rythme donc j'ai telecharger le fichier J5 Dout v1 3 car je voulais le modifier pour lui rajouter la velociter mais la je nage un peu dans quel fichier vais je pouvoir ajouter ca. Mon but est qu'une des huits sortie sur J5 ne s'enclencher que quand une des 7 autres sorties dépassent 100 en velocité tous ca pour controler l'accent de ma boite a rythm

donc j'ai besoin de votre aide pour ma premiere modif de programme.

merci

Link to comment
Share on other sites

salut, je suis une bille en c (comme en assembleur d'ailleurs ;) ), donc mon aide va être toute relative.

déjà, on lit dans le fichier main.asm,ligne 248, :

        ;; set the pin value depending on velocity:

;;    - 0x00: set pin to 0V

;;    - other values: set pin to 5V

movf MIOS_PARAMETER3, W

....

donc à priori les infos de vélocité sont stockées dans "MIOS_PARAMETER3"...

ensuite tes changements devront être fait dans le fichier "J5_dout.inc, à la fonction "J5_DOUT_PinSet"

là, il te faut faire un truc à base de "if", par exemple, tout d'abord créer une variable "valeur de vélocité", avec des bit que tu actives en fonction de la vélocité reçue , ex: tu actives le bit (x) si velocité supérieure à 80..(créer une variable te permettra d'éviter de faire des manips involontaires sur MIOS_parameter3, c'est ma méthode parce que souvent je comprends pas trop ce que je fait!

ensuite dans J5_DOUT_PinSet, juste aprés :

J5_DOUT_PinSet

;; make it superfast: branch depending on WREG

IFSET WREG, 2, rgoto J5_DOUT_PinSet_4567

J5_DOUT_PinSet_0123

IFSET WREG, 1, rgoto J5_DOUT_PinSet_23

J5_DOUT_PinSet_01

IFSET WREG, 0, rgoto J5_DOUT_PinSet_1

J5_DOUT_PinSet_0

btfsc MIOS_PARAMETER1, 0 ; set A.0

bsf LATA, 0

btfss MIOS_PARAMETER1, 0

bcf LATA, 0

return

et avant

J5_DOUT_PinSet_1

...

tu mets un code qui teste d'abord le bit de ta variable et qui saute d'abord (il faut activer l'accent avant de déclencher la note) jusqu'à l'activation du pin accent si ce bit est à 1:

>>btfsc ta_variable, (x)<<

>>--> saut jusqu'à la fonction pour activer en plus le pin Dout pour l'accent (sorry, là le code devient du chinois pour moi, à priori t'as juste à faire sauter le programme jusqu'au pin correspondant, par exemple "J5_DOUT_PinSet_7")<<

>>sinon ça continue ici avec le code normal<<

oublie pas de remettre à zéro ta variable aprés avoir activé ton pin accent, sinon la boucle programme va tourner en rond (elle va continuer à sauter jusqu'à ton pin accent et ne plus passer par l'activation des autres pins:

(si tu as choisi le pin 7 pour l'accent):

J5_DOUT_PinSet_7

btfsc MIOS_PARAMETER1, 0 ; set E.2

bsf LATE, 2

btfss MIOS_PARAMETER1, 0

bcf LATE, 2

        clrf  ta_variable ou bcf ta_variable ,(x)

return

faut pas me demander plus :( !

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...