Salut à tous,
Est ce que quelq'un peut m'aider dans mon projet?
Le projet est à base de microcontroleur, donc je vais faire un code en assembleur ou en C, je dois faire convertir une trame de longueur 26 bits vers une trame serie pour l'envoyer par un câble serie RS485, je dois tout d'abord saisir la trame et faire le controle des erreurs à l'aide des bits de parité, je suis dans la phase ou je dois enregistrer la trame dans les registres de microcontroleur (là je vois pas comment faire les choses, j'ai pas pu manipuler ça, et j'ai pas pu utiliser les registres de microcontroeleur car c'est mon premier programme de microntroleur à ecrire).
voici un bout de programme que j'ai fais:
;-------------------------------------------------
;*********** Programme d 'interruption ***********
;-------------------------------------------------
; Lire les entrées sur RB1 et RB2
movf PORTB, RB1 ;charger la variable D0 par l'entrée de RB1
movf PORTB, RB2 ;charger la variable D1 par l'entrée de RB2
movlw 25 ;charger 25 dans w
movwf compt1 ;initialiser compteur par 25
boucle
;comparer les entrées D0 et D1
movf RB1, w ;charger le registre w par D0
subwf RB2, w ;soustraire W de D1 pour faire la comparaison
btfsc STATUS, Z ;tester le bit Z de régistre STATUS si Z=1 alors D0 et D1 sont égaux
sleep ;si oui le microcontroleur ne fait rien
;si non
clrf STATUS ;il faut reinitialiser le registre STATUS pour l'utiliser une autre fois
btfss PORTB, 1 ;tester le niveau de RB1, s'il est à 1 alors le bit récuperé n'est pas zéro
goto recuperer_bit ;recuperer le bit et l'enregistrer dans un registre!!!!!!!!
btfss PORTB, 2 ;tester le bit de RB2, s'il est à 0 alors le bit récuperé n'est pas 1
goto recuperer_bit
decfsz compt1 , f ;décrémenter compteur et tester sa valeur
goto boucle ;si compteur pas 0, on boucle
;stockage registre variable
; boucle 26 fois
; controle erreur
RETFIE ; retour d'interruption
Je serais ravi de lire vos réponse.
-----