Als ik de RS232 op 4800baud wil gebruiken ipv 9600 is het dan goed om de tijden 2X zo lang te maken?
Dus de '26' te veranderen in 52 bijv.?
;=================================================================================
RS232_LEES_BYTE
clrf BYTE
rs232_lees_byte_1
btfsc TXD ;wachten tot TXD-lijn laag getrokken wordt
goto rs232_lees_byte_1
movlw D'26' ;130 us wachten tot eerste databit voorstaat
call WACHT_5us
movlw D'8' ;we gaan nu D0-D7 inlezen ...
movwf BIT_NR ;... en houden de teller hiervoor in BIT_NR bij
rs232_lees_byte_2
rrf BYTE,1 ;bits in BYTE 1 positie naar rechts schuiven
bcf BYTE,7 ;eerst linker bit leeg maken ...
btfsc TXD ;... en als DATA TXD niet '0' is ...
bsf BYTE,7 ;... dan linker bit aan zetten
movlw D'19' ;100 us wachten tot volgende databit voorstaat
call WACHT_5us
decfsz BIT_NR,1 ;aftellen tot BIT_NR=0
goto rs232_lees_byte_2
movf BYTE,0 ;BYTE klaar zetten in werkgeheugen
;met de stopbit doen we niets
rs232_lees_byte_eind
return
;=================================================================================
RS232_SCHRIJF_BYTE
bcf RXD ;startbit versturen
movlw D'19' ;95 us wachten (met overhead circa 104 us)
call WACHT_5us
movlw D'8' ;we gaan nu D0-D7 wegschrijven ...
movwf BIT_NR ;... en houden de teller hiervoor in BIT_NR bij
rs232_schrijf_byte_1
btfss RXD
goto rs232_schrijf_byte_2
btfss BYTE,0
bcf RXD
goto rs232_schrijf_byte_3
rs232_schrijf_byte_2
btfsc BYTE,0
bsf RXD
rs232_schrijf_byte_3
movlw D'19' ;100 us wachten tot volgende databit voorstaat
call WACHT_5us
rrf BYTE,1 ;bits in BYTE 1 positie naar rechts schuiven
decfsz BIT_NR,1 ;aftellen tot BIT_NR=0
goto rs232_schrijf_byte_1
bsf RXD
movlw D'20' ;100 us wachten voor stopbit (totaal 104 us)
call WACHT_5us
return
rs232 op 4800baud ipv 9600
Re: rs232 op 4800baud ipv 9600
Mag ik vragen, waarom je een lagere baudrate wilt ?
Re: rs232 op 4800baud ipv 9600
Tuurlijk!
Ik heb de commenucatie niet met een PC, maar met een PIC, de 18F877. Ik heb het idee dat de data soms vervormd binnenkomt.
Ik heb de commenucatie niet met een PC, maar met een PIC, de 18F877. Ik heb het idee dat de data soms vervormd binnenkomt.
Re: rs232 op 4800baud ipv 9600
misschien kun je eens proberen om hem aan te sluiten op de pc, en dan in hyperterminal kijken of alle gegevens steeds goed door komen.
Re: rs232 op 4800baud ipv 9600
Ik heb ook hetzelfde probleem als ik het via een PC uitlees, met name als ik de analoge IC uitlees, dan springt de waarde een paar keer naar 53 en 'denkt' dat het licht, vandaar dat ik even wilde proberen om op een lage snelheid wilde proberen.
De programma code is goed, dat weet ik zeker, want ik heb hetzelfde op de PC als op de PIC.
De programma code is goed, dat weet ik zeker, want ik heb hetzelfde op de PC als op de PIC.
Re: rs232 op 4800baud ipv 9600
Misschien de hardware (crystal, condensatoren) of de spanningsbron.