hi,
versuche gerade daten vom pic zum pc über RS232 zu senden, aber des funktioniert irgendwie nicht.
mein pic läuft mit einem 10mhz takt und ich die daten sollen mit 19200bps zum pc übertragen werden.
am pc kommen immer gleich vier byte an.
1.byte 11111110
2.byte 00000000
3.byte 00000000
4.byte 00000000
es sollte aber es sollte nur ein byte ankommen und zwar 10101010
sieht also so aus als wäre da was an den warteschleifen nicht in ordnung, aber nach meinen rechnungen stimmen die.
was könnte noch sein?
hier ist noch der quelltext
Code:sendtopc movlw D'170' movwf senddatatopc ;##### START OF SENDING STARTBIT movlw D'18' movwf loops2 bcf PORTC,1 startbitwait nop ; 1 Befehl nop ; 1 Befehl nop ; 1 Befehl nop ; 1 Befehl decfsz loops2,1 ; 1 Befehl goto startbitwait ; 2 Befehle ;##### END OF SENDING STARTBIT ;##### START OF SENDING 8 DATABITS movlw D'8' ; 1 Befehl - wird bei startbit noch verwendet von der dauer movwf loops ; 1 Befehl - wird bei startbit noch verwendet von der dauer movlw D'21' ; 1 Befehl - wird bei startbit noch verwendet von der dauer movwf loops2 ; 1 Befehl - wird bei startbit noch verwendet von der dauer sendtopcbyte btfsc senddatatopc,7 ; 1 Befehl bcf PORTC,1 ; 1 Befehl btfss senddatatopc,7 ; 1 Befehl bsf PORTC,1 ; 1 Befehl waiting nop ; 1 Befehl nop ; 1 Befehl nop ; 1 Befehl decfsz loops2,1 ; 1 Befehl goto waiting ; 2 Befehle rlncf senddatatopc,1 ; 1 Befehl decfsz loops,1 ; 1 Befehl goto sendtopcbyte ; 2 Befehle ;#### END OF SENDING 8 DATABITS ;#### START OF SENDING ENDBIT bsf PORTC,1 movlw D'18' ; 1 Befehl movwf loops2 ; 1 Befehl stopbitwait nop ; 1 Befehl nop ; 1 Befehl nop ; 1 Befehl nop ; 1 Befehl decfsz loops2,1 ; 1 Befehl goto stopbitwait ; 2 Befehle ;#### END OF SENDING ENDBIT movlw D'255' call WAIT return







Zitieren

Lesezeichen