Der Elektronik-Thread:

Es gibt 1.926 Antworten in diesem Thema, welches 207.492 mal aufgerufen wurde. Der letzte Beitrag (30. Dezember 2023 um 14:18) ist von the_playstation.

  • Nein, C wurde erdacht um den UNIX-Kernel für

    unterschiedliche Prozessoren schreiben zu können.

    Zuvor wurde das in Assembler gemacht, der ist aber

    für jeden Prozessor anders und erfordert eine neue

    Programmierung.

    C reduziert den Befehlsumfang auf die 26 Befehle die

    prinzipiell jeder Prozessor ausführen kann. Das kann

    dann maschinell in den jeweiligen Assembler-Code

    übersetzt werden.

    Weise einen intelligenten Menschen auf einen Fehler hin und er wird sich bedanken.
    Zeige einem dummen Menschen einen Fehler und er wird dich beleidigen.

  • C lernen dauert keine 2 Wochen, dafür muss man garnix studieren.

    Dann hat man aber noch 0 Algorithmen verstanden und noch keinerlei Ahnung von richtiger Programmierung. Man kennt nur die Befehle bzw das Alphabet.

    Bei der Elektronik, um die es hier eigentlich geht in etwa, was ein Transistor, Kondensator, Spule, Diode und Widerstand ist. Für den Bau eines Videorekorder reicht das nicht. ;)

    Dann muß man AM, FM, PLL, .... verstehen und anwenden können.

    Gruß Play

    Die Realität ist eine Frage des Wissens. Gruß Play

  • Ich weiß, ich habe mal eine UNIX Anpassung für einen 8086 mitgeschrieben! ist aber schon ein paar Tage her!

  • P.S. Mein Prof hat mich mal gefragt.

    Das ist ja ein schrecklicher Code. Warum haben Sie das den so programmiert?

    Ich Oh sorry. Falsche Version. Das ist meine private Version. 1/4 so groß und 8x schneller. Hier haben Sie die Lehrlösung.

    Gruß Play

    Die Realität ist eine Frage des Wissens. Gruß Play

  • Tatsächlich kommt der Arduino Style dem K&R Style der ersten Unixe recht nahe. Das geht soweit das bis heute noch einige Konzepte (Stichwort goto errorhandling) im Linux Kernel und Treibermodell benutzt werden. Obwohl es tatsächlich wesentlich bessere Konzepte gibt und diese seit mindestens 25 Jahren auch stabil implementierbar sind.

    Nehmen wir das im klassischen C und Pascal beliebte Paradigma das lokale Variablen immer zu Beginn einer Funktion deklariert werden müssen. Das war vor sehr langer Zeit technisch notwendig, ist aber seit 30 Jahren nicht mehr nötig. Und mit aktuellen Compilern sogar kontraproduktiv. Sauber wäre es hingegen erst so spät wie möglich in der Funktion zu deklarieren (scope reduction).

    Fakt ist, man sollte seine Programmiersprache kennen. Dann ein Gefühl für Algorithmen haben. Und zuguterletzt einen sauberen Stil pflegen.

    Und was Algorithmen angeht. Natürlich ist das erstmal unabhängig von der Programmiersprache (Jede Turing vollständige Sprache kann theoretisch jeden Algorithmus implementieren. Zum Beispiel ist der Template Mechanismus von C++ tatsächlich Turing vollständig. Trotzdem würde damit niemand einen A* Algorithmus implementieren)

    Und im übrigen muss für ein bisschen Mikrocontroller programmieren niemand studiert haben. Weder Algorithmen und Datenstrukturen, noch Softwarearchitektur. Dadurch erfährt und versteht man dann allerdings, WARUM manche Dinge so getan werden wie sie getan werden und weshalb Arduino nunmal gefrickel auf dem technischen stand der frühen 80iger ist.

    Und damit bin ich dann hier auch raus.

  • Das ist 35 Jahre her.

    Zu GOTO.

    Da in Maschinensprache prinzipiell nur ein Takt besser, als manche glauben. ;)

    Daher würdest Du mit (d)einer Lehrbuchprogrammierung auf allen Assambler-Demo-Parties immer den letzten Platz belegen. ;)

    Gruß Play

    Die Realität ist eine Frage des Wissens. Gruß Play

  • Back to Topic.

    Die Solarwackel Blumen sind angekommen für ein Bastelprojekt.

    Wie vermutet aber etwas anders. Statt der Erregerspule und einem Transistor einen Mini-IC und nur die Arbeitsspule, die gleichzeitig als Erregerspule genutzt wird. Also aufwendigere Technik um Herstellungskosten zu sparen.

    Der IC ist halt billiger als 2x Spulen anzulöten. So so spart man 2x Lötpunkte.

    Gruß Play

    Die Realität ist eine Frage des Wissens. Gruß Play

  • Das ist 35 Jahre her.

    Zu GOTO.

    Da in Maschinensprache prinzipiell nur ein Takt besser, als manche glauben. ;)

    Daher würdest Du mit (d)einer Lehrbuchprogrammierung auf allen Assambler-Demo-Parties immer den letzten Platz belegen. ;)

    Gruß Play

    Naja, es hat damals zumindest für die ersten 10 Plätze (u.a. Evoke 2003) gereicht. Und für mehrere Dutzend Industrieprojekte bis heute.

    Und jetzt zeig doch mal deinen tollen Code ;)

    Nebenbei, das was E Technisch Professoren so als guten Code betrachten würde ich grundsätzlich mit Vorsicht anfassen. Die sollen Grundlagen C vermitteln, mehr auch nicht.

  • Und jetzt zeig doch mal deinen tollen Code

    Kannst Du lesen? Ich glaube nicht. Ok. Kam auch kein c drin vor. ;)

    Naja, es hat damals zumindest für die ersten 10 Plätze (u.a. Evoke 2003) gereicht.

    Muß in einer Kategorie gewesen sein, in der nur 1-10 angetreten sind.

    Ist wie beim FT in Kategorie 4 oder 5. ;)

    Gruß Play

    Die Realität ist eine Frage des Wissens. Gruß Play

    2 Mal editiert, zuletzt von the_playstation (2. Juli 2022 um 16:07)

  • Bin ich eigentlich einer der ganz wenigen, die Ontopic etwas zum Thema Elektronik schreiben?

    Zum Verständnis. Hier geht es um elektronische Bauteile und Schaltungen. Nicht ums Programmieren, nicht um Schrauben, ...

    Weder um C noch um C+ noch um C++ noch um C+++ noch um C++++, ... oder C-, C--, C---.

    Da reicht mir meine Ausbildung als Dpl. Ing. Das muß ich nicht noch in der Freizeit haben. Erst recht kein Programiersprachen-Bashing.

    Und wenn alle so toll programmieren können, warum hat dann keiner einen DIY Chrony programmiert und alle gesagt. Nein Play. Das geht nicht.

    Mit Arduino und ein paar Bauteile für wenige Euro kein Problem und besser als jedes Kauf-Chrony.

    Sorry aber von mir gibt es kein :huldige: Ob echt oder unecht.

    Wenn es einer auf einem C64 oder Amiga schafft, ein Mandelbrot Code zu schreiben, der das in nahezu Echtzeit schafft, dann bin ich beeindruckt.

    Aber da geht es um Algorithmen und nicht, ob man alle Befehle kennt.

    Gruß Play

    Die Realität ist eine Frage des Wissens. Gruß Play

    2 Mal editiert, zuletzt von the_playstation (3. Juli 2022 um 01:25)

  • Nun gut. Eigentlich dient ein Dipl Ing ja dazu auch selbstkritisch auf das eigene Wissen zu schauen. Und in Eigenregie ggf. vorhandene Lücken zu füllen.

    Ich wollte hier auch nicht vom eigentlichen Thema wegführen, hatte ja mehrfach angeboten bei Interesse separate Threads zu eröffnen. Allerdings ist der Grad von Halbwissen und teilweise echtem Blödsinn in Punkto Software echt erschreckend. Das konnte ich nicht einfach unreflektiert so stehen lassen. Damit tust du Leuten die sich für Embedded Software tun wirklich keinen Gefallen.

    Man sollte hier wirklich unterscheiden zwischen dem Hobby Elektronik (wo du, Play, tatsächlich gute Infos lieferst!) und der inzwischen omnipräsenten Software. Und zu letzterer gibt es hier im Thread inzwischen ziemlich viel buzzwords auf Stammtisch Niveau was für Leute die da ernsthaft einsteigen wollen eher kontraproduktiv ist.

  • Yup Großer Meister des Cs.

    Blödsinn kam glaube ich von Dir mit Programmieren in 2 Wochen ohne Absolvierung und ohne Algorithmen zu lernen. ;) Ohne Algorithmen geht leider nic ausser simpelsten Programmen. Das fängt bei Such- und Sortier-Algoritmen an und hört bei Konvertierungen, Verschlüsselungen, ... auf.

    Aber klar. Man kann natürlich immer auf die Arbeit anderer hoffen, die schon passende Bibliotheken geschrieben haben.

    Bei MP3 z.B. auf den lahmen Lame Algorithmus.

    Oder man nutzt einen mit variabler Datenrate, der Speicherplatz spart und auch noch 20x schneller ist.

    Oder die Möglichkeiten von Programmsprachen mit der Fähigkeit des Users sauber zu programmieren zu verwechseln.

    Das war starker Tobak der korrigiert werden mußte.

    Gruß Play

    Die Realität ist eine Frage des Wissens. Gruß Play

  • Ok, back to electronics. Das Messprinzip eines Chrony ist zumindest ein Hardware Problem. Da wird man prinzipbedingt niemals besser als die Messreferenz die zur Verfügung steht. Die Software ist dann eher trivial, da steckt nicht viel hinter. Mit touchGfx hat man auch relativ fix eine GUI gebastelt. Allerdings würde ich da aus Neugier tatsächlich schon fast zu QT greifen.

    Wenn die Hardware stimmt, würde man zumindest die Messung bequem in einen AtTiny bekommen. Mit Display wäre aber wieder ein ARM günstiger.


    Und Mandelbrot... Da hatte ich sogar mal ein 392Byte Demo gecodet. In Assembler, bootbar von Diskette. Mandelbrot in zoom action. Das ganze gab es dann noch in Pascal, C unter DOS und opengl unter Windows. Waren spannende Zeiten ;)

    Übrigens hat das Mandelbrot keine competition gesehen, damals standen alle auf Plasma Effekte.

  • Aber stimmt. Ich habe es hauptsächlich aus Spaß und Hobby gemacht. Kopierschutz geknackt oder Musik CDs in MP3 gewandelt.

    Hardware:

    Die Daten stehen ja in den Datenblättern. Zwei schnelle Photodioden und 2x Laserdioden und fertig. Wo ist das Problem? Die Exaktheit wird nur von der Geschwindigkeit des μC Signaleinganges und ein Wenig von den Photodioden bestimmt.

    Wobei die Flanken bei beiden Dioden gleich ist und daher auch beide Verzögerungen. Sie müssen eher gleich sein also nach Geschwindigkeit selektiert.

    Gruß Play

    Die Realität ist eine Frage des Wissens. Gruß Play

  • ja...Auf den Schultern von Giganten. Das ganze Arduino Prinzip lebt davon Bibliotheken anderer zusammen zu stricken. Nur ist halt eine Arduino lib nicht mal ansatzweise vergleichbar mit z.b einer openssl lib.

    Klar gibt es durchaus auch interessante Arduino Sketches, allerdings basieren die auf Libs die eher aus der Unix Welt kommen. OpenCV z.b.

    Und glaub es oder nicht, Grundlagen C ist tatsächlich in 2 Wochen lernbar. Und die Menge zu lernen ist nicht schlimmer als das was man für Arduino braucht.

    Zum lernen wie Software wirklich funktioniert würde ich allerdings zu Python greifen. Da versteht man am ehesten noch grundlegende Konzepte. Anstatt diese zu kopieren und sich völlig unbegründet für das große Genie zu halten.

  • Nur ist halt eine Arduino lib nicht mal ansatzweise vergleichbar mit z.b einer openssl lib.

    Und in dieser Aroganz liegt dein Fehler. Das mag für alle im Durchschnitt gelten. Bedeutet aber nicht, daß nicht eine Arduino Bibliothek 100x besser sein kann. Denn das hängt, wie ich schon 10x verklickert habe am Programmierer bzw dem Ersteller und nicht von der verwendeten Umgebung ab. Daran hat sich seit dem PET nichts geändert!

    2 Wochen:

    Halt Grundlagen. Aber schön, daß Du an deiner ursprünglichen Ansicht nicht festhälst. ;)

    Gruß Play

    Die Realität ist eine Frage des Wissens. Gruß Play

  • Nur ist halt eine Arduino lib nicht mal ansatzweise vergleichbar mit z.b einer openssl lib.

    Und in dieser Aroganz liegt dein Fehler. Das mag für alle im Durchschnitt gelten. Bedeutet aber nicht, daß nicht eine Arduino Bibliothek 100x besser sein kann. Dann das hängt, wie ich schon 10x verklickert habe am Programmierer und nicht an der verwendeten Umgebung. Daran hat sich seit dem PET nichts geändert!

    2 Wochen:

    Halt Grundlagen. Aber schön, daß Du an deiner ursprünglichen Ansicht nicht festhälst. ;)

    Gruß Play

    Fakt ist, das die meisten Arduino Libs das Niveau einer studienarbeit haben. An openssl hingegen arbeiten Leute die sich disassemblis anschauen,Unit tests fahren und jede CPU bis aufs letzte Bit kennen. Und obendrein die Mathematik dahinter verstanden haben. Das ist eine komplett andere Welt von der man da profitiert.

    Der Haken ist nun, das keiner dieser Giganten das Zeugs für Arduino entwickelt. Nur gelegentlich tut mal jemand was portieren. Und oft mit fraglichen Verständnis der Materie oder mit mit miesen Kompromissen um der "Architektur" des Arduino Universum gerecht zu werden.