Bonjour,
Actuellement je suis en train de modifier un code en assembleur et je suis bloqué sur l'execution de fonctions. En effet je souhaite faire executer une première fonction pendant un temps donné, puis par la suite executer une seconde fonction pendant un autre temps donné.
Le problème rencontré actuellement est que j'arrive bien à executer la première fonction, mais pour la seconde je n'arrive à rien. J'ai l'impression que le compteur n'est pas pris en compte.
Voici le code testé et qui ne fonctionne qu'à moitié :
Y at-il quelqu'un qui aurait une idée ou une explication de pourquoi cela ne fonctionne pas ? Est-ce qu'il est possible qu'il existe une commande qui inhibe ce compteur coun_e dans la fonction Rx_receive ?Code:main call init_Tx ; appel de la fonction d'initialisation Tx movlw .50000 ; chargement de la valeur 50000 dans f movwf coun_d ; ecriture de la valeur dans f dans la variable coun_d (soit 50000) call Tx_transfer ; appel de la fonction suivant le nombre de cycles défini dans coun_d decfsz coun_d,f ; décrémente f, passe le goto $-2 si coun_d = 0 goto $-2h call init_Rx ; appel de la fonction d'initialisation Rx movlw .30000 ; chargement de la valeur 30000 dans f movwf coun_e ; ecriture de la valeur dans f dans la variable coun_e (soit 30000) call RX_receive decfsz coun_e,f ; décrémente f, passe le goto $-2 si coun_e = 0 goto $-2h goto main ; renvoi main
Merci pour votre aide.
-----