hallo; in der Arduino-IDE kann man ja mit der Bibliothek SoftwareSerial statt der Standard-UART-Pins 0 und 1 zwei beliebige andere digitale Pins verwenden. Ich habe versucht, aus der Bibliothek schlau zu werden, was alles getan werden muss, um dies zu erreichen, aber das übersteigt momentan noch mein C++ Verständnis. Mit Assembler bin ich aber mittlerweile sehr vertraut. Für die Standard-Pins 0 und 1 konnte ich ein AVR-Assembler-Programm schreiben, das Zeichen sendet und - über die RX-Interrupt-Routine - Zeichen empfängt. Wo genau - in welchem Register - kann ich denn angeben, dass ich z.B. Pins 2 und 3 statt 0 und 1 verwenden möchte ? Und ich muss dann statt der RX-Interrupt-Routine den Pin-2-Interrupt verwenden, oder ? Im Datenblatt habe ich zu diesem Thema, andere Pins als die Standard-Pins für UART zu verwenden, nichts gefunden. Hat jemand schonmal diese Sache in Assembler programmiert und kann mir ein Beispielprogramm schicken ? Oder ein vereinfachtes C++Programm, das übersichtlich nur die nötigsten Programmzeilen enthält ? Oder vielleicht kurz das Prinzip erklären, wie dem Mikrocontroller mitgeteilt wird, dass er zwei andere Pins als 0 und 1 für UART verwenden soll ? Das wäre sehr hilfreich. Vielen Dank
Überlege mal in Ruhe bei ner Pizza und was zu trinken, warum die Library _Software_-Serial heißt...
Wie gesagt, bin ich in C++ nicht so bewandert wie in AVR-Assembler, deshalb ja meine Frage, ob jemand das schonmal in Assembler programmiert hat.
Bestimmt. Ist halt immer noch eine Softwareserial, keine Steuerung für die Hardwaremultiplexer. Ganz einfach, weil es keine gibt.
Meine Frage ist, ob jemand das, was in dieser Bibliothek in C++ programmiert ist, schonmal in Assembler programmiert hat und mir diesen Code zuschicken kann.
Michael S. schrieb: > Wie gesagt, bin ich in C++ nicht so bewandert ... Es geht rein um das semantische Verständnis des Namens der Bibliothek. Mit C-Verständnis hat des nichts zu tun. Das Geheimnis verbirgt sich hinter dem Wortteil "Software" - keine HW-Register, die man konfigurieren kann, kein HW-USART, dass einen Interrupt auslöst. Michael S. schrieb: > Oder vielleicht kurz das Prinzip erklären, wie dem Mikrocontroller > mitgeteilt wird, dass er zwei andere Pins als 0 und 1 für UART verwenden > soll ? Kurz, das geht beim ATmega328 nicht mit Hardwareunterstützung. Das Datenblatt verschweigt dir nichts.
:
Bearbeitet durch User
OK - hat jemand für diese C++Software ein Pendant in Assembler das er mir zuschicken kann ? Oder hat jemand vielleicht Lust alles aus dieser Bibliothek so zu extrahieren und in EINEN einzigen Sketch zu packen - ohne Bibliotheksaufrufe, Klassen und Methoden, sondern einfach als prozedurales Programm mit Unterprogrammen ? Das könnte ich dann relativ leicht in Assembler umsetzen, aber mit der objekt-orientierten Schreibweise in C++ habe ich noch so meine Probleme. Vielleicht hat jemand Lust, dieses Projekt mit mir gemeinsam zu entwickeln ? DU bis ein C++Crack und schreibst alles um in ein einziges prozedurales Programm, und ICH transformiere es in Assembler, und WIR präsentieren das dann gemeinsam auf Github ?
:
Bearbeitet durch User
Vielen Dank, Mario, genauso sowas habe ich gesucht. Das schaue ich mir morgen in Ruhe an. 1000 Dank.
Michael S. schrieb: > ICH transformiere es in Assembler Hast du die Unterhose über der Jeans und ein T-Shirt an, auf dem "CoMpIlErMaN" steht? Ich mein, ernsthaft, wenn du so gut in Assembler bist, dürfte es doch ein Klacks sein, ein paar Bits rein- oder rauszuschieben? Und, noch viel schlimmer: ich hab keine Ahnung vom ATMega-Assembler, aber ganze 30 Sekunden gebraucht, um passenden code zu finden... Ich hab einfach "atmega software usart in assembler" in die Adressleiste gehackt. Ich hab also direkt ein T-Shirt bestellt mit "h4XX0rm4n"... Michael S. schrieb: > genauso sowas habe ich gesucht "Gewollt". "Gesucht" hast du das sicher nicht.
:
Bearbeitet durch User
Trotz aller Gehäßigkeit, Jens, trotzdem danke, denn durch deinen Hinweis habe ein weiteres Assemblerprogramm gefunden, echt gut. Ich habe tatsächlich die falschen Suchbegriffe verwendet, mich zu sehr auf die Alternativen zu den Standardpins in der Suchanfrage konzentriert und nichts passendes gefunden. UART für ATTINY, das ist der Schlüssel - danke. ich wünsche allen noch einen schönen Abend. Gute Nacht
Christian M. schrieb: > Michael S. schrieb: >> UART [...] das ist der Schlüssel > > Nein, eben nicht! Doch - zusammen mit "Software" Beitrag "Software UART"
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.