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
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!
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
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!
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
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?
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
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
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
@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
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.
Lesezeichen