-
        

Ergebnis 1 bis 5 von 5

Thema: Habe Probs mit Serieller schnittstelle

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    12.03.2005
    Ort
    Immenstadt
    Alter
    30
    Beiträge
    89

    Habe Probs mit Serieller schnittstelle

    Anzeige

    Hi!
    Also ich bin grad schon seit ewigkeiten dran zu testen wie es funtzt den PIC16f877 dazu zu bringen seriell mit dem PC zu kommunizieren also ich habs ja jetzt schonmal geschafft dasser sendet s problem dabei is nur wenn ich den serial port am PC abfrag (9600 baud 8 data 1 stopbit keine parity) dann krieg ich zwar werte rein aber das sind nich die die ich gesendet habe und auch nicht immer die selben die ändern sich nach ner zeit immer was mache ich falsch?? und empfangen geht noch garnet aber senden wär ja schomml was wenns ging kann sich villt ma jemand den code hier anschaun (assembler)
    Code:
    	#include <P16f877.INC>
    	__CONFIG	_PWRTE_ON & _WDT_OFF & _HS_OSC
    
    w_copy EQU 0x20
    s_copy EQU 0x21
    send   EQU 0x22
    
    	org 0
    	goto init
    
    
    init
    	bsf     STATUS, RP0
    	movlw	B'00000000'	; PortA halb outputs 
    	movwf	TRISA
    	movlw	B'00000000'	; PortB alle outputs 
    	movwf	TRISB
    	movlw	B'00000000'	; PortB alle outputs 
    	movwf	TRISD
    	movlw 	b'00100100'
    	movwf 	TXSTA
    	movlw	d'25'
    	movwf	SPBRG
    	
    	bcf		STATUS, RP0
    	movlw	b'10010000'
    	movwf 	RCSTA
    	bsf	INTCON, GIE
    	bsf INTCON, PEIE
    	bsf PIE1, RCIE
    	clrf PORTD
    	goto go
    	
    go
    	movlw d'251'
    	movwf TXREG
    	nop
    	nop
    	nop
    	nop
    	movwf PORTD
    	goto go
    
    
    	end

    vielleicht hat mir ja sogar jemand nen kleinen beispielcode da für diesen PIC wäre echt spize hab nämlich erst vor ner woche mit assembler angefangen und bin für jeden beispielcode froh (hab auch auf www.sprut.de schon durchgeschaut aba da gibts nur n bsp. für die softwareseitige communication leider)

    also danke schonmal

    m0

  2. #2
    Gast
    kannst du dein problem mal konkret formulieren?
    kannst du deinen code mal vernünftig darstellen?

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    12.03.2005
    Ort
    Immenstadt
    Alter
    30
    Beiträge
    89
    Hi!
    sorry aber ich bin jetzt grad doch noch selbst auf den fehler gekommen trozdem vielen dank!!

    MfG
    m0

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    12.03.2005
    Ort
    Immenstadt
    Alter
    30
    Beiträge
    89
    Hi!
    also soweit funktioniert meine anwendung jetzt wunderbar jetzt würde mich nurnoch interressieren wie ihr das so löst wenn ihr mehr als einen 1-byte wert senden/ empfangen wollt?
    ich habe das bei mir so gelöst dass ich "0" quasi als start der 2 folgenden datenbytes sende. dann wie gesagt die 3 daten und dann wenn ich wieder sende wieder mit der "0" am anfang aber was mich stöhrt ist dass ich die "0" dann nicht in meinen datenpaketen verwenden kann wie sagt ihr dem PIC welcher wert wohin gehört?

    Danke schonmal
    m0

  5. #5
    Gast
    Was du gemacht hast nennt man Protokoll. Es beschreibt die Art und Weise eines Datenpaketes. Hier kocht bekanntlich jeder Hersteller sein eigenes Süppchen. Du must dir eigentlich nur im klaren werden, was du übertragen willst. Wenn du alle zeichen (0..FFh) verwenden willst, kommst du nicht umhin, einen etwas grösseren Aufwand zu betreiben. Es läuft darauf hinaus, das du mehr Zeichen übertragen musst, als du eigentlich brauchst.
    Lege also ein oder mehrere Start- und Stopzeichen fest, welche dein Daten umrahmen. Das ganze nennt man dann auch Frame.

Berechtigungen

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