-         

Ergebnis 1 bis 4 von 4

Thema: RS232 - PIC - Geht nicht richtig

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    30.07.2005
    Beiträge
    170

    RS232 - PIC - Geht nicht richtig

    Anzeige

    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

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    10.03.2005
    Ort
    Mannheim
    Alter
    33
    Beiträge
    32
    Mal ein kleiner Tip.

    Schau mal hier nach.

    Sollte denke ich genau das richtige für dich sein!

    Gruß
    Stefan

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.12.2005
    Ort
    Euskirchen-Großbüllesheim
    Alter
    67
    Beiträge
    2.063
    Meine erste Frage, welchen PIC verwendest Du ? Hat der keine USART ?
    Wenn Dir die Initialisierung der seriellen Schnittstelle nicht bekannt ist, dann sieh Dir die PIC-Assembler-Beispiele auf dieser Seite an: http://www.domnick-elektronik.de/picasm.htm
    MfG Karl-Heinz
    HobbyElektronik hier klicken ....

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.05.2005
    Ort
    Wallis
    Beiträge
    137
    frage: machst du eine pegelanpassung zwischen pic und pc? (sprich max232 o.ä.)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •