mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik zweite RS232 programmieren???


Autor: AVRFreak (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich möchte mit meinem AVR90S8535 eine zweite serielle Schnittstelle
programmieren.
Hat dies schon einmal jemand mit C programmiert???
Wenn ich das selber programmieren will, kann mir da jemand Infos geben
wie ich dies programmieren muss???


Für Hilfe bin ich sehr dankbar!

MfG AVRFreak

Autor: Florian Pfanner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

also eine Software-UART in C programmieren wird wohl nicht gehen. Du
bekommst einfach kein genaues Timing hin. In Assembler dürfte das kein
Problem sein.
Schau dir mal diversen Code für den 90S1200 an. Dieser hat nämlich
keinen Hardware-UART. Da müsste es einigen Code für Software-UART
geben.

Gruß, Florian

Autor: Frank Linde (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tss, tss, tss, wenn das die C-Freaks lesen...  ;-)

Gruß,

Bekennender Assembler-Fan

Autor: mthomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: leo9 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich kann mir nicht vorstellen dass man in c kein Timing
zusammenbringen sollte.
Von der Grundidee ist ein SW-UART recht einfach:
*) TX
Startbit setzen, Bitlänge warten, 1. Datenbit setzen, warten, 2. bis 8,
datenbit ausgeben, Stopbit ausgeben, warten; danach mit dem nächsten
byte weitermachen.
Wers elegant will wartet natürlich nicht, sondern wird alle Bitlängen
einen Interrupt auslösen.
*) RX
Rx-Leitung auf flankengetriggerten Interupteingang. Nach Auftreten
eines Ints (=Beginn des Startbits) 1/2 Bitlänge warten, immer noch
gleicher Pegel -> weiter machen, andernfalls wars nur eine Störung, ab
dann alle Bitlängen (somit immer in der Mitte eines Bits) 8 mal
sampeln, eventuell noch das Stopbit auswerten und Interrupt wieder
scharfstellen.
Eleganterweise auch hier das warten durch Timerinterrupt ersetzen und
wers ganz genau nimmt sampelt nicht einfach sondern macht eine zwei aus
drei Erkennung.

grüsse leo9

Autor: Peter Dannegger (peda)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
"Tss, tss, tss, wenn das die C-Freaks lesen...  ;-)"

Genau, die stellen doch sofort mal eben ein C-Beispiel mit rein.

Aber um Dir nicht den ganzen Spaß zu nehmen, ist das hier nur die
Senderoutine.


"Du bekommst einfach kein genaues Timing hin".

Von wegen !


Peter

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.