RS232

S

SamanthaL

Guest
Hei alle sammen,

Jeg arbeider med RS232 på en PIC16F874A.Jeg
har vært debugging denne koden for en stund og ikke kan finne ut hvorfor den ikke overfører.Jeg
har satt opp LED
er å vise når det blir til visse deler av koden, men ingenting blir overført selv om den gjør det gjennom all koden.Jeg mangler noe?

Koden er vedlagt nedenfor.

På forhånd takk for din tid og tålmodighet.

Jeg bruker HyperTerminal med baudhastighet 9600, ingen maskinvare kontroll og 1 stoppbit.

 
Ive fikk en rask titt på koden og la merke til en eller to ting.Disse kan / kan ikke løse problemet.
Hvis du kompilere koden, får du denne meldingen fra kompilatoren,

Melding [305] C: \
temp \ SERIAL5 \ SERIAL_5.ASM 81: Bruke standard destinasjon 1 (fil).

det refererer til denne linjen når gjenopprette registrerer på avbruddsordrelinje exit.

movf savepclath

dette trekk innholdet i savepclath tilbake i savepclath, bør det være

movf savepclath, w

mpasm støtter instruksjon 'movfw som gjør ting klarere.ie

movfw savepclath

I overfører rutine, er du aktiverer avbruddsordrelinje men ikke bruker den i avbruddsordrelinje rutine.Den avbruddsordrelinje flagg angis om de avbruddsordrelinje aktivere er satt, bare ikke vektoren til avbryte, dette gjelder alle avbryter, kan du bruke flaggene ouside av avbryter.
Du kan også bruke TRMT bit å oppdage når TXREG tomt.

Code:; Overfører

overfører

bsf PORTD, 1

movlw 0x031; Maksimalstørrelse er en byte?

movf tx_data, W; denne overskriver 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

tilbake

 

Welcome to EDABoard.com

Sponsor

Back
Top