Bitte geben Sie einen Grund für die Verwarnung an
Der Grund erscheint unter dem Beitrag.Bei einer weiteren Verwarnung wird das Mitglied automatisch gesperrt.
Arduino - Programmierung


Ich habe Graham meinen kompakteren Code gepostet.

Zitat von Montre im Beitrag #121
Ja danke. Arduino unterstützt nur C-Konstrukte, kein C++.
Die Arduino-Doku ist diesbezgl. etwas sparsam ausgelegt. Tatsächlich werden Klassen unterstützt. Jede Lib ist prinzipiell eine Klasse.
Im Libaries-Verzeichnis muss man ein Verzeichnis mit dem Namen der Klasse erzeugen und dort seine Klasse (.cpp und .h) reinkopieren.
Die Startdatei mit setup() und loop() suggeriert, dass der Code nur Code ohne Objekte unterstützt. Aber es geht doch mehr.
Die Erkenntnis stammt aus dieser Datei.
Das eröffnet nämlich ganz neue Möglichkeiten, weil man eine plattformunabhängige Klasse erstellen kann, die dann mit einem RaspPi- und Arduino-Layer ergänzt wird. Zumindest sollte man das mal untersuchen. Das wird sich für den normalen User rätselhaft anhören, aber die Entwickler verstehen, was ich meine.
#124

Meinst di Objektorientierte Programmierung? Das geht mit den Arduino c. Schau mal hier für ein Beispiel https://werner.rothschopf.net/202003_ard...frelais_oop.htm
Ich selbst habe es noch nicht genutzt. Wobei die Vorteile schon praktisch sein könnten. Beispiel ich nutze in vielen Projekten ein Display, dann wäre ein Display Objekt welches ich ohne viel Aufwand in jedem Programm nutzen könnte ganz praktisch. Dann muss ich die Grundlagen nur einmal schreiben.
Auch bei einem Midi Projekt könnte ja jede Taste ein Objekt Taste() sein, welches dann alle Informationen wie Midicode, Zustände und so weiter enthält. Der Nachteil wäre dann aber vermutlich beim ersten mal sehr viel Mehrarbeit und wie es sich auf die Geschwindigkeit auswirkt müsste man testen.

Zitat von Christian_Hofmann im Beitrag #124
Meinst di Objektorientierte Programmierung? Das geht mit den Arduino c. Schau mal hier für ein Beispiel https://werner.rothschopf.net/202003_ard...frelais_oop.htm
Genau. Das ist doch ne saubere Sache.
Zitat von Christian_Hofmann im Beitrag #124
Beispiel ich nutze in vielen Projekten ein Display, dann wäre ein Display Objekt welches ich ohne viel Aufwand in jedem Programm nutzen könnte ganz praktisch. Dann muss ich die Grundlagen nur einmal schreiben.
So ist es. Man versteht es auch leichter, wenn die Komplexität zu nimmt. Das merken die Leute auch selber, wenn sie für den nächsten Schritt immer länger überlegen müssen.

Zitat von Christian_Hofmann im Beitrag #124
Der Nachteil wäre dann aber vermutlich beim ersten mal sehr viel Mehrarbeit und wie es sich auf die Geschwindigkeit auswirkt müsste man testen.
Der Vorteil kann so immens größer sein, dass es dann im Ganzen dann doch lohnend ist, übersichtlich zu arbeiten. Wir reden hier aber nicht um 100-Zeilen-Progrämmchen. Da braucht man keine Objektorientierung.
Aber dem erwähnten 5000-Zeilen-Programm hätte das sicher gut getan. Schleifen ist das eine, was eigentlich jeder geübte Coder automatisch anwendet (aber nicht die allumfassende Lösung darstellt), aber auch ggf. die Hardware mit ihren Pins zu abstrahieren, oder auch ein Manual als Objekt zu benutzen, hätte der Verständlichkeit des Codes gut getan, weil es sich wiederholenden Code vermeidet. Aber wem erzähl ich das - du weißt es ja. Und die, die wenig Ahnung haben, die können es nicht und wollen es auch nicht. Da hackt man lieber 5000 Zeilen rein, ohne wenn und aber. Das der Code funktioniert, kann gut sein und will ich nicht in Frage stellen, aber das Fehler drin sind, ist nicht so leicht auszuschließen. Da muss dann jeder Anwender selbst 5000 Zeilen prüfen, ob das alles richtig umgesetzt ist ist. Und das ist dann schon nicht mehr so dolle.
Und wenn du die Performance in Frage stellst, dann dürftest du keine einzige Lib verwenden. Das sind nämlich alles Klassen


#127

Nach im Vergleich DUE und Pico sollte das dann unterm Strich egal sein. Sofern man Python auf dem Pico nimmt, dann macht die CPU mit 133 Mhz im Vergleich zu 84 Mhz das ganze wohl wieder gut. Aber Spaß beiseite. Arduino c auf dem Pico ist recht gefährlich, man muss die Geschwindigkeit manuell teilweise reduzieren (Pausen oder runtertakten). Sonst laufen die Programme zu schnell was Probleme bei z.B Takt auf den Pins führt.
Wozu ich allerdings nichts finden konnte ist diese Frage:
Der Arduino DUE und Pico haben ja einen Prozessor mit zwei Kernen. Python selbst kann seine Aufgaben auf mehrere Kerne verteilen. Da muss man selbst nicht viel machen, kann es jedoch mit Threads (schweres Thema) noch optimieren.
Aber wie sieht es beim Arduino aus? Das erstellte Programm müsste doch bestimmt auch entsprechend auf Multithreading ausgelegt sein? Ein gewöhnliches Programm ohne manuelle Anpassung dürfte doch nur einen Kern nutzen. Weiß da jemand etwas genaueres?
#129


Die Frage ist nicht Multithreading sondern Multicore. Ich denke mal, dass das genauso easy ist, wie beim Pico.
Schau mal hier.
- Hauptwerk
- Hauptwerk-Konfiguration, Diskussion
- Hauptwerk-Samplesets
- GrandOrgue
- GrandOrgue-Konfiguration, Diskussion
- GrandOrgue-Samplesets
- Sweelinq
- Sweelinq-Konfiguration, Diskussion
- Sweelinq-Samplesets
- Sonstige Orgelsoftware
- Organteq
- Sonstige Sampler
- Hardware
- Spieltische und Selbstbau
- Zubehör (PCs, Monitore, Interfaces etc.)
- Klangabstrahlung
- Musikalisches
- Noten, Einspielungen, Konzerte
- Sonstige Musikthemen
Jetzt anmelden!
Jetzt registrieren!