-
        

Ergebnis 1 bis 3 von 3

Thema: Habe problem mit RS232!!

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    06.01.2005
    Beiträge
    103

    Habe problem mit RS232!!

    Anzeige

    Hallo!
    ich habe einen pic16f873. habe eine serielle schnittstelle und konnte auch schon daten zum pic senden!! jetzt will ich aber das etwas zum pic schicken und wenn der pic den befehl bekommen hat soll er mir den selben befehl wieder zurück schicken!!

    ich habe schon etwas in assembler geschrieben aba das funktioniert nicht!!

    list p=16f873
    #include <P16f873.INC>

    init
    bsf STATUS,RP0
    movlw B'00000000' ; PortB alle output
    movwf TRISB
    bcf STATUS, RP0 ; auf Bank 0 zurückschalten
    clrf PORTB ; alle LEDs ausschalten
    bsf STATUS,RP0 ; Bank1
    bcf PORTC, 6 ; PortC output 6 (tx COM)
    bsf PORTC, 7 ; PortC input 7 (rx COM)
    bcf STATUS,RP0

    ; USART initialisieren
    BCF STATUS,RP0 ; Bank1
    MOVLW 0x20 ; Sender: RS232
    MOVWF TXSTA ;
    MOVLW 0x90 ; Empfänger: RS232
    MOVWF RCSTA
    BCF STATUS,RP0 ;
    ; USART Baudrate einstellen
    BSF STATUS,RP0 ; Bank1
    MOVLW d'25' ; Set Baud rate 2,4 kBPS bei 4 MHz
    MOVWF SPBRG
    BCF TXSTA, BRGH ; BRGH=0
    BCF STATUS,RP0 ; Bank 0
    RS232in
    btfss PIR1,RCIF ; sind Daten da ?
    goto RS232in ; nein, noch keine Daten da
    bcf PIR1,RCIF
    movfw RCREG ; RS232-Register auslesen
    movwf PORTB ; und nach 'PORTB' schreiben
    bsf PIR1,TXIF
    goto RS232out
    RS232out
    btfss PIR1,TXIF ; ist Sender leer ?
    goto RS232out ; nein, noch nicht leer
    bcf PIR1,TXIF
    movfw PORTB ; nächstes Byte holen
    movwf TXREG ; und in den RS232-Sender schreiben
    goto RS232in
    end

    ich hoffe es kann mir bitte jemand weiter helfen!! ich bin für jeden ratschlag dankbar!!!

    mfg doolitle

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Schau mal da, das sollte dir helfen
    http://www.sprut.de/electronic/pic/grund/rs232.htm
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Hi,
    benutze zwar nen anderen controller aber:

    nit
    bsf STATUS,RP0
    movlw B'00000000' ; PortB alle output
    movwf TRISB
    bcf STATUS, RP0 ; auf Bank 0 zurückschalten
    clrf PORTB ; alle LEDs ausschalten
    bsf STATUS,RP0 ; Bank1
    bcf PORTC, 6 ; PortC output 6 (tx COM) !!!!!!!!!!!!!muss auf 1 !!!
    bsf PORTC, 7 ; PortC input 7 (rx COM) !!!!!muss auf 1!!!!!!!!
    bcf STATUS,RP0

    ; USART initialisieren
    BCF STATUS,RP0 ; Bank1
    MOVLW 0x20 ; Sender: RS232
    MOVWF TXSTA ;
    MOVLW 0x90 ; Empfänger: RS232
    MOVWF RCSTA
    BCF STATUS,RP0 ;
    ; USART Baudrate einstellen
    BSF STATUS,RP0 ; Bank1
    MOVLW d'25' ; Set Baud rate 2,4 kBPS bei 4 MHz
    MOVWF SPBRG
    BCF TXSTA, BRGH ; BRGH=0
    BCF STATUS,RP0 ; Bank 0
    RS232in
    btfss PIR1,RCIF ; sind Daten da ?
    goto RS232in ; nein, noch keine Daten da
    bcf PIR1,RCIF
    movfw RCREG ; RS232-Register auslesen
    movwf PORTB ; u nd nach 'PORTB' schreiben
    bsf PIR1,TXIF !!!!!!!!!brauchste nicht!!!
    goto RS232out
    RS232out
    btfss PIR1,TXIF ; ist Sender leer ?
    goto RS232out ; nein, noch nicht leer
    bcf PIR1,TXIF !!!!!!!!!brauchste nicht!!!
    movfw PORTB ; nächstes Byte holen
    movwf TXREG ; und in den RS232-Sender schreiben
    goto RS232in
    end

    Das ist mirt auf den ersten Blick aufgefallen .

    SChau mal in das Datenblatt .

    Die RX/TX müssen auf eines da du sonst RX = Ausgang = 0 = masse das signal auf null ziehst!!!

    Ist mit auch erst letzte Woche paasiert !

    mfg

Berechtigungen

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