Forum: Mikrocontroller und Digitale Elektronik Quellcode für einfaches Gerät Programmieren lernen


von Bastler (Gast)


Lesenswert?

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...

von Oliver S. (oliverso)


Lesenswert?

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

von Ernst (Gast)


Lesenswert?

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.

von pegel (Gast)


Lesenswert?

Genau für so etwas haben verschiedene Hersteller ihre Discovery Boards 
erfunden.

von H. N. (harmonisierternorman)


Lesenswert?

Wie wäre es erstmal mit einem Arduino? Da gibts unzählig Zubehör und 
Tutorials.

von michael_ (Gast)


Lesenswert?

Bastler schrieb:
> Das
> Problem ist leider, seit China alles klaut/kopiert/stiehlt,

Nö, du willst deren Soft für umsonst.

von MaWin (Gast)


Lesenswert?

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.

von Bastler (Gast)


Lesenswert?

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.

von Frank L. (hermastersvoice)


Lesenswert?

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.

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

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
von michael_ (Gast)


Lesenswert?

Es fehlt grauer Gehirnschmalz.

von Tom (Gast)


Lesenswert?

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.

von Bastler (Gast)


Lesenswert?

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...

von Mawin (Gast)


Lesenswert?

uino und uino IDE sind die perfekte Gummizelle.

Da kann der Geist noch so toben, es wird nichts vernünftiges 
herauskommen.

von michael_ (Gast)


Lesenswert?

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.

von Hp M. (nachtmix)


Lesenswert?

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

von Bastler (Gast)


Lesenswert?

Genau das habe ich beim Arduino befürchtet.

von Bastler (Gast)


Lesenswert?

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)

von Hp M. (nachtmix)


Lesenswert?

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.

von Wilhelm M. (wimalopaan)


Lesenswert?

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.

von MWS (Gast)


Lesenswert?

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.

von Peter D. (peda)


Lesenswert?

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.

von Oliver S. (oliverso)


Lesenswert?

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

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

@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
von Peter D. (peda)


Lesenswert?

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
von sdgfaavlhldkf (Gast)


Lesenswert?

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

von sdgfaavlhldkf (Gast)


Lesenswert?

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

von Michael B. (laberkopp)


Lesenswert?

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
von Theo (Gast)


Lesenswert?

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

von Hugo H. (hugohurtig1)


Lesenswert?

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?

von Hugo H. (hugohurtig1)


Lesenswert?

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.

von Wilhelm M. (wimalopaan)


Lesenswert?

Ein gutes Buch tut es auch:

http://elementsofprogramming.com/

von Theo (Gast)


Lesenswert?

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

von Wilhelm M. (wimalopaan)


Lesenswert?

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.

von Hugo H. (hugohurtig1)


Lesenswert?

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
von MeierKurt (Gast)


Lesenswert?

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...

von Stefan F. (Gast)


Lesenswert?

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!

von MeierKurt (Gast)


Lesenswert?

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.

von Zeno (Gast)


Lesenswert?

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).

von Hugo H. (hugohurtig1)


Lesenswert?

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 :-)

von Wilhelm M. (wimalopaan)


Lesenswert?

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.

von Stefan F. (Gast)


Lesenswert?

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.

von Joachim B. (jar)


Lesenswert?

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.

von Hugo H. (hugohurtig1)


Lesenswert?

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
von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

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. :-(

von kein gast (Gast)


Lesenswert?

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:-)

von Wilhelm M. (wimalopaan)


Lesenswert?

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.

von Dr.Who (Gast)


Lesenswert?

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.

von Thomas E. (thomase)


Lesenswert?

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"

von Thomas (Gast)


Lesenswert?

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.

von Roland F. (rhf)


Lesenswert?

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.

von MeierKurt (Gast)


Lesenswert?

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.

von MeierKurt (Gast)


Lesenswert?

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.

von Michael W. (Gast)


Lesenswert?

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,

von Einer K. (Gast)


Lesenswert?

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.

von Wilhelm M. (wimalopaan)


Lesenswert?

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.

von Joachim B. (jar)


Lesenswert?

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
von kein gast (Gast)


Lesenswert?

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

von Stefan F. (Gast)


Lesenswert?

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?

von Wilhelm M. (wimalopaan)


Lesenswert?

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.

von Zeno (Gast)


Lesenswert?

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.

von Wilhelm M. (wimalopaan)


Lesenswert?

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.

von Matze (Gast)


Lesenswert?

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!

von Einer K. (Gast)


Lesenswert?

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.

von Stefan F. (Gast)


Lesenswert?

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.

von Wilhelm M. (wimalopaan)


Lesenswert?

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.

von Thomas E. (thomase)


Lesenswert?


von kein gast (Gast)


Lesenswert?

Stefan F. schrieb:
> Unterstützt FreePascal STM32?

Jep, tut es , aber dennoch nutze ich dafür mikroe und am CP Freepascal

von kein gast (Gast)


Lesenswert?

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

von kein gast (Gast)


Lesenswert?

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

von Rolf M. (rmagnus)


Lesenswert?

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.

von Zeno (Gast)


Lesenswert?

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.

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

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
von pegel (Gast)


Lesenswert?

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.

von MaWin (Gast)


Lesenswert?

> 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.

von Armin J. (arminj)


Lesenswert?

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" :-)

von Martin V. (oldmax)


Lesenswert?

Hi
Und, ist unser Bastler noch dabei? Oder hört er gerade von Kollegen, das 
Töpfern bald wieder In ist?
Gruß oldmax

von Stefan F. (Gast)


Lesenswert?

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.

von DerµC (Gast)


Lesenswert?

Ein einfaches PIC Developmentboard + PICKit oder ein Arduinoboard das 
man dann mit Atmel Studio in C flashen kann.

von Lothar J. (black-bird)


Lesenswert?

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
Noch kein Account? Hier anmelden.