www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik senden über serielle Schnittstelle mit PIC16f877


Autor: Lyric (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich möchte Messwerte, die ich mit Hilfe des internen ADC ermittelt
habe, über die serielle Schnittstelle an einen Computer weitersenden.

Ich verwende einen PIC 16f877, weiß aber nicht wie ich das Problem am
besten angehen soll.

Kann mir bitte jemand ein paar Tips u. Trick bzw. ein Beispiel posten!
Ich wäre echt dankbar!!!

Autor: Marcel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du noch bis über das WE warten kannst, weiss ich bestimmt auch
mehr.
Habe gerade ein Dev. Board mit dem 16F877 und werdfe mich damit
Beschäftigen.

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

lies dir mal im Datenblatt Kapitel 10.1 und 10.2 durch. Dort ist sehr
gut verständlich erklärt, wie der UART initialisiert werden muß. Sollte
eigentlich keine Probleme bereiten. Hilft dir das weiter ?

Thorsten

Autor: Lyric (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit dem Datenblatt habe ich mich soweit schon auseinandergesetzt, das
ist aber leider nur graue Theorie...
Bis jetzt funktioniert die Kommunikation (Übertragung eines fixen,
fiktiven Wertes) auf den Comp. noch nicht.

@Marcel: wäre echt super!

Danke für die Antwort!!!

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So viel Theorie ist das nun auch nicht. Eher reine Praxis.
UART (TXSTA,RCSTA,BRG,TRISC) nach Datenblatt initialisieren, zu
sendenden Wert in TXREG laden, TXEN=1 und ab geht die Post.

Ein Beispiel in Assembler findest Du in der Codesammlung unter
Minniterminal mit Nokia 3310 Display. Ist zwar für einen 16F628 aber
das Prinzip ist identisch.

Steffen

Autor: Dirk Schnitzler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hoffe, das hilft dir.
Gruß, Dirk.


#define    FOSC    D'4000000'
#define    BAUDRATE  D'19200'
#define    BAUDRELOAD  (FOSC/(D'16'*BAUDRATE))-1

USART_INIT
  BANK_0
  movlw  B'10010000'
  movwf  RCSTA
  BANK_1
  movlw  B'10100100'
  movwf  TXSTA
  movlw  BAUDRELOAD  ; Wird in "CONST.H" definiert...
  movwf  SPBRG
  BANK_0

Autor: Dirk Schnitzler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das brauchst du auch noch:)
Parameterübergabe über´s Wreg...

SEND_CHAR
  btfss  PIR1,TXIF    ; Letzte Übertragung fertig?
  goto  $-1      ; Nein...
  movwf  TXREG
  RETURN

Autor: Lyric (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke für euere hilfe!
ich bin dem ganzen jetzt ein schritt näher gekommen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.