Gast
#186210
Ist eventuell von Interesse
|
Anzeige
|
Gepuffertes interruptgesteuertes Senden
Gast
#186210
Ist eventuell von Interesse
Gast
#186211
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.
Gast
#186212
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
Gast
#186213
Hier der Ringpuffer. Noch nicht voll ausgetestet. Wo siehst du Verbesserungsmöglichkeiten?
Gast
#186214
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.
Gast
#186215
Der getestete Ringpuffer zum seriellen Senden. Nach der Assemblierung ist die Formatierung im Listfile vorhanden.
Gast
#186216
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.
Gast
#186217
Hi, und weiß wer was drüber ???
Gast
#186218
Hast du eigentlich keine Tabulator-Taste? Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|