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.
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?
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...
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)
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?
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%.
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.
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.
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.
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:> 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 ...
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.
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.
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)
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" :-)
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.
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