www.mikrocontroller.net

Forum: Projekte & Code Gepuffertes interruptgesteuertes Senden


Autor: wb1 (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ist eventuell von Interesse

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich sag Dir mal, wie es ist: Dein Code ist grauenhaft !

Wozu wird 'merker' in einem Register gehalten, um angeblich CPU-Takte
zu sparen, um ihn dann doch wieder zu pushen oder z.B. 'hilfszelle'
irgendwo im RAM abzulegen. Als Merker würde TXIE völlig reichen.

Puffer umsortieren ? Warum das denn ?
Der Text ist durch fehlende Formatierung äußerst unleserlich, was
eigentlich schon frech ist.

Erfahrene Programmierer werdem sich bei den Kommentaren wie
"" Kritisch sind zu große Puffer bei hohen sendegeschwindigkeiten und
hohem Datenaufkommen
; Bei zu großem Puffer kann das umsortieren des Puffers länger dauern
als der Sendevorgang ""
gleich zur DEL-Taste begeben.

Anfänger werden mit dem schlechten Beispiel auf den Holzweg geführt.
Vielleicht machst Du einen 2. Anlauf, vielleicht auch dann mit
Ringpuffer, wie er schon überall verwendet wird.

Autor: wb1 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Magst ja recht haben.
Auf den Ringpuffer bin ich garnicht gekommen.
Damit müßte eigentlich noch mehr Rechenzeit frei werden
Allerdings sehe ich auch hier, das der Ringpuffer volläuft.
Das umsortieren entfällt aber.
Werde mich mal ranmachen.

TXIE allein reicht nicht, UDRE müßte die Lösung bringen.
Der Zustand im Moment des Interrupts ist nicht voraussehbar.
Ein Rücksetzen von TXIE könnte zur Blockade führen.

Ich dachte, ich bin hier in einer Hobbyumgebung, das erfahrene
Programmierer das Forum nutzen ist natürlich möglich.

Auf den Holzweg wollte ich niemanden führen. Betrachte es doch einfach
als meinen eigenen geistigen Erguß.

Ich gelobe Besserung

Autor: wb1 (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier der Ringpuffer.
Noch nicht voll ausgetestet.
Wo siehst du Verbesserungsmöglichkeiten?

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es tut mir leid, aber der Text ist ohne jegliche Formatierung; ich
weigere mich, ihn näher anzusehen.

Programmierfehler gibt es immer. Es ist aber, glaube ich, im Sinne
aller Interessenten, hier lauffähigen und getesteten Code zu bekommen.
Sieh Dir dich 'mal die anderen Beiträge in dieser Codesammlung an.

Autor: wb1 (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Der getestete Ringpuffer zum seriellen Senden.
Nach der Assemblierung ist die Formatierung im Listfile vorhanden.

Autor: wb1 (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Nun hat sich doch noch ein Fehler in der Flusssteuerung eingeschlichen

.if flusssteuerung = 1
sbrc xl,2      ;ist der Sendepuffer zu voll?
rjmp xonsenden    ; nein
lds xl,puffer    ;stelle den Fuellstand des Puffers fest
cpi xl,low(empfangsunterbrechung)

; ++++++++++ fehler >>brlo xonsenden richtig: brlo senden5,
brlo senden5    ; nicht zu voll,

lds xl,puffer+1
cpi xl,high(empfangsunterbrechung)
breq xoffsenden    ; zu voll, sende als naechstes Zeichen XOFF

.endif

Bitte berichtigen.

Autor: Gerwin Plako (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, und weiß wer was drüber ???

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du eigentlich keine Tabulator-Taste?

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.