rs232

S

SamanthaL

Guest
Bonjour à tous,

Je travaille avec RS232 sur un PIC16F874A.J'ai été le débogage de ce code pour un certain temps et ne peut pas trouver la raison pour laquelle il
n'est pas d'émettre.J'ai mis en place LED pour montrer quand il fait à certaines parties du code, mais rien
n'est transmis, même si elle est en elle par le biais de l'ensemble du code.Am I missing something?

Code est jointe ci-dessous.

Merci d'avance pour votre temps et votre patience.

J'utilise Hyperterminal à 9600 bauds, pas de matériel de contrôle, et 1 bit d'arrêt.
Désolé, mais vous avez besoin de login pour afficher cette pièce jointe

 
Ive a eu un coup d'oeil sur le code et a remarqué une ou deux choses.Il pourrait / pourraient ne pas résoudre le problème.
Si vous compilez le code, vous obtenez ce message du compilateur,

Message [305] C: \ TEMP \ SERIAL5 \ SERIAL_5.ASM 81: Utilisation de destination par défaut de 1 (fichier).

il se réfère à cette ligne lors de la restauration des registres sur les interrompre sortie.

movf savepclath

ce déplace le contenu de savepclath dans savepclath, il devrait être

movf savepclath, w

mpasm soutient l'instruction 'movfw "qui rend les choses plus claires.c'est-à-dire

movfw savepclath

Dans transmettre votre routine, vous permettant de ne pas l'interrompre, mais son utilisation dans la routine d'interruption.Les drapeaux sont mis d'interrompre ou de ne pas permettre l'interruption est fixée, il ne fait tout simplement pas le vecteur d'interruption, cette règle
s'applique à tous les interruptions, vous pouvez utiliser les drapeaux en dehors des interruptions.
Vous pouvez également utiliser le TRMT peu à détecter lorsque le TXREG est vide.

Code:; Transmettre

transmettre

bsf PORTD, 1

movlw 0x031; taille maximale est de un octet?

movf tx_data, w, ce qui écrase le 0x31

transmitw

bsf PORTD, 2

btfss PIR1, TXIF

goto transmitwgietx

bcf INTCON, GIE

btfsc INTCON, GIE

goto gietx

movwf TXREG

bsf INTCON, GIE

bsf PORTD, 7

retour

 

Welcome to EDABoard.com

Sponsor

Back
Top