- 3D-Druck Einstieg und Tipps         
Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 21

Thema: RS232 PIC Verbindung

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    08.08.2005
    Ort
    RP, Westerwald
    Beiträge
    50

    RS232 PIC Verbindung

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo Leutle!
    Ich habe aus "Hobbyistischen" Gründen ein PIC an die RS232 des PCs angeschlossen und
    bekomme von diesem mehrere Bytes (8 Stück) nacheinander geschickt.
    Diese befinden sich dann ja im Empfangspuffer der USART.
    Nun meine Frage:
    Wie bekomme ich die Einzelnen Bytes (im PC)
    auseinander um sie z.B. Variablen zuzuweisen??
    Ich habe schon ein Terminal Programm geschrieben, das mir die empfangenen Daten in einem Textfeld anzeigt (mit MSCOMM in VB).
    Ich weiß allerdings nicht wie ich sie getrennt und einzelnen Variablen zugewiesen bekomme.
    Ich wäre sehr dankbar wenn mir jemand weiterhelfen könnte!

  2. #2
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    72
    Beiträge
    11.077
    Hallo XDavidX!
    Ich bin ziemlich neu hier, aber wenn Dein Problem noch aktuell ist, kann ich Dir vielleicht helfen. So wie ich das verstanden habe möchtest Du Zahlen die als ASCII Zeichen representiert sind wieder als Zahlen haben, oder?
    MfG

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    08.08.2005
    Ort
    RP, Westerwald
    Beiträge
    50
    Hi PICture,
    Danke für Dein Angebot. Die Geschichte hab ich aber schon in den Griff bekommen.
    Die Antwort steht im PIC Forum. Hier konnte oder wollte mir keiner helfen . Danke trotzdem!

  4. #4
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    72
    Beiträge
    11.077
    Hallo XDavidX!
    Ich bin ziemlich neu hier und habe mir die unbeantwortete Probleme angeschaut und auf Dein Beitrag gestossen. Irgendwann möchte ich die Datenubertragung zwischen PC und PIC aufbauen, aber momentan bin ich mit anderen Themen beschäftigt. Sollte ich Probleme haben, darf ich Dich um Hilfe bitten? (Hoffentlich kommt es nicht vor)
    MfG

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    08.08.2005
    Ort
    RP, Westerwald
    Beiträge
    50
    Hi, PICture,
    ja, klar darfst du … Dafür ist das Forum ja da. Wenn ich helfen kann dann helfe ich gern.
    Mir wurde hier ja auch oft geholfen.
    Wo bist du jetzt dran?

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    08.08.2005
    Ort
    RP, Westerwald
    Beiträge
    50
    Hi PICture,
    welche Software wolltest Du beschrieben haben? PIC oder PC-Seite?
    Ich hab die PC Software in VB geschrieben sie ist Allerdings
    nicht sehr leistungsfähig, da es nur ein versuch ohne ein 'Ziel'
    war. Sie kann Bytes vom PIC empfangen und auch senden. Die
    Zustände der Handshake Leitungen anzeigen und Teilweise setzen/löschen.

    PIC Seite ist nicht schwer zu prog.. Hier ein bisschen Code. Ist Allerdings
    aus mehreren Projekten zusammengestellt.
    Bin auch noch nicht lang dabei (mit den PICs) und mache das nur als Hobby wenn ich Zeit hab.

    Gruß David




    Code:
    ; Interruptroutine für RS232-Empfang 
    
    	org      4            	; Interrupt Adresse 4 
    
    int  
    	movwf    w_temp         ; status retten 
    	swapf    STATUS,w 
    	movwf    status_temp 
    
    ;RS232-Empfänger-Interupt?
    	btfss    PIR1,RCIF 
    	goto     intEnde       	; Interrupt kam von wo anders 
    
    	movfw    RCREG         	; RS232-Register auslesen 
    	movwf    Zeichen      	; und in den Speicher nach 'Zeichen' schreiben 
    	movwf	PORTD
    	bsf      DatenSindDa,0	; Kennzeichen für gültige Daten setzen 
    	bcf      PIR1,RCIF     	; interrupt-Flag löschen 
    
    intEnde                    	; geretteten Status wieder zurückschreiben 
    	swapf    status_temp,w 
    	movwf    STATUS 
    	swapf    w_temp,f 
    	swapf    w_temp,w 
    	retfie 
    
    
    
    
    ; USART initialisieren 
    	BSF	STATUS,RP0    ; Bank1 
    	MOVLW	0x20          ; Sender: RS232 
    	MOVWF	TXSTA         ; 
    	BCF	STATUS,RP0    ; Bank 0 
    	MOVLW	0x90          ; Empfänger: RS232 
    	MOVWF	RCSTA         ; 
    
    ; USART Baudrate einstellen 
    	BSF	STATUS,RP0    ; Bank1 
    	MOVLW	D'8'          ; Set Baud rate 28800 BPS bei 4 MHz 
    	MOVWF	SPBRG 
    	BSF	TXSTA, BRGH   ; BRGH=1
    	BCF	STATUS,RP0    ; Bank 0 
    
    ;Interrupts vorbereiten 
    	BSF	STATUS,RP0    ; Bank1 
    	BSF	PIE1,RCIE     ; Enable receive interrupts 
    	BCF	STATUS,RP0    ; Bank 0 
    	clrf	PIR1          ; alle Interruptflags löschen 
    	clrf	PIR2 
    	BSF	INTCON,GIE    ; generell Interrupts erlauben 
    	BSF	INTCON,PEIE   ; Interrupts von Peripheriegeräten erlauben

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    25.08.2005
    Beiträge
    86
    Hallo lieber Freude,

    Es würde mich sehr interessieren David wie du eine Verbindung zwischen PC und PIC und umgekehrt über RS232 progammieren hast?

    Ich will meine Schrittmotoren mit einem PIC über RS232 steuern. Im PC will ich ein GUI mit MATLAB programmieren.Damit kannn ich werte bzw Variablen zu PIC schicken und vom PIC lesen.

    Ich bin neu in dem Gebiet und ich wäre dir dankbar wenn du mir einige Tipps gibst. Weil ich nicht weiss, woo ich anfangen soll

    MFG

  8. #8
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    72
    Beiträge
    11.077
    Hallo XDawidX!
    Vielen Dank für Dein Code. Ich werde beides (PC und PIC) in assembler programieren. Ich möchte mir ein "Softwareentwicklungwerkzeug" schaffen, das mir ermöglichen sollte, Daten in und aus PIC RAM schreiben und Testprograme im Programmspeicher vom PIC zu starten. Ich denke auch auf die kleinsten PIC also ohne UART. Wenn es zu viel Programmspeicher beaanschpruchen sollte, werde ich nur RAM inhalt auslesen und das Testprogramm normal per Einschalten starten. Bis jetzt habe ich das "Werkzeug" hardwaremässig mit einem Miniterminal aus Nokia 3310 handy Display und 3 Tasten realisiert, aber das kann ich nur für die "grossen" PICs anwenden, da die Software ca. 2 kB im Programmspeicher des PICs belegt. Es ermöglichst nur Inhalt von 16 RAM Speicherstellen eingeben, nur 16 Programme starten und nur 48 RAM Speicherstellen nach der ausführung des Testprogramms auslesen. Das reicht eigentlich in der Praxis aus, ist aber für die kleinen PICs nicht benutzbar und für "kleine" Anwendungen will ich auch effizient Programme schreiben. Ich bin gewöhnt an solches "Werkzeug", weil ich früher viel andere Prozessoren 6205, Z80, 8032 mit externen RAM und EEPROM per LPT mit PC verbunden habe. Und ich habe während der Programmsentwicklung immer direkten Zugriff auf RAM und Programmspeicher gehabt. Beim Umstieg auf PICs hat mir das sehr gefehlt. Jetzt habe ich noch Probleme mit dem kleinsten PICs, das möchte ich aber auch irgendwie simple lösen. Vielleicht den "kleinen" mit dem "grossen" verbinden? Weiss ich noch nicht. Ich bin aber sicher, dass es vor allem für die "Anfänger" tolle Sache wäre, oder?
    MfG

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    08.08.2005
    Ort
    RP, Westerwald
    Beiträge
    50
    @PICture
    Hi,
    also, so wie ich das sehe bist Du mir Lichtjahre voraus...
    Deine "Werkzeug", solltest du mal damit fertig sein, würde ich mir schützen lassen und dann versuchen zu Vermarkten. Klingt nach einer super Sache!

    Gruß David

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    08.08.2005
    Ort
    RP, Westerwald
    Beiträge
    50
    HI SMR,
    du wolltest mehr über die Verbindung von PIC und PC wissen.
    Ich war eine Weile nicht mehr online.
    Wenn du noch Interesse hast dann sag mir bescheid.

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

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

Labornetzteil AliExpress