Hallo Leute, Ich versuche mich schon seit längerer Zeit daran, das Programmieren von Microkontrollern in C/C++ zu lernen, bisher leider mit wenig Erfolg. Jetzt hat mir jemand den ich sehr gut kenne den Tipp gegeben, erstmal den Quellcode einfacher Geräte zu lesen, und vielleicht im trial und error Verfahren zu versuchen, diesen zu modifizieren, und zu flashen, um zu sehen, was passiert. Nun ist die Frage, wo ich ein Gerät herbekomme, das eine einfache Software hat, bei der man an den Quellcode kommt. Das Problem ist leider, seit China alles klaut/kopiert/stiehlt, brauche ich bei Firmen garnicht erst anfragen, die werden schon sauer wenn man nur das Wort "Software" in Verbindung mit "bekommen" erwähnt. Wenn es dann noch um Sourcecode geht, brauche ich gar nicht mehr zu fragen... Wenn einer ein Gerät kennt, das nciht allzu komplex ist, bei dem die Software Open source verfügbar ist, wäre es schön, mir das mitzuteilen, aber ich denke mal es wird wohl recht unwahrscheinlich sein, dass einer da was kennt...
Wenn nicht mal der geniale Tippgeber was passendes kennt, wird’s schwierig. Es gibt aber tatsächlich Open-Source für alles mögliche, von der Funksteckdose über WLAN-Router, Sat-Receiver, und was auch immer. Nur wird dir das alles nichts nützen. Reale Geräte sind meistens nicht simpel. Kauf dir einen Raspi, und such dir ein passendes Projekt. Oliver
Wenn die Software nicht grad als Opensource entwickelt wurde, wirst Du wohl keinen Hersteller finden, der Dir seinen teuer entwickelten Code (am besten noch kostenlos) zur Verfuegung stellt. Das ist aber nicht erst seit China so.
Genau für so etwas haben verschiedene Hersteller ihre Discovery Boards erfunden.
Wie wäre es erstmal mit einem Arduino? Da gibts unzählig Zubehör und Tutorials.
Bastler schrieb: > Das > Problem ist leider, seit China alles klaut/kopiert/stiehlt, Nö, du willst deren Soft für umsonst.
Bastler schrieb: > Wenn einer ein Gerät kennt, das nciht allzu komplex ist, bei dem die > Software Open source verfügbar ist, wäre es schön, mir das mitzuteilen Man nennt das AppNote oder ReferenceDesign. Da gibt es sehr viele von Microchip und Atmel, daher sind die berühmt geworden, und von SinoWealth, daher können Chinesen so viel so schnell auf den Markt bringen. Aber in C/C++ ? Sicher einige, aber wenige, und wenn dann eher die komplexeren, die einfachen waren in Assembler. Und komplexere sind wohl keine guten Lehrmittel. Obwohl mir der Source von CP/M, GEM und Windows viele Einblicke gegeben hat, leider erst weit nachdem die Produkte obsolet waren.
Hallo, Zu Zeiten als der "Geniale Tippgeber" das gelernt hat, ging es noch, aber da waren die Zeiten noch anders, das war vor etlichen Jahren, und die Firmen waren da noch deutlich Coolanter. Das Problem ist die Angst vieler Firmen, dass der Source Code dann nicht bei mir bleibt, sondern irgendwie ins Internet gelangt, von dort weiter kommt, usw usf, dann natürlich noch gewisses Wissen, was man über das Gerät durch den Quellcode erlangen kann, usw, usf. Ich werde mich mal weiter umsehen, Arduino ist eine Idee, wird wohl nichts anderes übrig bleiben, es gibt einfach keine "reellen" Geräte mit Open Source Software. Das liegt wie ich, mittlerweile von vielen Firmen (und deren Mitarbeitern) erfahren habe einfach an deren Angst, den Quellcode danach nicht mehr unter Kontrolle zu haben. Aber man gibt ihn natürlich dem Chinesischen Staat, oder einer chinesischen "Partnerfirma" um mit seiner Firma auf den Chinesischen Markt zu kommen, in der Hoffnung/dem Glauben, das sie dort bleiben würde., und nicht missbraucht werden würde... Ja, ich hasse China und Chinesen, mache daraus auch keinen Hehl, würdet ihr aber wohl auch, wenn ihr bei einer Firma arbeiten würdet, die Jedes Jahr Unsummen durch den Diebstahl geistigen Eigentums verliert.
warum nicht einfach ein fertiges DIY Projekt nehmen und aufbauen? Eins wo Hard- und Software frei verfügbar sind. Da baust du die Hardware auf und kannst Die erstmal mit der originalen Software ans laufen bringen. Danach kannst du mit der Software machen was du möchtest. Es sollten sich hier im Forum diverse geeignete Beispiele finden.
Bastler schrieb: > Ich versuche mich schon seit längerer Zeit daran, das Programmieren von > Microkontrollern in C/C++ zu lernen, bisher leider mit wenig Erfolg. was genau geht denn nicht, bzw. woran klemmt es?
:
Bearbeitet durch User
Ganz ehrlich, Arduino + Arduino IDE! Die IDE hat schon Demos drin, daran kannst du dich austoben! Durch die Firmware eines kommerziellen Gerätes durchzusteigen bist Du sowieso nicht in der Lage wenn Du nicht Mal die LED Blink Democodes der ganzen Arduinos verstehst.
michael_ schrieb: > Es fehlt grauer Gehirnschmalz. Ja, präzise auf den Punkt gebracht. Fehlendes Hirn, und das bisschen Hirn was da ist, ist von der Architektur auf >Praxis< eingestellt, ein Wert der zumindest bei meinem Hirn hardcoded ist, und sich nicht so leicht verstellen lässt. Programmiersprache ist aber Theorie, Text auf Bildschirm am Anfang. Das ist das Problem. Ich war auch noch nie gut im Sprachen lernen, mein Englisch ist grauenhaft und hat den Englischlehrer in der Schule regelmäßig zum Verzweifeln gebracht... Blöd nur dass ich Programmiersprache wegen meiner Projekte brauche. Mir würden ja die schönsten Sachen einfallen, was man mit der Programmierkenntnis alles machen könnte. Poolheizung aus zwei Standheizungen, die mittels can mit einem Farbdisplay mitsamt Controller kommunizieren, E Scooter mit selbstlöschendem Code um es dem Sachverständigen vom Amt nicht allzu leicht zu machen, das Teil nach dem Einkassieren zu analysieren, etliche Kleinigkeiten im Haushalt, Spülmaschiene umprogrammieren, dass die mehr Wasser braucht dafür das Geschirr aber sauber wird, usw usf, aber dazu musst du es aber erstmal können...
uino und uino IDE sind die perfekte Gummizelle. Da kann der Geist noch so toben, es wird nichts vernünftiges herauskommen.
Bastler schrieb: > Mir würden ja die > schönsten Sachen einfallen, was man mit der Programmierkenntnis alles > machen könnte. Poolheizung aus zwei Standheizungen, die mittels can mit > einem Farbdisplay mitsamt Controller kommunizieren, E Scooter mit > selbstlöschendem Code um es dem Sachverständigen vom Amt nicht allzu > leicht zu machen, das Teil nach dem Einkassieren zu analysieren, etliche > Kleinigkeiten im Haushalt, Spülmaschiene umprogrammieren, dass die mehr > Wasser braucht dafür das Geschirr aber sauber wird, usw usf, aber dazu > musst du es aber erstmal können... Hör auf zu träumen! Da braucht es mehr als zu programmieren. Du willst mehr als ganze Heerscharen beim Entwickler einer Waschmaschine? Du überschätzt dich vollkommen. Reassemblieren schaffst du auch nicht. Lass erst mal eine LED blinken.
Bastler schrieb: > Spülmaschiene umprogrammieren, dass die mehr > Wasser braucht dafür das Geschirr aber sauber wird, usw usf, aber dazu > musst du es aber erstmal können.. Du kennst doch das Sprichwort: Es ist noch kein Meister vom Himmel gefallen. *) Diejenigen, die mit solchen Dingen ihre Brötchen verdienen, haben mehrere Jahre Programmiererfahrung und i.d.R. verstehen sie auch die Hardware, für die sie programmieren. Weisst du z.B., wie man das Wasserventil oder die Pumpen in deiner Spülmaschine elektrisch ansteuern muß, und wie man das mit einem Mikrocontroller machen könnte, wenn dir jemand anderes das gewünschte Programm schreiben wollte? Na bitte! Also fang erst mal klein an, z.B. mit den oft genannten und zu Unrecht verachteten Blinkschaltungen und lerne die Möglichkeiten des Prozessors kennen, mit dem du das erreichen willst. Wahrscheinlich landest du dabei nicht bei Programmierung mit C++, sondern bei Assembler, das i.W. aus dem Aufschreiben von Befehlen besteht, die der Microprozessor direkt ausführen kann. Zähle um 1 weiter, oder schalte an Anschluss12 die Betriebsspannung ein z.B. kann er. Die Division 10,7 / 4,3 aber kann er i.d.R. nicht, sondern dafür braucht man viele Maschinenbefehle - genau so wie du dich quälen müsstest um das mit Bleistift und Papier auszurechnen. Hinzu kommt, dass Microprozessoren meist nur wenig Speicher haben. Micro heisst ja auf griechisch "winzig". Manche Exemplare haben z.B. nur 256 Bytes Programmspeicher und 20 Byte RAM. Damit könnte man durchaus eine Eieruhr mit Fortschrittsanzeige basteln, aber wohl kaum mit einer Programmiersprache, die für sehr viel größere Projekte gedacht ist, an denen vielleicht sogar mehrere Programmierer gleichzeitig arbeiten. *) Leider doch: https://de.wikipedia.org/wiki/Manfred_Str%C3%B6%C3%9Fenreuther
Hp M. schrieb: > Weisst du z.B., wie man das Wasserventil oder die Pumpen in deiner > Spülmaschine elektrisch ansteuern muß, und wie man das mit einem > Mikrocontroller machen könnte, wenn dir jemand anderes das gewünschte > Programm schreiben wollte? > Na bitte! Ja weiß ich soweit. Prozessorpin mit entsprechdendem Mosfettreiber verbinden, den Treiber mit dem Mosfet, das schaltet dann wenn der Treiber auf Befehl des Prozessors anfängt es zu treiben 12v auf das Magnetventil, das öffnet und schon funktioniert das ganze. Dann noch einen kleines Zählrädchen, das die Wassermenge misst, das man auch mit dem Prozessor verbindet, der dann nach z.B.1000 Impulsen das Ventil wieder abschaltet. Assembler ist die grauenhafteste Programmiersprache der Welt wenn du große Programme in absehbarer Zeit schreiben willst, damit kannst du 32kb große Killerviren programmieren, mit denen du ein ganzes Rechenzentrum lahmlegen kannst, wenn du weißt wo dessen Schwachstellen sind, aber für die normale Programmierung ist es absolut ungeeignet. (O ton eines Programmierers bei uns in der Firma)
Wenn du ein Haus bauen willst, empfiehlt es sich unten damit anzufangen. Wenn du mit dem Dach anfängst, wird es wohl nur ein Steinhaufen werden.
Bastler schrieb: > Ich versuche mich schon seit längerer Zeit daran, das Programmieren von > Microkontrollern in C/C++ zu lernen, bisher leider mit wenig Erfolg. Kannst Du denn schon C und/oder C++ programmieren? Kannst Du überhaupt programmieren? Gemeint ist hier die SWE auf einem non-µC.
Bastler schrieb: > von Microkontrollern Es zeugt von geringer Auffassungsgabe, wenn das jemand in einem Forum namens Mikrocontroller.net falsch schreibt, selbst wenn's beim Schreiben vor der Nase pappt.
Bastler schrieb: > Jetzt hat mir jemand den ich sehr gut kenne den Tipp gegeben, erstmal > den Quellcode einfacher Geräte zu lesen Nur zu, GitHub ist voll von open Source Projekten. Um Gerätesoftware verstehen zu können, brauchst Du allerdings erstmal fundierte Hardwarekenntnisse. Du mußt ganz genau wissen, wie das Geräte im Detail funktioniert und wie die ganzen Sensoren, Aktoren, Anzeigen und Bedienelemente angesteuert werden. Datenblatt lesen darf daher kein Fremdwort sein und Elektronik auch nicht. Backe erstmal kleine Brötchen, z.B. ne Weckuhr, Beispiele findest Du zuhauf.
Bastler schrieb: > Zu Zeiten als der "Geniale Tippgeber" das gelernt hat, ging es noch, > aber da waren die Zeiten noch anders, das war vor etlichen Jahren, und > die Firmen waren da noch deutlich Coolanter. Mit Sicherheit weder das eine noch das andere ;) „Früher“ hatte man als Bastler überhaupt keinen Chance, an die benötigte Programmierhard- und Software zu kommen. Das hat sich erst in den letzten paar Jahren mit den einfach programmierbaren Flashspeichern in den Prozessoren und der Standardisierung auf PIC/ARM/Atmel/... mit den dazugehörigen Open-Source Toolchains geändert. Das nutz dir aber alles nicht. Mit Arduino bekommst du heute ein Paket, daß dir alle technischen Hürden aus dem Weg schafft. Du musst nur noch programmieren. Wenn das partout nicht klappen will, ist das das falsche Hobby für dich. Oliver
@Bastler das scheinen mir aber mehrere Problemkreise zu sein. Die Wahl der "richtigen" Programmiersprache ist da anscheinend noch das "geringere" Thema. a) du solltest lernen/verstehen, Abläufe "algorithmisch" zu erfassen, und diese Abläufe dann in Algorithmen und Datenstrukturen umzusetzen. --> schaue dir Sortierverfahren an, versuche sie zu "verstehen" und schaue dir "trocken" an wie diese in C oder Java implementiert sind. https://de.wikipedia.org/wiki/Sortierverfahren Nimm zuerst einen einfaches Verfahren (Bubblesort), und steigere dich dann zu komplexeren Verfahren (z.B. Timsort). das "verstehen" eines Sortieralgorithmus geht ganz gut, wenn du dir eine kleine Menge (z.B. 5 Elemente) auf ein Blatt Papier aufzeichnest, und dann "Schrit für Schritt" ein "Papier-Trace bzw Debug" machst, d.h. dir jeden Zustand im Programm nachempfindest und dir die Werte von Variablen aufs Papier aufschreibst. In einem weiteren Schritt kannst du dann lernen/verstehen, wie solch ein Programm "in den Computer" hinein gelangt, also wie deine Werkzeuge (Editor, Compiler etc) funktionieren. Dazu brauchst du erst mal keinen Mikro-Controller, sondern kannst dieses am PC oder online durchführen. b) in einem weiteren Schritt kommt es dann zu den Besonderheiten von "real existierender Hardware" auf MC, z.B. Interupts und Ein-/Ausgabe-Besonderheiten. --> Welchen "Status" des zuvor genannten hast du denn momentan schon erreicht?
:
Bearbeitet durch User
Bastler schrieb: > Assembler ist die grauenhafteste Programmiersprache > der Welt wenn du große Programme in absehbarer Zeit schreiben willst Assembler ist keine Programmiersprache, sondern nur ein 1:1 Übersetzer von Mnemonics in Opcode. Der Präprozessor fügt noch syntaktischen Zucker hinzu und der Linker plaziert verschiebbaren Code und Daten, das wars dann aber auch. Da die CPUs und die Applikationen immer komplexer werden, ist Assembler kein geeigneter Startpunkt mehr fürs Programmieren lernen. Wichtig fürs Programmieren ist logischen Denken zu lernen, d.h. das Denken in Abläufen (Programmablaufplan). Ein guter PAP ist schonmal 80% der Programmierarbeit. Das eigentliche Code eintippen max 5%.
:
Bearbeitet durch User
Peter D. schrieb: > Datenblatt lesen darf daher kein > Fremdwort sein und Elektronik auch nicht. Kann er nicht: Bastler schrieb: > Ich war auch noch nie gut im > Sprachen lernen, mein Englisch ist grauenhaft und hat den Englischlehrer > in der Schule regelmäßig zum Verzweifeln gebracht. sdgfaavlhldkf
Peter D. schrieb: > Da die CPUs und die Applikationen immer komplexer werden, ist Assembler > kein geeigneter Startpunkt mehr fürs Programmieren lernen. Ich bin aber trotzdem der Meinung, dass jemand, der sich ernsthaft mit Mikrocontrollern beschäftigen will, mit Assembler eine LED zum Blinken gebracht haben muss, einmal mit Warteschleife und einmal mit einem Timer. Einfach nur, damit das Verständnis kommt, was da eigentlich pasiiert. Wenn es AVRs sein sollen, kommt noch das Trampeln in die DIV8-Falle ins Pflichtprogramm. sdgfaavlhldkf
Bastler schrieb: > es gibt einfach keine "reellen" Geräte mit Open Source Software. Doch, natürlich, aber die sind dir zu kompliziert. SigRok Oszilloskope, viele DSL Modems und Set Top Boxen weil Linux basiert, Android. Bei klein klein wie du es suchst muss man nicht auf der Arbeit von anderen aufsetzen, da macht open source keinen Sinn sondern nur mehr Mühe.
:
Bearbeitet durch User
Hallo "Wichtig fürs Programmieren ist logischen Denken zu lernen, d.h. das Denken in Abläufen (Programmablaufplan)." Und da fehlt es irgendwie an Tutorials, zumindest im µC Bereich. Zwar wird es in jedem einigermaßen tief gehenden Buch bzw. Tutorial so oder ähnlich erwähnt und teilweise auch erklärt wie so ein Ablaufplan aussieht und den "Regeln" entsprechend erstellt wird. Aber wie man nun sinnvolle (das sinnvolle erkennen und extrahieren dieser Schritte meine ich) Abläufe erkennt, wie stark Moduleisiren im jeweiligen sinnvoll ist und wie diese Module (Unterprogramme, Funktionen, Sprung zu einen Label - letztendlich immer die gleiche Grundidee) am besten erstellt werden, wird aber eben nicht erklärt. Das scheint mir generell der Knackpunkt beim Programmieren zu sein, die Sprache selbst ist meist in übersichtlicher Zeit erlernt, wenn man Hardwarenah - und da ist Assembler bei "kleinen" µC immer noch genial wenn man wirklich verstehen will was den der µC eigentlich genau macht-, kommt noch das Datenblatt mit hinzu was wenn man ein wenig Grundwissen erworben hat auch nicht wirklich schwer zu verstehen ist - also sollte es doch einfach sein zu programmieren - ist es aber nicht. Kann es sein das man hier bzw. in "technischen" Lehrbüchern und Tutorials eigentlich am falschen Platz ist und man dieses "Denken" ganz wo anders erlernen kann? Aber wo und wie? Üben und sich fertigen Code ansehen mag ja gut sein aber irgendwie scheint mir das ein unnötig anstrengender Weg (und hier geht es ja um ein Hobby - die studierten Profis lasse ich mal außen vor) zu sein, wo irgendwas "vergessen" wird bzw. eben durch Aufwand und "Stress" (irgendwann macht Fehlersuchen keinen Spaß mehr, ist keine angenehme Herausforderung sondern einfach nur noch anstrengend und frustrierend) auf schlechter Weise ersetzt wird. Theo
sdgfaavlhldkf schrieb: > Ich bin aber trotzdem der Meinung, dass jemand, der sich ernsthaft mit > Mikrocontrollern beschäftigen will, mit Assembler eine LED zum Blinken > gebracht haben muss, einmal mit Warteschleife und einmal mit einem > Timer. Einfach nur, damit das Verständnis kommt, was da eigentlich > pasiiert. Nein - das kann man in C (C++) genauso gut nachvollziehen. Assembler macht für mich nur noch in extrem zeitkritischen Anforderungen einen Sinn. Was interessieren mich die Register, wenn ich eine LED blinken lassen will?
Theo schrieb: > "Wichtig fürs Programmieren ist logischen Denken zu lernen, d.h. das > Denken in Abläufen (Programmablaufplan)." > > Und da fehlt es irgendwie an Tutorials, Das lernt man im Beruf / Studium - nicht über Youtube. Heute meint jeder, mit Arduino und vorgefertigten Bibliotheken kann er alles Mögliche umsetzen - die "Failure" schlagen dann hier auf.
Hallo "Was interessieren mich die Register, wenn ich eine LED blinken lassen will?" Dich (persönlich) wohl nicht, mich hingegen sehr. Ist halt die Denkweise und das Interesse der jeweiligen Person. Die einen kommen mehr von der Hardwareseite, wollen verstehen wie in Prozessor arbeitet (und das ist bei einen 8Bit µC gerade noch so machbar) wollen sich nicht von abstrakten Gebilden abhängig machen welche die für sie (zu dieser Gruppe zähle ich mich auch) interessanten Details verstecken, die Anwendung aber auch einfacher machen. Die anderen stehen halt auf Software und für sie ist das auseinandersetzen mit dem was im µC abläuft nur (für sie leider nicht immer unnötiger) Ballast. Extrem sieht man das bei den hier im Forum heiß diskutierten Arduino Universum. Lasst doch jeder der Gruppen und Denkweise ihren Weg gehen und versuche nicht deine Denkweise (dein "Glauben") anderen auf zu drücken - das ist noch nie gut gegangen und in andern Gebieten haben sich schon Leute im Wortsinn die Köpfe eingeschlagen weil sie nicht einfach ihr Gegenüber den Weg gehen lassen wollten (den Glauben, die Weltanschauung) den diese halt für ihren richtigen halten. Theo
Theo schrieb: > "Was interessieren mich die Register, wenn ich eine LED blinken lassen > will?" Unser "Bastler" ist hier vollkommen falsch: er muss erstmal Programmieren lernen, und das macht man nicht auf einem µC, auch wenn es Arduino ist. Er könnte mit Kara oder Turtle auf dem PC anfangen.
Theo schrieb: > Dich (persönlich) wohl nicht, mich hingegen sehr. Warum? Die Register sind nur ein Hilfsmittel - für das Blinken sind Port und Pin interessant (und die Port-Register-Richtung), aber nicht das Register im MC.
:
Bearbeitet durch User
Bastler schrieb: > Kleinigkeiten im Haushalt, Spülmaschiene umprogrammieren, dass die mehr > Wasser braucht dafür das Geschirr aber sauber wird, usw usf, aber dazu > musst du es aber erstmal können... Wenn man keine Ahnung hat, hat man die tollsten Ideen. Bei steigenden Wissen und Können kommen weniger, aber qualitativ bessere (d.h. sinnvollere, realisierbare) Ideen. Offen gesagt verstehe ich dein Problem nicht: In Zeiten des Internets gibt es tausende Selbstbauprojekte, soft- und hardwaremässig dokumentiert, desweiteren bemüht sich jeder µC-Hersteller, seinen (potentiellen) Kunden den Einstieg mit Entwicklerboards und Democode so einfach wie möglich zu machen. Und dann wäre noch Arduino, zu dem gibts im INet jede Menge Informationen, Communitys, etc.. Und du kommst mit mimimi, kann nicht richtig englisch (sogar dafür gibts Übersetzer im Netz, von Google bis DeeplL, usw.) - was willst du eigentlich? Ein YT-Video, wo das alles erklärt wird? Lernen ist Üben, Üben, Üben - ernsthaft und konsequent. Beginnend mit den einfachsten Sachen - auch an denen kann man verzweifeln, aber das brauchts, sonst lernt man nix. Es ist aufwändig, vom Status des Spinners zu einen Status des Machers zu gelangen. btw: In diesen Forum sind solche Fragen "Wie fange ich an?" ein langweilendes Dauerthema, weil es oft so kommt, dass der Frager eigentlich nicht wirklich zu harter und langwieriger Arbeit bereit ist - sonst hätte er schon lange angefangen und zwar mit arbeiten und nicht mit fragen. Kann auch sein, dass Programmieren doch nichts für dich ist - aus den vielfältigsten Gründen heraus - das ist dann auch nicht schlimm. Und nein, Programmieren hat wenig mit Theorie zu tun, denn es zielt darauf ab, dass etwas in der Praxis funktioniert...
Bastler schrieb: > Ich versuche mich schon seit längerer Zeit daran, das Programmieren von > Microkontrollern in C/C++ zu lernen, bisher leider mit wenig Erfolg. Manchen Leuten fehlt einfach das Talent dazu. Bei mir persönlich ist der Knackpunkt hingegen die Sprache. Mir fallen nicht nur Fremdsprachen schwer, sondern auch deutsch. Kleine Anekdote: Ich fragte mal einen englischen Trainer, dem ich wochenlang erfolgreich zugehört habe, woran es wohl liegen möge, dass ich seine Ausführen problemlos verstehen kann, aber bei der Tageszeitung oder der Speisekarte vom Hotelrestaurant völlig versage. Daraufhin meinte er, dass ich wie ein kleines Kind spreche und er sich auf dieses Niveau angepasst hat, damit ich ihm folgen kann. Das gab natürlich Gelächter, aber Recht hat er. Es nützt ja nichts, wenn mein Chef tausende Euro für eine Schulung ausgibt, der ich nicht folgen kann. Was ich damit sagen will: Vielleicht brauchst du für den Anfang (oder auch länger) einfach nur eine Anleitung, die sprachlich auf deinem Niveau liegt und nicht allzu viele Vorkenntnisse verlangt. Ich würde Dir empfehlen, die Grundlagen der C/C++ Programmierung erstmal auf dem PC zu lernen. Verzichte dabei zumindest Anfangs auf grafische Oberflächen, die sähen zwar schicker aus, aber was du dabei lernen würdest nützt Dir auf Mikrocontrollern nichts. Oder fange mit meinem Buch (http://stefanfrings.de/mikrocontroller_buch/index.html) an. Da habe ich mich bemüht, die Grundlagen der Sprache mit einem einfachen Mikrocontroller zu vermitteln. Heute würde ich diese Vorgehensweise nicht mehr empfehlen, aber vielen anderen scheint es so zu gefallen. > Jetzt hat mir jemand den ich sehr gut kenne den Tipp gegeben, erstmal > den Quellcode einfacher Geräte zu lesen Das würde ich keinesfalls tun. Fremde Quelltexte verstehen ist die Kür. Denn du bist dann mit zahlreichen Konstrukten (Patterns und Syntax) konfrontiert, die du noch nicht kennst und vielleicht selbst auch niemals brauchen wirst. Außerdem musst du dich in den persönlichen Stil des Entwicklers einfinden. Das wäre in etwa so, als ob du dich zu professionellen Tänzern gesellen würdest, um mit ihnen zusammen zu tanzen. Das ist wirklich nichts für Anfänger! Du wirst schon genug damit zu tun haben, Programmierbeispiele aus Anleitungen nachzuvollziehen. Nachtrag: Bastler schrieb: > Ich war auch noch nie gut im > Sprachen lernen, mein Englisch ist grauenhaft Das habe ich erst danach gelesen. Willkommen im Club!
Theo schrieb: > Hallo > > "Wichtig fürs Programmieren ist logischen Denken zu lernen, d.h. das > Denken in Abläufen (Programmablaufplan)." > > Und da fehlt es irgendwie an Tutorials, zumindest im µC Bereich. Was jetzt - das logische Denken zu erlernen? Programmieren ist doch wie viele andere Aufgaben auch: Ganz abstrakt: Man muss das Ziel definieren, das Problem analysieren, sich klar werden welche Werkzeuge bzw. Hilfsmittel man braucht und letzendlich sich auch Gedanken machen, wie man den Fortgang des Ganzen überprüft und Fehler im weitesten Sinne ggf. frühzeitig erkennt. Ob man nun dazu einen tollen Ablaufplan nach DIN malt, oder sein eigenes System hat (so man Einzelkämpfer, sprich Bastler ist, geht im Team natürlich so nicht) ist eigentlich egal. Wichtig ist dabei auch die Segmentierung, d.h. Teilaufgaben definieren, lösen, überprüfen. > Zwar wird es in jedem einigermaßen tief gehenden Buch bzw. Tutorial so > oder ähnlich erwähnt und teilweise auch erklärt wie so ein Ablaufplan > aussieht und den "Regeln" entsprechend erstellt wird. > Aber wie man nun sinnvolle (das sinnvolle erkennen und extrahieren > dieser Schritte meine ich) Abläufe erkennt, wie stark Moduleisiren im > jeweiligen sinnvoll ist und wie diese Module (Unterprogramme, > Funktionen, Sprung zu einen Label - letztendlich immer die gleiche > Grundidee) am besten erstellt werden, wird aber eben nicht erklärt. > Das "am besten" - da gehen die Meinungen möglicherweise auseinander. Es gibt halt meist mehrere Ansätze zur Lösung einer Aufgabe. Wenn man selbst schon eher strukturiert denkt und arbeitet, wird einem das leichter fallen als einen Chaoten (nicht böse gemeint). > Das scheint mir generell der Knackpunkt beim Programmieren zu sein, die > Sprache selbst ist meist in übersichtlicher Zeit erlernt, wenn man Meine Meinung: Es braucht Jahre, um eine Sprache richtig zu erlernen und wirklich zu verstehen, weil es nämlich nicht nur "stumpfes" Lernen, sondern auch gewisser Erfahrungen bedarf, um eine Sprache zu beherrschen (d.h. die Wahrscheinlichkeit böser Überraschungen aufgrund von Unkenntnis zu minimieren). > Tutorials eigentlich am falschen Platz ist und man dieses "Denken" ganz > wo anders erlernen kann? Guter Punkt. Strukturiertes Herangehen und Lösen einer Aufgabe hat ja nichts per se mit Programmieren zu tun. Dann brauchts noch bisschen Kreativität - das wird zuweilen auch unterschätzt. > Aber wo und wie? > > Üben und sich fertigen Code ansehen mag ja gut sein aber irgendwie Naja, nicht ansehen - verändern, dahinter kommen, wie das Ganze funktioniert, es anpassen - daraus lernen. Vielleicht auch seinen eigenen Frotschritt dokumentieren, sich ein Notizbuch (ggf. richtig aus Papier) dafür anlegen, insbesondere Fehlersuche (oder besser -finden) und seine Fails aufschreiben. > scheint mir das ein unnötig anstrengender Weg (und hier geht es ja um > ein Hobby - die studierten Profis lasse ich mal außen vor) zu sein, wo > irgendwas "vergessen" wird bzw. eben durch Aufwand und "Stress" Also den Nürnberger Trichter fürs Programmieren gibts nicht. Wenn man etwas wirklich will, dann scheut man auch nicht den Aufwand, das zu lernen. Da ist er wieder: Der "moderne" Trugschluß, dass wenn man passiv auf der Couch liegend ein Lehr-Video ansieht dabei irgendwas anwendbares lernen könnte. Man lernt nur durch eigene Anstrengung - es gibt kein "müheloses" Lernen - gleich gar nicht, wenn es um komplexe Dinge geht. Für den einen etwas mehr, für den anderen etwas weniger Aufwand. In Programm/Datenstrukturen zu denken ist nicht jedermanns Sache. > (irgendwann macht Fehlersuchen keinen Spaß mehr, ist keine angenehme > Herausforderung sondern einfach nur noch anstrengend und frustrierend) Der Unterschied besteht darin, dass es Leute gibt, die sich durch Mißerfolge nicht entmutigen lassen und immer weiter machen. Und die anderen halt, die schon frühzeitig aufgeben. Ja nun. Isso.
Suche mal in diesem Forum nach Lernbetty. Du wirst schnell fündig, z.B. hier Beitrag "Die Lernbetty: Die SwissBetty von Pollin als ARM-Evalboard" . W.S., der das Projekt initiiert hat, hat auch eine kleine Dokumentation geschrieben. Der von ihm geschriebene Sourcecode ist eigentlich so geschrieben, das man ihn nach vollziehen kann. Über W.S. wird hier im Forum zwar etwas kontrovers diskutiert, lass Dich davon nicht abschrecken, speziell das Lernbettyprojekt ist nicht schlecht und man kann was lernen. Mir hat es zumindest geholfen das eine oder andere besser zu verstehen. Schau es Dir einfach mal an und falls Du Dich dafür erwärmen kannst, dann kannst Du die dafür erforderliche Betty Fernbedienung auch noch für geringes Geld bekommen (z.B. hier https://www.ebay.de/i/283458664293?chn=ps&norover=1&mkevt=1&mkrid=707-134425-41852-0&mkcid=2&itemid=283458664293&targetid=518047042556&device=c&mktype=pla&googleloc=9068245&poi=&campaignid=7210416700&mkgroupid=88791554148&rlsatarget=pla-518047042556&abcId=1139166&merchantid=7364532&gclid=EAIaIQobChMIvKCUhvzm5QIVxeN3Ch3d9wySEAQYAiABEgKXePD_BwE).
Stefan F. schrieb: > Manchen Leuten fehlt einfach das Talent dazu. Bei mir persönlich ist der > Knackpunkt hingegen die Sprache. Mir fallen nicht nur Fremdsprachen > schwer, sondern auch deutsch. Das hat nichts mit der Sprache zu tun. Logisches Denken und eine strukturierte Vorgehensweise (Programmablaufplan / Nassi-Schneidermann etc.) sind unabdingbare Voraussetzung. Klar, manche (kleinere) Probleme können direkt umgesetzt werden. Alles andere sollte vor-strukturiert werden. Wenn man nicht abstrahieren kann kann man auch nicht programmieren :-)
Hugo H. schrieb: > Wenn man nicht abstrahieren kann > kann man auch nicht programmieren :-) Deswegen dieses Buch: http://elementsofprogramming.com Zeno schrieb: > Suche mal in diesem Forum nach Lernbetty Ich hoffe, der Bastler macht es nicht. Denn er hat weder vom strukturierten Denken noch vom Programmieren noch vom Denken in abstrakten Strukturen eine Ahnung. Da ist der Hinweis auf ein µC-Lernkit vollkommen fehl am Platz. Ich würde ihm etwa https://de.wikipedia.org/wiki/Kara_(Programmierumgebung)#:~:targetText=Kara%20ist%20eine%20weitverbreitete%20Lernsoftware,den%20sogenannten%20Minisprachen%20zugeordnet%20werden. empfehlen.
Hugo H. schrieb: > Das hat nichts mit der Sprache zu tun. Die sprachliche Hürde hindert mich daran, gewisse Anleitungen zu verstehen. Im Laufe der Zeit wächst man da natürlich rein. Meine ersten Programmierversuche fanden auf einem C64 statt. Dessen Basic war in der Bedienungsanleitung (für mich) sehr verständlich dokumentiert.
MeierKurt schrieb: > Was jetzt - das logische Denken zu erlernen? Programmieren ist doch wie > viele andere Aufgaben auch: > Ganz abstrakt: Man muss das Ziel definieren, das Problem analysieren, Hugo H. schrieb: > Das hat nichts mit der Sprache zu tun. Logisches Denken und eine > strukturierte Vorgehensweise (Programmablaufplan / Nassi-Schneidermann > etc.) sind unabdingbare Voraussetzung. genau, ist wie Kuchen backen, Zutaten sammeln ist eine Sache, aber woher und wann bekommt man die Zutaten? Wer das nicht aufdröseln kann hat schon verloren. Wilhelm M. schrieb: > Da ist der Hinweis auf ein µC-Lernkit > vollkommen fehl am Platz. denke ich auch, auch Programmiersprache oder englisch ist keine Hürde, eher: Bastler schrieb: > Mir würden ja die > schönsten Sachen einfallen, was man mit der Programmierkenntnis alles > machen könnte. Poolheizung aus zwei Standheizungen, die mittels can mit > einem Farbdisplay mitsamt Controller kommunizieren, E Scooter mit > selbstlöschendem Code um es dem Sachverständigen vom Amt nicht allzu > leicht zu machen, das Teil nach dem Einkassieren zu analysieren, etliche > Kleinigkeiten im Haushalt, Spülmaschiene umprogrammieren, Unfug hoch 10 Wer nicht die verwendeten Contoller kennt weiss auch nichts wo wann welche Ports geschaltet werden, das alle genennten Geräte denselben Controller verwenden (oder gar einen "Arduino") ist mehr als fraglich. Selbst wenn man den Code auslesen könnte weiss man immer noch kaum was Daten oder was Befehle sind, Spezialisten können einiges erahnen, aber dazu müssten sie sich schon speziell im verwendeten Controller auskennen der aber oft unbekannt ist erst mal.
Stefan F. schrieb: > Die sprachliche Hürde hindert mich daran, gewisse Anleitungen zu > verstehen. Im Laufe der Zeit wächst man da natürlich rein. > > Meine ersten Programmierversuche fanden auf einem C64 statt. Dessen > Basic war in der Bedienungsanleitung (für mich) sehr verständlich > dokumentiert. Das Internet -> Google übersetzt heute "jeden Scheiss" :-) nicht immer richtig aber i.d.R. halbwegs verständlich. Das ist für mich kein "Totschlag-Argument". Man muss sich halt bemühen - und nicht per Youtube & Co. berieseln lassen. Der VC20 später C64 waren auch mein Einstieg ...
:
Bearbeitet durch User
Bastler schrieb: > Coolanter. :-O > Ja, ich hasse China und Chinesen, mache daraus auch keinen Hehl, Rassismus... > Ich versuche mich schon seit längerer Zeit daran, das Programmieren von > Microkontrollern in C/C++ zu lernen, bisher leider mit wenig Erfolg. ... gepaart mit Dummheit und Misserfolgen ist die beste Kombination für eine erfolgreiche Karriere in der AfD oder NPD. :-(
wieso muss es denn unbedingt C sein? Hast Du es mal mit Aspcal oder Basic versucht. Bedeutetnd einfacher ind Du kanst im Grunde genommen damit genau das gleiche machen, nur viel schneller, und kannst dann auch richtig programmieren. Wenn Du dann magst, kannst Du dann recht einfach auch auf C umsteigen, aber zu erlernen ist Pascal ungleich einfacher und Pascal ist auch eine richtige Programmiersprache, nicht wie Python z.B. wobei Python sicher auch nicht schlecht sein muss. Schau mal bei mikroe.com z.B. Und zum reinen erlernen der Sprache geht es auch noch besser mit Freepascal bzw Lazarus Pascal, die Community ist sehr hilfsbereit, da kommst Du sicher schneller zum Erfolg:-)
kein gast schrieb: > wieso muss es denn unbedingt C sein? Muss es nicht und sollte es m.E. auch nicht. Wichtig ist: kein µC! Auf dem PC kann er durchaus mit modernem C++ oder (besser) Java anfangen. Erst wenn er die Grundprinzipien des prozeduralen Programmierens und ggf. die Grundzüge von OO und/oder generischer Programmierung verstanden hat, sollte er Richtung µC gehen. Das wiederum darf ruhig erst mal in C sein.
Ich verstehe nicht, was der TO für Probleme hat. Er sollte mal erst mal offen legen wie sein Bildungsstand und seine berufliche Situation aus sieht. Ein ganzes Volk zu verunglimpfen, nur weil viele eine sich gebende Gelegenheit nutzen, durch ihr Handeln zu leben, ist wohl kaum sinnvoll. In bestimmten Bereichen der Gesellschaft gibts noch ganz andere Abzocker die aus Nichts Geld machen. Auch in Asien gibts clevere Leute und die Software vieler Smartphones sind da ganz selbständig entwickelt worden. Kopierer wird man auch eher in den unteren Bevölkerungsschichten finden, die eben nicht so selbständig denken können, aber das ist meist eine Frage der Bildung, weil das da Geld kostet (Schulgeld). Fortbildungen sind hier auch nicht umsonst, können aber mitunter gefördert werden. Im Gegensatz zu früher stehen einem die Werkzeuge meist kostenlos zur Verfügung und Anleitungen in Form von Tutorials, auch Bücher und Videos, gibts auch reichlich. Wenn der TO nicht versteht, wie ein µC funktioniert, dann würde ich ihm mal den Debugger oder einen geeigneten Simulator empfehlen. Diese Dinge stehen in der Ausbildung selten auf den Ausbildungsplänen, obwohl das sicher Sinnvoll wäre. Learning by doing. Wenn man solche Sachen anfängt, müssen erst mal die Grundlagen und der Gebrauch der Werkzeuge sitzen. Erst später wird die Sache strukturierter, so dass man strategischer vorgehen muss. Man schreibt auch kein großes unübersichtliches Programm, sondern Module, die man dann nach Bedarf nachlädt und benutzt, aber das kommt dann viel später. Wenn der Arduino angesagt ist, gibt es da eine Software mit der man Module grafisch wie aus einem Bausteinkasten zusammen setzen kann, was das Programmieren ungemein erleichtert. https://www.google.de/search?ei=6erLXbe9BKz6sAfIuojwAg&q=arduino+ardublock&oq=arduino+ardublock&gs_l=psy-ab.3..0l2j0i30l5j0i5i30j0i8i30l2.26234.27594..29261...0.0..0.312.891.0j1j2j1......0....1..gws-wiz.......0i7i30i19j0i7i10i30i19j0i8i7i30i19j0i13j0i8i7i30j0i13i30j0i13i5i30j0i8i13i30.933UgRVE7z4&ved=0ahUKEwj31cvJjOflAhUsPewKHUgdAi4Q4dUDCAo&uact=5 Ist eigentlich nicht viel anders als die höheren Programmiersprachen mit IDE, also Delphi, Visual Basic, VisualC# usw., allerdings sind einige Sprachen da etwas anspruchsvoller, was das strukturierte Danken angeht. Natürlich sollte man nicht gleich mit komplexen Algorithmen anfangen, sondern einfachere Sachen ausprobieren. Wenn das Programm nicht das tut, was es soll, dann muss man halt Debuggen. Wenn man da Schwierigkeiten hat kann man hier sicher mal eine gezielte Frage zu stellen, aber man kann nur eine Antwort erwarten, wenn sich die Community darauf einstellen kann. Salamitaktik führt zu nichts.
Bastler schrieb: > Jetzt hat mir jemand den ich sehr gut kenne den Tipp gegeben, erstmal > den Quellcode einfacher Geräte zu lesen, und vielleicht im trial und > error Verfahren zu versuchen, diesen zu modifizieren, und zu flashen, um > zu sehen, was passiert. Das hätte ich dir auch erzählt, wenn du mir mit diesem Scheiß auf den Geist gegangen wärst: Beitrag "BLDC Controller mit STM32F103C8T6 Geschwindigkeitsbegrenzer in der .hex"
Mawin schrieb: > uino und uino IDE sind die perfekte Gummizelle. > > Da kann der Geist noch so toben, es wird nichts vernünftiges > herauskommen. Echt jetzt? Nur weil die main durch setup/loop ersetzt wurde und die Dateien nicht die Endungen .c/.h, sondern .ino/.h haben? C und der avr-gcc bleibt es ja dennoch.
Hallo, Peter D. schrieb: > Wichtig fürs Programmieren ist logischen Denken zu lernen,... Da stimme ich dir vollkommen zu. > Ein guter PAP ist schonmal 80% der Programmierarbeit. Das eigentliche > Code eintippen max 5%. Hast du, als du das erste Programm in deinem Leben geschrieben hast, als erstes einen Programmablaufplan erstellt? Oder war es nicht eher so das du erst mal mit der benutzten Programmiersprache so was wie ein "Hello, World"-Programm oder eine LED-Blink-Routine zusammen getippt hast? Ich finde mit genau so was sollte man als Anfänger beginnen um erst mal überhaupt zu versteht worum es geht. Der PAP kommt meiner Meinung nach erst danach. rhf P.S.: Allerdings sollte man als Anfänger auch klein anfangen anstatt sofort die heimischen Elektrogeräte umzuprogrammieren.
Andreas S. schrieb: > ... gepaart mit Dummheit und Misserfolgen ist die beste Kombination für > eine erfolgreiche Karriere in der AfD oder NPD. :-( Na, wenn man sich das Personal incl. "Spitzenkandidaten" anderer politischer Gruppierungen ansieht, wäre die Auswahl doch etwas größer. hint: Politische Zwangs-Beißreflexe bitte unterdrücken - weil sieht manchmal ziemlich dämlich aus.
Roland F. schrieb: > Hast du, als du das erste Programm in deinem Leben geschrieben hast, als > erstes einen Programmablaufplan erstellt? Oder war es nicht eher so das PAP nur dann wenn das Progrämmlchen eine bestimmte Komplexität übersteigt. Oder griffiger: Wenn ich mit meinen eigenen Code nicht mehr klar komme, und/oder ich zwischendurch vergessen habe wie ich das eigentlich machen wollte oder aber doch irgendwas entscheidendes vergessen wurde... Das ist wie Bedienungsanleitung lesen: Wird nur im Notfall gemacht. Was man sollte: Quelltext reichlich kommentieren, das hilft mE mehr als irgendwelche Ablaufpläne (die schon nach den ersten drei Codezeilen obsolet sein könnten - weil ist ja schließlich auch ein schöpferischer Prozeß det Janze) Und: Gleich Dinge immer auf die gleiche Art und Weise tun. Und: Fehlererkennung und -behandlung als festen Bestandteil einplanen. Es ist ziemlich grottig, ins "Nachhinein" Fehlertraps legen zu müssen, weil irgendwo irgendein Bug ist, dessen genaues Szenario man erst eingrenzen muss.
Das ist ja geil - aber selber sich aufregen, warum um alles in der Welt denn fremde Programmierleistung(en) nicht für jedermann zugänglich ist/sind. Würde aber, wenn er's denn nur könnte, seinen Code verbergen oder sogar löschen wollen... ja nee- is' klar. Bastler schrieb: > E Scooter mit > selbstlöschendem Code um es dem Sachverständigen vom Amt nicht allzu > leicht zu machen, das Teil nach dem Einkassieren zu analysieren,
Mawin schrieb: > uino und uino IDE sind die perfekte Gummizelle. > > Da kann der Geist noch so toben, es wird nichts vernünftiges > herauskommen. Für dich! Der du kein C++ kannst und auch nimmer lernen möchtest. Der du keine Ahnung davon hast, wie man mit/in dieser IDE reine C und ASM Programme schreibt. Somit bleibt von deiner Behauptung nicht viel übrig. Außer, dass der Dunning-Kruger Effekt dort "leuchtet". Bastler schrieb: > Genau das habe ich beim Arduino befürchtet. Was? --- Ob Arduino der ideale Startpunkt ist, wage ich nicht zu behaupten. Aber es ist ein Startpunkt. Viele Alternative Wege es gibt. Es ist wohl eher der eigene Kopf, welcher die Grenzmauern aufstellt.
Arduino Fanboy D. schrieb: > Ob Arduino der ideale Startpunkt ist, wage ich nicht zu behaupten. In meinen Augen sicher nicht. "Bastler" sollte sich zunächst einmal in einer freundlicheren Umgebung wie PC-Programmierung mit einer schönen IDE als Hängematte ausprobieren. > Aber es ist ein Startpunkt. Der Startpunkt kann trial-n-error sein, das geht auf dem PC viel leichter. Danach sollte man zu guten Büchern (ja, auch 2019 noch) greifen.
Arduino Fanboy D. schrieb: > Ob Arduino der ideale Startpunkt ist, wage ich nicht zu behaupten. > Aber es ist ein Startpunkt. der ist nicht besser oder schlechter als ein PC1500, auch da kann man sofort mit frei zugänglichen Programmen anfangen. Man kann zwar schwerer LEDs blinken lassen, aber auf dem Display einzelne Punkte und Sonderzeichen. Beschreibungen, ROM Listing, Assembler, Disassambler, Basic findet man alles heute im Netz. Ich habe sogar die Portstecker heute noch bestellen können, damit steht einem auch Hardware zur Verfügung.
:
Bearbeitet durch User
ich denke auch, wenn er µc programmieren willst, kannst Du auch gleich damit anfangen. Es ist weder schwerer noch sonst irgendwie nachteilig, dafür ist aber die Motivation und das Feedback deutlich größer. Ich denke ein guter alter Atmega32 ist für den Anfang super Sehr einfach ´m unendlich viel Lektüre und Libraries in Pascal, basic C etc programmierbar. Wenn Du aber so große Schwierigkeiten hast nimm Mikroe Mikroe Pascal für AVR. Erst die kostenlose Testversion, und spter kannst Du dann imer noch die bezahlbare Kaufversion erwerben. Du hast auch gleich zig fertige Hilfen im Programm und siehst direkt auf der Mirkoe Seite einen haufen Displays etc die gleich von der Mikroe Software ab Werk unterstützt wird(und noch viele mehr) Im Gegensatz zu den kostenlosen C Tools die gerade an Anfang nur zu Frust führen, was schon damit beginnt, das es nur wenige wirklich Out of the Box Lösungen gibt, immer muss irgendwas gefrickelt werden, wenn Du da eh schon Probleme hast, lass C erstmal bleiben und konzentrier die auch Pascal, selbst viele gute Programmierer nutzen FreePascal, sogar sehr oft unter Linux, was für viele völlig unerwartet sein dürfte;-) Da es unter Linux kein MS Visual C++ gibt, verwenden sehr viele Lazarus Pascal
kein gast schrieb: > Im Gegensatz zu den kostenlosen C Tools die gerade an Anfang nur zu > Frust führen, was schon damit beginnt, das es nur wenige wirklich Out of > the Box Lösungen gibt, immer muss irgendwas gefrickelt werden Die Arduino IDE, Das Atmel Studio und der GCC einzeln funktionieren out of the box. Ebenso avrdude. Welche Tools meinst du? Download-Vorschläge mit Hinweisen: http://stefanfrings.de/avr_tools/index.html > lass C erstmal bleiben und konzentrier die auch Pascal, > selbst viele gute Programmierer nutzen FreePascal Mir persönlich wäre wichtig, dass ich mit der gleichen Programmiersprache auch PC und ARM Controller programmieren kann. Unterstützt FreePascal STM32?
kein gast schrieb: > Im Gegensatz zu den kostenlosen C Tools die gerade an Anfang nur zu > Frust führen, was schon damit beginnt, das es nur wenige wirklich Out of > the Box Lösungen gibt, immer muss irgendwas gefrickelt werden So ein Quatsch! QtCreator, Studio Code, ..., make, cmake, ninja, ... gcc, clang, g++, clang++, gdb, avrdude, picocom, ... alles funktioniert out-of-the-box.
Wilhelm M. schrieb: > kein gast schrieb: >> wieso muss es denn unbedingt C sein? > > Muss es nicht und sollte es m.E. auch nicht. > > Wichtig ist: kein µC! Hast Du den Eröffnungspost gelesen? Offensichtlich nicht. Erkläre mir doch mal wie Du Mikrokontroller ohne µC programmieren willst. Der TO schrieb: Bastler schrieb: > Ich versuche mich schon seit längerer Zeit daran, das Programmieren von > Microkontrollern in C/C++ zu lernen,.... Er möchte das Programmieren eines Controllers erlernen. Das lernt man besten am realen Objekt, wo man direkt sieht was eine Änderung an der Software bei der Hardware bewirkt. Dafür nimmt man halt ein Evalboard wo man sich austoben kann. Die Lernbetty hat den Vorteil das es hierfür ein funktionsfähige FW gibt, so das da frei weg probieren kann. Wenn es in die Hose geht ist es auch nicht weiter schlimm, da man ja die funktionierende Version wieder aufspielen kann. Wenn er die Programmierung von Mikrokontrollern lernen möchte, wird wohl kein Weg an C/C++ vorbei führen. Basecom (Basic) wäre noch eine Alternative, aber das ist halt nicht kostenlos. Allein seine Einschränkung Mikrokontroller programmieren zu wollen, schränkt die möglichen Programmiersprachen schon ein.
Zeno schrieb: > Er möchte das Programmieren eines Controllers erlernen. Nein. Er hat offensichtliche keine Ahnung von HW und noch weniger vom Programmieren. Er möchte zwar µC programmieren, aber das wird ihm so nicht gelingen. Deswegen ist mein Rat, erst ein bisschen Programmieren zu lernen, und dass geht nun mit dem PC wirklich leichter, wenn man es denn wirklich vertieft lernen will, und nicht irgendetwas zusammenklicken.
Wilhelm M. schrieb: > Deswegen ist mein Rat, erst ein bisschen Programmieren zu lernen, und > dass geht nun mit dem PC wirklich leichter, wenn man es denn wirklich > vertieft lernen will, und nicht irgendetwas zusammenklicken. Vergiss es! Wer wirklich zu blöd ist ein LED-Blink Beispiel am ATmega/Arduino zum Laufen zu bringen, der schaft auch kein Hello-World auf dem PC! Da es soviel Dummheit wohl nicht geben kann, ist der ganze Thread hier ein Trollversuch!
Wilhelm M. schrieb: > erst ein bisschen Programmieren zu lernen, und > dass geht nun mit dem PC wirklich leichter, wenn man es denn wirklich > vertieft lernen will, und nicht irgendetwas zusammenklicken. Ich glaube das ist nicht das Ziel. So wie ich das verstanden habe, möchte er eher vorhandene Geräte hacken/modifizieren. Für sowas ist Insider Spezialwissen viel wichtiger, als allgemeine Grundlagen. Wobei es ohne Grundlagen natürlich gar nicht geht.
Arduino Fanboy D. schrieb: > So wie ich das verstanden habe, möchte er eher vorhandene Geräte > hacken/modifizieren. Und zwar immer noch seinen Lime Roller, damit er 5km/h schneller fährt. Ehrlich gesagt bräuchte ich eine wesentlich stärkere Motivation, das programmieren zu erlernen.
Stefan F. schrieb: > Und zwar immer noch seinen Lime Roller, damit er 5km/h schneller fährt. Dann würde ich einfach größere Räder montieren - ist wahrscheinlich einfacher für ihn.
Wilhelm M. schrieb: > Dann würde ich einfach größere Räder montieren Da reicht sogar eins für hinten. https://www.ebay.de/itm/WD-Tools-Schubkarrenrad-Vollgummi-Ersatzrad-Gartenkarre-PU-Reifen-4-80-4-00-8/323950595373?hash=item4b6cf5cd2d:g:jnIAAOSw9J9dy~D3
Stefan F. schrieb: > Unterstützt FreePascal STM32? Jep, tut es , aber dennoch nutze ich dafür mikroe und am CP Freepascal
Zeno schrieb: > lernen möchte, wird wohl > kein Weg an C/C++ vorbei führen. Basecom (Basic) wäre noch eine > Alternative, Und eben Pascal, es gibt auch noch etliche andere.aber vor Basic würde ich Pascal wählen, damals war Bascom nicht her Hit, mag sein das es besser geworden ist, aber mit Pascal hat man eine bessere Grundlage. Und nein, C/C++ braucht man keinesfalls zwangsläufig das ist Unsinn. Ich programmiere wie viel andere seit Ewigkeiten auch kommerziell und zwar nur in Pascal. Kenne aber kein(sicher gibt es welche) kommerzielles µc Projekt in Bascom
Matze schrieb: > Da es soviel Dummheit wohl nicht geben kann, ist der ganze Thread hier > ein Trollversuch! Viellelicht sind nicht alle solche Helden wie Du? Spare Dir doch einfach so völlig Sinnlose Kommentare und geh spielen
michael_ schrieb: > Bastler schrieb: >> Das >> Problem ist leider, seit China alles klaut/kopiert/stiehlt, > > Nö, du willst deren Soft für umsonst. Wieso? Das Gerät, von dem die Software ein Teil ist, hat er ja dann gekauft. Das einzige, was er will, ist die Möglichkeit, diese Software zu verändern. Frank L. schrieb: > warum nicht einfach ein fertiges DIY Projekt nehmen und aufbauen? Eins > wo Hard- und Software frei verfügbar sind. Das halte ich auch für am zielführendsten. Bastler schrieb: >> Spülmaschine elektrisch ansteuern muß, und wie man das mit einem >> Mikrocontroller machen könnte, wenn dir jemand anderes das gewünschte >> Programm schreiben wollte? >> Na bitte! > > Ja weiß ich soweit. Du stellst dir die Funktion einer modernen Spülmaschine etwas einfach vor. Dir ist schon klar, dass an sowas ganze Entwicklerteams lange arbeiten? Das ist, als ob du sagst: Ja klar kann ich ein Auto bauen. Brauche nur vier Räder, ein Lenkrad, Pedale und einen Motor zusammenschrauben und fertig. Peter D. schrieb: > Bastler schrieb: >> Assembler ist die grauenhafteste Programmiersprache >> der Welt wenn du große Programme in absehbarer Zeit schreiben willst > > Assembler ist keine Programmiersprache, sondern nur ein 1:1 Übersetzer > von Mnemonics in Opcode. Natürlich ist es eine Programmiersprache. Nur eben keine Hochsprache. Arduino Fanboy D. schrieb: > Wilhelm M. schrieb: >> erst ein bisschen Programmieren zu lernen, und >> dass geht nun mit dem PC wirklich leichter, wenn man es denn wirklich >> vertieft lernen will, und nicht irgendetwas zusammenklicken. > > Ich glaube das ist nicht das Ziel. > > So wie ich das verstanden habe, möchte er eher vorhandene Geräte > hacken/modifizieren. Mein Verständnis war, dass er µC-Entwicklung lernen und dazu versuchen will, bestehende Geräte softwareseitig zu erweitern und modifizieren statt gleich selbst was neues zu bauen. Und programmieren lernen wäre erstmal auf dem PC einfacher, nach dem Prinzip "teile und herrsche". Dann muss er sich anfangs nicht mit der ganzen HW-Thematik und Interrupts und passenden Einstellung von I/O-Registern und so Zeug beschäftigen. Die kommen dann, wenn er die Sprache erstmal einigermaßen beherrscht.
kein gast schrieb: > Und eben Pascal, es gibt auch noch etliche andere.aber vor Basic würde > ich Pascal wählen, damals war Bascom nicht her Hit, mag sein das es > besser geworden ist, aber mit Pascal hat man eine bessere Grundlage. > > Und nein, C/C++ braucht man keinesfalls zwangsläufig das ist Unsinn. Ich > programmiere wie viel andere seit Ewigkeiten auch kommerziell und zwar > nur in Pascal. Ich finde ja Pascal auch klasse, aber das alleine reicht eben nicht. Ja es gibt auch Pascal für Mikrocontroller, die Frage ist halt ob der gewünschte Chip vom Compiler unterstützt wird. Ich benutze recht gern MSP430 und ich meine da gibt es keinen Pascalcompiler. Wenn man das Rad nicht noch mal erfinden will und auf fertige Bibliotheken zurück greifen möchte sieht es mit Pascal leider auch sehr dünne aus. Bibliotheken von Chipherstellern sind fast ausschließlich in C. Gefällt mir persönlich halt auch nicht so, aber hier muß man sich den Gegebenheiten beugen. Mehr Pascal wäre mir persönlich auch lieber, aber der Trendzug fährt aber eher in die andere Richtung.
kein gast schrieb: > Und nein, C/C++ braucht man keinesfalls zwangsläufig das ist Unsinn. Ich > programmiere wie viel andere seit Ewigkeiten auch kommerziell und zwar > nur in Pascal. Naja, Pascal (bzw. dessen Compiler) sind halt nicht in gleicher Breite verfübgar wie C-Compiler [zu Performance, Portabilität etc. zwischen Pascal und C Umgebungen kann ich nix sagen] "Gedanken strukturieren" kann/muss man in jeder prozeduralen Programmiersprache, sei es in Pascal oder C. die sprachlichen Besonderheiten kann man dabei weitgehend ausgleichen bzw. Anfangs eher weniger berücksichtigen. Meine C-Programme sehen meistens auch recht "Pascal-artig" aus. Wichtiger/anstrengender finde ich hingegen den Schritt von prozeduraler zur objektorientierter Sprache (C++, Java)
:
Bearbeitet durch User
Bastler schrieb: > Wenn einer ein Gerät kennt, das nciht allzu komplex ist, bei dem die > Software Open source verfügbar ist, Falls den noch niemand erwähnt hat: Transistor Tester Viel Doku und Software vorhanden.
> MaWin (Gast) > Datum: 12.11.2019 22:54 > Datum: 13.11.2019 00:06 Der Psychopath, der seinen Namen nicht kennt und stattdessen MaWin ins Namensfeld schreibt, dreht mal wieder völlig am Rad. Also Leute, der Müll kam nicht von mir.
Falls noch interesse besteht, hier https://github.com/ArminJo/Arduino-Lessons-for-School gibt es einen Programmierkurs, den ich mit meinen Schülern mache, um denen das Programmieren von Mikroprozessoren nahezubringen. Die Beispiele sind ja quasi einfache "Geräte" :-)
Hi Und, ist unser Bastler noch dabei? Oder hört er gerade von Kollegen, das Töpfern bald wieder In ist? Gruß oldmax
MaWin schrieb: > Also Leute, der Müll kam nicht von mir. Das interessiert uns nicht, solange du hier sinnlos jammerst während du verweigerst, dich anzumelden.
Ein einfaches PIC Developmentboard + PICKit oder ein Arduinoboard das man dann mit Atmel Studio in C flashen kann.
Wer programmieren kann, den interessiert doch die Programmiersprache nicht. Wer programmieren kann, der kann sich in jeder Notation ausdrücken. "Diese P... ist besser als jene ..." - ich finde das Gejammere so öde, es zeugt nur vom Unwillen, sich mit Neuem (für sich selbst) zu beschäftigen. Klar, es gibt persönliche Vorlieben, aber die sind nicht allgemeingültig. Blackbird
:
Bearbeitet durch User
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.