bonjour à tous,
je n'arrive pas a faire marcher la sortie serie usart asynchrone du 16F876 à 4MHz.
Mon programme devrai normalement envoyer 4 octets à suivre, à 9600 baud, sans parite et avec un bit stop :
le premier contenant D'128'
le deuxieme contenant D'0'
le troisieme contenant B'00000011'
et le quatrieme contenant D'127'
je connait pas vraiment l'assembleur donc il doit y avoir des erreurs betes car pour le reste du programme j'ai préferé le faire sous Flowcode.
le code est en dessous ci quelqu'un pourrait me dire se qui cloche se serai sympa.
bsf STATUS,RP0 ; passer en banque 1
movlw B'00000010' ; mode asynchrone, émission 8 bits haute vitesse
movwf TXSTA ; dans registre TXSTA
movlw D'25' ; valeur calculée de SPBRG
movwf SPBRG ; dans baud rate generator
bcf STATUS,RP0 ; passer en banque 0
movlw D'128' ; CHARGER Start Byte
movwf TXREG ; OCTET DANS REGISTRE DE TRANSMISSION
bsf STATUS,RP0 ; passer en banque 1
bsf TXSTA,TXEN ; envoyer l'octet
bcf STATUS,RP0 ; passer en banque 0
btfss PIR1,TXIF ; Start Byte charger?
goto $-1 ; si non attendre
movlw D'0' ; charger Device Byte
movwf TXREG ; Device Byte dans registre de transmission
btfss PIR1,TXIF ; Device Byte charger?
goto $-1 ; si non attendre
movlw B'00000011' ; charger l'octet numero et direction du moteur
movwf TXREG ; octet dans registre de transmission
btfss PIR1,TXIF ; octet numero et direction charger?
goto $-1 ; si non attendre
movlw D'127' ; charger la variable vitesse gauche
movwf TXREG ; octet dans registre de transmission
bsf STATUS,RP0 ; passer en banque 1
btfss TXSTA,TRMT ; Èmission terminÈe?
goto $-1 ; non, attendre
bcf TXSTA,TXEN ; fin de l'Èmission
merci d'avance
-----