Forum: Mikrocontroller und Digitale Elektronik Mikrocontroller lernen als E-Technik-Student: Assembler bzw 8 Bit noch sinnvoll?


von 8-Bit Wurstcontroller (Gast)


Lesenswert?

Moin zusammen!

Ich bin im zweiten Semester E-Technik und will jetzt privat ein bisschen 
mit Mikrocontrollern rumexperimentieren.

Kurz und knackig: "lohnt" es sich noch, sich mit Assembler, 8-Bit MCU, 
etc auseinanderzusetzen? Oder sollte man sich lieber auf die 
Hochsprachen  fokussieren und direkt einen 32-Bit nehmen, vor allem was 
die Berufstätigkeit danach in dem Feld Elektronik-/Hardwareentwicklung 
angeht?

Klar machen die 8-Bitter aktuell noch einen Riesen Marktanteil aus, aber 
wie siehts mit Neuentwicklungen (vor allem im Automotive) aus?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

8-Bit Wurstcontroller schrieb:
> aber wie siehts mit Neuentwicklungen (vor allem im Automotive) aus?
Was im Auto willst du denn mit dem uC steuern?

> Kurz und knackig: "lohnt" es sich noch, sich mit Assembler, 8-Bit MCU,
> etc auseinanderzusetzen?
Kurz und knackig: wenn du vorher noch nichts mit solchen Dingern gemacht 
hast, dann ist ein 8-Bit Controller mit 3 Timern und serieller Schnitte 
eben viel, viel einfacher zu begreifen als einer mit 19 Timern mit je 13 
Modi und Ethernet-Schnitte.

Die Frage ist nun, ob due die µC tatsächlich verstanden haben musst oder 
ob es reicht, nur Hochsprachenskripte zu schreiben und dich über die 
mangelhafte Performance aufzuregen.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Kommt mir vor, als ob ein Jagdhund in seiner Ausbildung fragt, ob er 
auch hinter Kaninchen und Ratzen herjagen soll, oder sich doch eher 
gleich nur auf Elefanten und Loewen spezialisieren sollte.

scnr,
WK

von Olaf (Gast)


Lesenswert?

> Kurz und knackig: "lohnt" es sich noch, sich mit Assembler, 8-Bit MCU,
> etc auseinanderzusetzen?

Ein bisschen Basisverstaendnis von Assembler ist sinnvoll weil man dann 
Probleme in Hochsprachen im Embeddedbereich besser verstehen kann. Du 
wirst aber sehr wahrscheinlich niemals mehr in Assembler ernsthaft 
programmieren.

> Oder sollte man sich lieber auf die Hochsprachen  fokussieren

Im Embedded Bereich wird zu >90% in C programmiert. Selbst in den 
wenigen Ausnahmefaellen wo das anders ist gibt es sicher noch jede Menge 
Altlasten in Firmen in C die man auch verstehen/warten muss. Ohne gute C 
Kenntnisse brauchst du dich nirgends sehen zu lassen.

> Hochsprachen  fokussieren und direkt einen 32-Bit nehmen, vor allem was
> die Berufstätigkeit danach in dem Feld Elektronik-/Hardwareentwicklung
> angeht?

Die Bitbreite eines Controllers ist nahezu vollkommen irrelevant weil 
sie vor dir vom Compiler versteckt wird. Manache Bastler haben aber vor 
32bit Angst weil die Controller dann mehr Peripherie eingebaut haben. Da 
ist dann ein Datenblatt halt 1000-2000Seiten und nicht mehr 100-200. 
Aber das ist Quatsch weil man sich ja immer nur auf die 10% konzentriert 
die man gerade braucht.

> Klar machen die 8-Bitter aktuell noch einen Riesen Marktanteil aus, aber
> wie siehts mit Neuentwicklungen (vor allem im Automotive) aus?

Alleine an der Frage sehe ich schon wieviel Grundlagen dir Fehlen. :-)
Selbst ein einfacher Schalter in deinem Auto kann schon ein 
Multitasking-BS mit Linbus haben, nicht weil es unbedingt notwendig ist 
sondern weil der Entwickler das gewohnt ist und in 200 anderen Projekten 
schon genauso genutzt hat und weil die Konfiguration davon schon aus dem 
Datenmodell fuer das Projekt irgendwie rausgefallen ist.

Olaf

von Armleuchteranzünder (Gast)


Lesenswert?

8-Bit Wurstcontroller schrieb:

> Kurz und knackig: "lohnt" es sich noch, sich mit Assembler, 8-Bit MCU,
> etc auseinanderzusetzen?
> die Berufstätigkeit danach in dem Feld Elektronik-/Hardwareentwicklung
> angeht?

Grad als Hardwareentwickler schult die assembler-level Programmierung 
ungemein. Weilt auf der ebene lernt man noch die Settings (bspw. 
baudrate, irq polarity) auf die man beim Entwickeln/Messen von Hardware 
achten muß.
Und wie ein µC-Datenblatt, von denen man als Hardwareentwickler viel zu 
lesenhat) zu verstehen ist. Hochsprachler kennen meist nur Lib-templates 
und Programmier-Turoeials ...

Ein Hochsprachen-Programmierer mault nur rum, das er einen 
"nichtsagenden Error-Code als return-value" bekommt, den er auch mit 
extensiven function-overloading nicht wegbekommt ... .

Aber wenn für Dich 8bit eh nur berufsbedingte Anstrengung und kein Spass 
bedeutet, dann lass es bleiben. Studier lieber auf Beamter.

von Peter Pan (Gast)


Lesenswert?

Lothar M. schrieb:
> Die Frage ist nun, ob due die µC tatsächlich verstanden haben musst oder
> ob es reicht, nur Hochsprachenskripte zu schreiben und dich über die
> mangelhafte Performance aufzuregen.

Muss man jetzt schon Scripting Sprachen heranziehen um sein Assembler 
Kram rechtfertigen zu können?

Mit C/C++ Anwendungen welche durch den Compiler optimiert wurden bekommt 
man eigentlich immer Code mit besserer Performance als ein Mensch ihn in 
Assembler schreiben könnte.

Bei einer Portierung wünsche ich dir viel Spaß.

Und ihr müsst ja jeden Pfennig zweimal umdrehen, besser bei 1000 Stück 
im Jahr 30€ sparen und dann mehrere Mannmonate in die Optimierung 
investieren...

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Olaf schrieb:
> Manache Bastler haben aber vor 32bit Angst weil die Controller dann mehr
> Peripherie eingebaut haben. Da ist dann ein Datenblatt halt
> 1000-2000Seiten und nicht mehr 100-200. Aber das ist Quatsch weil man
> sich ja immer nur auf die 10% konzentriert die man gerade braucht.
Nein, man muss eben z.B. um bei modernen 32-Bittern einen Portpin für 
die blinkende LED ansteuern zu können ggf. erst mal schauen, dass die 
entsprechende Spannung für den Port eingeschaltet ist, dann dass ggfs. 
der Takt für den Port eingeschaltet ist, dann ggfs. noch eine 
alternative Funktion von dem Pin weggebogen werden muss, und dann kann 
das Ganze schon mal länger dauern, als nur 8-Bit-mäßig "2 
Registerzugriffe und die LED blinkt!"

von ASM = Lack saufen (Gast)


Lesenswert?

Fang direkt mit nem Schnelle ARM-Cortex mit FPU und FreeRTOS an.

Das Mohrsche-Gesetzt gilt immer noch niemand setzt freiwillig, wenns 
nicht um die letzten Cent in 100k Stückzahlen geht, 8 Bit uCs ein diese 
Zeiten sind einfach vorbei.

Lern lieber wie du den uC vernünftig (mit Hardwaredebugger, 
SWO-Streaming) in C/C++ programmierst und debuggst.

Statt deine Zeit mit Relikten der Vergangenheit zu verschwenden.

von 8-Bit Wurstcontroller (Gast)


Lesenswert?

Olaf schrieb:
> Alleine an der Frage sehe ich schon wieviel Grundlagen dir Fehlen. :-)

Natürlich, ich bin auch ein Student im zweiten Semester der sich in die 
Thematik einarbeiten will, was erwartest du? :-)

Danke für die teilweise sinnvollen Beiträge! Ich nehm mal mit, dass die 
Grundlagen doch interessant sind, aber Assembler definitiv zum alten 
Eisen gehört. Also doch lieber C.

Der Vergleich mit 32 und 8 Bit war hier eher auf die Komplexität 
bezogen, mir ist natürlich bewusst, dass die Bits nicht alles aussagen 
;)

Was Baud, Register, Flags, ZweierKomplement, etc sind weiß ich schon, ob 
man das hier als Grundlagen zählen lässt, ist natürlich die andere 
Frage.


Armleuchteranzünder schrieb:
> Aber wenn für Dich 8bit eh nur berufsbedingte Anstrengung und kein Spass
> bedeutet, dann lass es bleiben. Studier lieber auf Beamter.

Ich hoffe nur dass ich in ein paar Jahren dann nicht auch so ein 
unleidlicher Griesgram werde und Anfänger in Foren anpampe :D

von 8-Bit Wurstcontroller (Gast)


Lesenswert?

ASM = Lack saufen schrieb:
> Fang direkt mit nem Schnelle ARM-Cortex mit FPU und FreeRTOS an.
>
> Das Mohrsche-Gesetzt gilt immer noch niemand setzt freiwillig, wenns
> nicht um die letzten Cent in 100k Stückzahlen geht, 8 Bit uCs ein diese
> Zeiten sind einfach vorbei.
>
> Lern lieber wie du den uC vernünftig (mit Hardwaredebugger,
> SWO-Streaming) in C/C++ programmierst und debuggst.
>
> Statt deine Zeit mit Relikten der Vergangenheit zu verschwenden.

Danke dir für die Einschätzung, gut auf den Punkt gebracht!

von ASM = Lack saufen (Gast)


Lesenswert?

Lothar M. schrieb:
> Nein, man muss eben z.B. um bei modernen 32-Bittern einen Portpin für
> die blinkende LED ansteuern zu können ggf. erst mal schauen, dass die
> entsprechende Spannung für den Port eingeschaltet ist, dann dass ggfs.
> der Takt für den Port eingeschaltet ist, dann ggfs. noch eine
> alternative Funktion von dem Pin weggebogen werden muss, und dann kann
> das Ganze schon mal länger dauern, als nur 8-Bit-mäßig "2
> Registerzugriffe und die LED blinkt!"

Man muss im Hardware Configuration Tool den PIN auf GPIO out stellen.
Den init code generieren.
und dann ne Funktion mit der Signatur set_GPIO_pin(*HAL_GPIO_port Port,* 
HAL_GPIO_pin pin,state) aufrufen.

und das alles in ne FreeRTOS loop mit osWait(uint32_t waitTime)

Das sind 5 oder 6 gut verständliche Codezeilen statt unporttierbarem 
Register-gemampel.

von Dyson (Gast)


Lesenswert?

8-Bit-Controller sind die weltweit mit Abstand am meisten eingesetzten 
Controller. Man muss nur wissen, wo sie drin sind.

Heute schon am Geldautomaten gewesen?

von Gerald K. (geku)


Lesenswert?

Eigentlich sollte man als Informatik Student wissen was hinter einen MC 
System steht.

Angefangen von der Hardwarearchitektur über Microcode, Assembler bis zum 
Compiler.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Peter Pan schrieb:
> Muss man jetzt schon Scripting Sprachen heranziehen
Ja nun, was ist Python?
> um sein Assembler Kram rechtfertigen zu können?
Ich sage nicht, dass man den Webbrowser in Assembler programmieren muss. 
Ich sage nur, dass es für das Verständnis, was man da überhaupt macht, 
hilfreich ist, wenn man Assembler grundlegend verstanden hat.

So wie jener Bachelorand, der auf dem STM32 in C programmierte und 
meinte, jede Programmzeile wird in 1 Maschinentakt ausgeführt. Da war 
dann ein kurzer Ausflug ins Assemblerlisting nötig.

Ich habe mit dem Assemblerlisting auch schon einige Compilerfehler oder 
"Compilerfeatures" gefunden.

> um sein Assembler Kram rechtfertigen zu können?
Du sagst also im Umkehrschluss, dass in der ganzen Firma keiner sein 
muss, der wenigstens eine grundlegende Ahnung vom Assembler hat?

von ASM = Lack saufen (Gast)


Lesenswert?

Ich persönlich habe übrigens die Funktion des STM32 den ich verwende zum 
Großteil durch "step by step Debugging" der HAL Routinen verstanden.

von Olaf (Gast)


Lesenswert?

> Heute schon am Geldautomaten gewesen?

Hehe...die sind zwar so langsam als wenn da ein Z80 mit 1Mhz drin 
laeuft, aber ich glaube doch das da ein fetter Rechner mit OS/2 drauf 
laeuft. Oder sind die schon moderner? :-D

> nicht um die letzten Cent in 100k Stückzahlen geht, 8 Bit uCs ein diese
> Zeiten sind einfach vorbei.

Selbst dann. Wenn ihr wuesstet was ein STM32 in solchen Stueckzahlen 
kostet dann wuerdet ihr alle weinen. .-)
Und die Entscheidung was fuer ein Controller in einem bestimmten Projekt 
sitzt kann manchmal die absurdesten Hintergruende haben.


> Natürlich, ich bin auch ein Student im zweiten Semester der sich in die
> Thematik einarbeiten will, was erwartest du? :-)

Wenn ich dir einen Tip geben darf, achte darauf einen Controller zu 
verwenden der eine gute fuer dich akzeptable Dokumentation bietet und 
das du einen guten Debugger hast. Letzeres erhoeht dein Lerntempo 
gegenueber den alten Knackern hier um den Faktor 10. Deshalb ist z.B ein 
STM32, wo du ein Demoboard fuer 10-20Euro kaufen kannst das du auf JLINK 
umflashen kannst eine gute Wahl.
Aber gerade fuer einen Anfaenger ist die Qualitaet der Dokumentation 
wirklich alles!

Olaf

Beitrag #7199494 wurde von einem Moderator gelöscht.
von ASM = Lack saufen (Gast)


Lesenswert?

Olaf schrieb:
> Aber gerade fuer einen Anfaenger ist die Qualitaet der Dokumentation
> wirklich alles!

das wird sich auch wenn man kein Anfänger mehr ist nie ändern, hat bei 
mir etwas gedauert bis ich das verinnerlicht hatte.

Für den STM32 kann ich dieses Buch wirklich nur wärmstens empfehlen :
https://leanpub.com/mastering-stm32-2nd

die 29.99€ kann man dem Autor schon mal gönnen.

und es gibt ein Git-Repo mit dierekt ausführbarem Code der auch im Buch 
erklärt wird.

Beitrag #7199505 wurde von einem Moderator gelöscht.
von Wolfgang (Gast)


Lesenswert?

8-Bit Wurstcontroller schrieb:
> Kurz und knackig: "lohnt" es sich noch, sich mit Assembler, 8-Bit MCU,
> etc auseinanderzusetzen?

In der Schule wird auch nicht hinterfragt, ob man sich noch mit 
Grundrechenarten auseinandersetzen soll, obwohl die doch von 
Taschenrechnern, Taschenrechner-Apps, Tabellenkalkulationsprogrammen 
genauso gut erledigt werden können.

von Peter Pan (Gast)


Lesenswert?

Lothar M. schrieb:
>> um sein Assembler Kram rechtfertigen zu können?
> Du sagst also im Umkehrschluss, dass in der ganzen Firma keiner sein
> muss, der wenigstens eine grundlegende Ahnung vom Assembler hat?

Du kennst von JEDEM Prozessor auf der Welt den kompletten Assembler 
Befehlssatz inklusive Seiteneffekten Registern usw.?

Das ist ja stark!

Wenn du wirklich eine Assembler Routine benötigst, dann wird diese 
entsprechend vom Hersteller geliefert oder man muss eh das Datenblatt 
studieren. Jemand der vor 10 Jahren im Studium 10h in Assembler 
programmiert hat schaut da genauso in die Doku bezüglich Syntax und 
Befehlssatz, es gibt nämlich unzählige Prozessoren. Die 10h im Studium 
machen da keinen Unterschied...

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

8-Bit Wurstcontroller schrieb:
> Ich nehm mal mit, dass die Grundlagen doch interessant sind, aber
> Assembler definitiv zum alten Eisen gehört. Also doch lieber C.
Ich nehm da mal mit, dass die Grundlagen doch interessant sind, aber die 
Addition definitiv zum alten Eisen gehört. Dann doch lieber eine 
Subtraktion des Kehrwerts.

> aber Assembler definitiv zum alten Eisen gehört. Also doch lieber C.
Du hast es nicht kapiert: das sind zwei völlig unterschiedliche Themen. 
Denn aus C wird Assembler, aus Assembler dein Maschinenprogramm.

Und natürlich programmierst du in der höchstmöglichen Sprache, die dein 
Problem lösen kann. Wenn die Sprache eine API bietet, die eine Funktion 
do_all_of_the_work(); hat, und die genau das macht, was du brauchst, 
dann wäre es ungeschickt, wenn du statt dieser Funktion 30000 Zeilen in 
Assembler herunterhackst.

Wenn aber aus unerklärlichen Gründen die Toolchain (gern auch mal nach 
einem Update derselben) zu eigenartigem Verhalten führt, dann ist eben 
der Assemblercode ratzfatz interessant. Oder du suchst nicht nach dem 
Fehler sondern machst es, wie es die anderen Frickler alle machen: mit 
einem "Workaround".

Peter Pan schrieb:
> Du kennst von JEDEM Prozessor auf der Welt den kompletten Assembler
> Befehlssatz inklusive Seiteneffekten Registern usw.?
Wie kommst du in dieses flache Wasser? Wo habe ich so einen Schwachfug 
behauptet?

: Bearbeitet durch Moderator
von Wolfgang (Gast)


Lesenswert?

Peter Pan schrieb:
> Wenn du wirklich eine Assembler Routine benötigst, dann wird diese
> entsprechend vom Hersteller geliefert oder man muss eh das Datenblatt
> studieren.

Es geht darum, den Umgang damit zu lernen. Wenn jemand nur mit HAL und 
sonstigen Abstraktionslayern arbeitet, hat er keine Ahnung mehr davon, 
was unten passiert.

von Peter Pan (Gast)


Lesenswert?

Wolfgang schrieb:
> Peter Pan schrieb:
>> Wenn du wirklich eine Assembler Routine benötigst, dann wird diese
>> entsprechend vom Hersteller geliefert oder man muss eh das Datenblatt
>> studieren.
>
> Es geht darum, den Umgang damit zu lernen. Wenn jemand nur mit HAL und
> sonstigen Abstraktionslayern arbeitet, hat er keine Ahnung mehr davon,
> was unten passiert.

Das hat jemand der das vor 10 Jahren im Studium einmal 30 Minuten 
gemacht hat genauso wenig. Und auch in C/C++ muss ich öfter einmal einen 
Blick in das Datenblatt werfen bezüglich Registern.

Es hält sich halt hartnäckig, dass man unbedingt 30 Minuten im Studium 
Assembler gemacht haben muss da man es sonst nie wieder erlernen könne 
und nichts von µC/SoC verstehen würde, lol.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Peter Pan schrieb:
> Es hält sich halt hartnäckig, dass man unbedingt 30 Minuten im Studium
> Assembler gemacht haben muss da man es sonst nie wieder erlernen könne
> und nichts von µC/SoC verstehen würde, lol.
Es hält sich halt hartnäckig, dass man unbedingt 30 Minuten im Studium
C gemacht haben muss da man es sonst nie wieder erlernen könne
und nichts von µC/SoC verstehen würde, lol.

So gesehen kann man das Studium locker auf 2 Tage (= 32 x 30min) 
reduzieren und den Rest, den man so braucht, hinterher noch lernen.

: Bearbeitet durch Moderator
Beitrag #7199527 wurde von einem Moderator gelöscht.
von DerEgon (Gast)


Lesenswert?

ASM = Lack saufen schrieb:
> Man muss im Hardware Configuration Tool den PIN auf GPIO out stellen.
> Den init code generieren.
> und dann ne Funktion mit der Signatur set_GPIO_pin(*HAL_GPIO_port Port,*
> HAL_GPIO_pin pin,state) aufrufen.

Das ist dann aber Klicki-Bunti. Wenn man noch nicht mal über das 
Grundlagenwissen verfügt, zu verstehen, was das alles anstellt, steht 
man spätestens dann ziemlich blöd da, wenn a) die tolle HAL-Bibliothek 
eine gesuchte Funktionalität nicht bietet oder gar einen Fehler hat oder 
man b) aus irgendwelchen Gründen einen anderen µC mit einer komplett 
anders strukturierten HAL-Bibliothek verwenden soll, oder gar einen, für 
den es so eine Bibliothek (noch) gar nicht gibt.

Von dieser Klicki-Bunti-Ebene her versteht man das, was in den 
vieltausenseitigen Datenblättern beschrieben wird, sowieso nicht, und 
kann unter anderem die Feinheiten, die hier kürzlich in der Diskussion 
"RS485 auf RP2040" besprochen wurden, gar nicht nachvollziehen, weil da 
von böhmischen Dörfern wie irgendwelchen Bits in irgendwelchen Registern 
gesprochen wird.

Beitrag #7199539 wurde von einem Moderator gelöscht.
Beitrag #7199541 wurde von einem Moderator gelöscht.
von Rampapier (Gast)


Lesenswert?

8-Bit Wurstcontroller schrieb:

> Armleuchteranzünder schrieb:
>> Aber wenn für Dich 8bit eh nur berufsbedingte Anstrengung und kein Spass
>> bedeutet, dann lass es bleiben. Studier lieber auf Beamter.
>
> Ich hoffe nur dass ich in ein paar Jahren dann nicht auch so ein
> unleidlicher Griesgram werde und Anfänger in Foren anpampe :D

Auch diese erfüllen ihren Zweck für deine Ausbildung :)

Beitrag #7199564 wurde von einem Moderator gelöscht.
von Lust L. (lust)


Lesenswert?

Genie in Bottle schrieb im Beitrag #7199527:
> Vergiss Assembler.

Manch ein Hochsprachler würde von gewissen Assembler-Basiskenntnissen 
sehr profitieren.

von Wolfgang (Gast)


Lesenswert?

Peter Pan schrieb:
> Das hat jemand der das vor 10 Jahren im Studium einmal 30 Minuten
> gemacht hat genauso wenig.

Kein Widerspruch - gut getan hätten ihm ein paar vertiefende Einblicke 
wohl trotzdem, wenn er sich später HW-nahe mit den Dingen beschäftigt.

von Lust L. (lust)


Lesenswert?

Mikrocontroller mit 8Bit und (deshalb auch) Assembler wirds noch lange 
geben- da spricht selbst und gerade ein blühender 32Bit Markt nicht 
dagegen.

von Guido K. (Firma: Code Mercenaries GmbH) (thebug)


Lesenswert?

Peter Pan schrieb:
> Wenn du wirklich eine Assembler Routine benötigst, dann wird diese
> entsprechend vom Hersteller geliefert oder man muss eh das Datenblatt
> studieren. Jemand der vor 10 Jahren im Studium 10h in Assembler
> programmiert hat schaut da genauso in die Doku bezüglich Syntax und
> Befehlssatz, es gibt nämlich unzählige Prozessoren. Die 10h im Studium
> machen da keinen Unterschied...

Soooo witzig…

Ja, die Libraries vom Hersteller machen ohnehin alles, eigentlich muss 
man gar nichts mehr können.

Oder vielleicht doch. Komischerweise melde ich doch immer wieder Fehler 
in den Libraries an die Hersteller…


Aber zur grundsätzlichen Frage: Ja, es macht auf jeden Fall Sinn 
Assembler zu beherrschen, wenn man mit Microcontrollern arbeitet. Man 
sollte ja die Werkzeuge verstehen, die man einsetzt.

Und ja, es macht Sinn sich dafür erst mal einen 8 Bit Controller zu 
nehmen, wie schon jemand geschrieben hatte sind die übersichtlicher, 
weil weniger komplex. Dann ist der Faktor, dass sie immer noch deutlich 
die Mehrzahl der eingesetzten Controller ausmachen und man lernt eher 
mit den Ressourcen sparsam umzugehen.

Manche Leute verwechseln die Microcontroller mit PCs, wo man einfach 
noch eine Platte, oder einen Speicherriegel rein steckt, wenn es nicht 
mehr reicht. Geht dooferweise bei einem Microcontroller aber nicht. Da 
muss man mit dem auskommen, was da ist und wenn es um Stückzahlen geht, 
dann ist die Frage ob ein Chip für € 10 oder € 0,70 notwendig ist schon 
wichtig.

Microcontroller in Python etc. zu programmieren ist ja ganz witzig, wenn 
man den Weihnachtsbaum blinken lassen möchte, aber wenn irgend etwas 
wichtiges damit gesteuert wird, dann ist es nicht so witzig, wenn der 
Interpreter zwischendrin mal den Speicher aufräumt.

von Guido K. (Firma: Code Mercenaries GmbH) (thebug)


Lesenswert?

Wolfgang schrieb:
> Es geht darum, den Umgang damit zu lernen. Wenn jemand nur mit HAL und
> sonstigen Abstraktionslayern arbeitet, hat er keine Ahnung mehr davon,
> was unten passiert.

…der weiss auch gar nicht was der Controller eigentlich leisten könnte, 
wenn man ihn richtig programmiert, so dass nicht der halbe Speicher 
schon für irgend welche Abstraktionen verballert wird und statt auf ein 
Register direkt zu schreiben drei ineinender verschachtelte Funktionen 
aufgerufen werden, damit die unterste dann diesen Schreibzugriff macht.

: Bearbeitet durch User
von Bastelmensch (Gast)


Lesenswert?

Bin selber seit den 90ern beruflich in der Embedded SW Entwicklung 
unterwegs, und habe daher fast zwangsläufig noch viel mit 8 Bit 
Controllern und Assembler zu tun gehabt. Die sind halt einfacher zu 
verstehen und man kann sich die Grundlagen leichter erarbeiten. 
Ansonsten läuft bei uns fast alles mit C/C++, da wir den Code auf 
verschiedenen eigenentwickelten Plattformen nutzen und dieser darum 
leicht portierbar sein muss. Assembler kommt an wenigen Stellen bei der 
HW-Initialisierung zum Einsatz. Was aber häufiger vorkommt: oft muss man 
den vom Compiler erzeugten Code auch verstehen, z.B. um zu schauen was 
genau eine Exception ausgelöst hat. Da sind dann unsere Kollegen die nur 
Hochsprachen kennen doch recht hilflos.
Fazit: je mehr man sich auskennt um so flexibler ist man im Beruf, auch 
wenn man einige Sachen nur selten benötigt.

von Steve van de Grens (roehrmond)


Lesenswert?

8-Bit Wurstcontroller schrieb:
> "lohnt" es sich noch, sich mit Assembler, 8-Bit MCU,
> etc auseinanderzusetzen? Oder sollte man sich lieber auf die
> Hochsprachen  fokussieren

Beide lohnt sich.

Ich würde aber erstmal mit C anfangen, weil das einfacher ist.

von DerEgon (Gast)


Lesenswert?

Als Fazit könnte man sagen, daß der Überflieger auch ohne Grundlagen zu 
irgendwelchen Ergebnissen kommen kann, ihm das Fehlen von Grundlagen 
aber früher oder später zu einer unsanften Bruchlandung verhelfen wird.

Auch wenn nur sehr ausgesuchte "Spezialisten" µCs dauerhaft in Assembler 
und auf Registerebene programmieren, ist das elementares 
Grundlagenwissen, das man mal gesehen & selbst gemacht haben sollte.

Den Assembler kann man als erstes weglassen, aber auf Registerebene 
anhand eines Datenblattes arbeiten zu können, ist auch nach Jahren von 
professioneller Arbeit immer noch eine wichtige und oft gebrauchte 
Grundlage.

Klar, das ist ein härterer und steinigerer Weg als sich mit einem 
Codewizard ein paar Aufrufe einer HAL-Bibliothek zusammenzuklicken, aber 
dafür ... nachhaltiger.

von Steve van de Grens (roehrmond)


Lesenswert?

Ich würde mit 8 Bit Controllern anfangen, weil diese in der Regel 
wesentlich kürzere Datenblätter haben. Man lernt schneller, damit 
umzugehen.

Wenn du einen 8 Bit Controller nutzen gelernt hast, bist du ja nicht mit 
ihm verheiratet. Im Laufe der Zeit wirst du sowieso nicht dein Leben 
lang an einem einzigen Controller (bzw. Serie) hängen bleiben.

: Bearbeitet durch User
von Wühlhase (Gast)


Lesenswert?

Ich sags mal so: Würde ich mein Leben nochmal leben, würde ich wieder 
mit ASM anfangen.

Ja, auch wenn man es als Programmiersprache direkt nie wieder braucht, 
so erleichtert es das Verständnis später ungemein. Du wirst auch in C 
viele Dinge einfacher verstehen.

Die Frage ist am Ende: Willst du der sein, der einfache 
Grundlagenprobleme ratzfatz in irgendein Framework reinhacken kann (das 
ist keine Kunst, tiefhängende Früchte die jeder erreichen kann und nach 
denen sich daher jeder streckt), oder willst du am Ende deines Studiums 
etwas Ahnung haben von dem, was du da tust? Und auch Dinge kann, die 
über Grundlagenprobleme hinaus gehen?

von W.S. (Gast)


Lesenswert?

8-Bit Wurstcontroller schrieb:
> Natürlich, ich bin auch ein Student im zweiten Semester der sich in die
> Thematik einarbeiten will, was erwartest du? :-)

Was erwartet man? Daß du ein derartiges Interesse von selbst entwickelt 
hättest, daß du dich mit Elektronik und Schaltungstechnik und 
Programmierung bereits befaßt hättest. Aber so, wie das klingt, ist dir 
die Thematik eigentlich nicht wichtig, nur die Aussichten auf möglichst 
gute Bezahlung sind vorrangig.

> Danke für die teilweise sinnvollen Beiträge! Ich nehm mal mit, dass die
> Grundlagen doch interessant sind, aber Assembler definitiv zum alten
> Eisen gehört. Also doch lieber C.

Gegenfragen:
- was hast du bislang denn so alles gebastelt?
- wie gut kannst du bereits eigene Schaltungen entwickeln?
- wie gut bist du im Leiterplatten designen?
- womit willst du in deinem künftigen Berufsleben dein Geld verdienen?

Irgendwie klingt das Ganze etwa so wie "was soll ich studieren? Lieber 
Kernphysik oder lieber Germanistik oder Archäologie?"

W.S.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

"Was mit Medien!"

von DerEgon (Gast)


Lesenswert?

Soziologie auf Lehramt.

von Steve van de Grens (roehrmond)


Lesenswert?

Steve schrieb:
> Ich würde mit 8 Bit Controllern anfangen, weil diese in der Regel
> wesentlich kürzere Datenblätter haben. Man lernt schneller, damit
> umzugehen.

Damit die Aussage stimmt sollte man mit einem einfachen 8 Bitter 
anfangen, nicht mit einer eierlegenden Wollmilchsau. Der ATmega328 wäre 
ein guter Kandidat.

von Dyson (Gast)


Lesenswert?

Olaf schrieb:
> Hehe...die sind zwar so langsam als wenn da ein Z80 mit 1Mhz drin
> laeuft, aber ich glaube doch das da ein fetter Rechner mit OS/2 drauf
> laeuft. Oder sind die schon moderner? :-D

Tut mir Leid, daß ich dich überfordert habe. Aber es geht um die Karte.

von name (Gast)


Lesenswert?

Olaf schrieb:
>> Heute schon am Geldautomaten gewesen?
>
> Hehe...die sind zwar so langsam als wenn da ein Z80 mit 1Mhz drin
> laeuft, aber ich glaube doch das da ein fetter Rechner mit OS/2 drauf
> laeuft. Oder sind die schon moderner?

I5 Kaby Lake aufwärts. Rundherum auch viele weitere 8biter und 32bitter.

von Proggi (Gast)


Lesenswert?

Ich habe mir damals einfach einen 8bitter genommen und losgelegt ohne 
lange zu fragen. Man sollte nicht so viel Zeit ins Nachfragen 
investieren. Einfach machen. :)

von W.S. (Gast)


Lesenswert?

ASM = Lack saufen schrieb:
> Ich persönlich habe übrigens die Funktion des STM32 den ich verwende zum
> Großteil durch "step by step Debugging" der HAL Routinen verstanden.

Unter diesem Gesichtspunkt ist der laute Ruf nach dem Debugger 
verständlich: Zuerst hält man das Lesen des Manuals nicht für nötig, 
dann meint man, mit ST's HAL die Bekanntschaft mit den 
Hardware-Registern vermeiden zu können und dann muß der Debugger her, um 
eventuell sehen zu können, was man da angerichtet hat.
Na denn prost.

W.S.

von Martin H. (horo)


Lesenswert?

Peter Pan schrieb:
> Mit C/C++ Anwendungen welche durch den Compiler optimiert wurden bekommt
> man eigentlich immer Code mit besserer Performance als ein Mensch ihn in
> Assembler schreiben könnte.

Und un-eigentlich? - Wolfgang "Wolf" Büscher hat es in PIC-Assembler 
vorgemacht, so etwas bekommt ein Compiler eher nicht gebacken.
https://www.qsl.net/dl4yhf/freq_counter/freq_counter.html

Nähere Erklärung dort:
https://github.com/Ho-Ro/DL4YHF-Source-Code/blob/main/HowItWorks.md

Es gibt auch einige Erweiterungen von TheHWcave und von mir, die 
ebenfalls Timing über das Abzählen von Befehlszeiten realisieren - das 
war für mich so ähnlich wie Sudoku lösen.

https://github.com/TheHWcave/PIC-freq.counter-modification

https://github.com/Ho-Ro/DL4YHF-Source-Code#3-counter_hires_eventasm

von 8-Bit Wurstcontroller (Gast)


Lesenswert?

Lothar M. schrieb:
> "Was mit Medien!"

Das selbst die Moderatoren hier Shitposter sind... :D 
Mikrocontroller.net bleibt eben Mikrocontroller.net

von 8-Bit Wurstcontroller (Gast)


Lesenswert?

W.S. schrieb:
> 8-Bit Wurstcontroller schrieb:
>> Natürlich, ich bin auch ein Student im zweiten Semester der sich in die
>> Thematik einarbeiten will, was erwartest du? :-)
>
> Was erwartet man? Daß du ein derartiges Interesse von selbst entwickelt
> hättest, daß du dich mit Elektronik und Schaltungstechnik und
> Programmierung bereits befaßt hättest. Aber so, wie das klingt, ist dir
> die Thematik eigentlich nicht wichtig, nur die Aussichten auf möglichst
> gute Bezahlung sind vorrangig.
>
>> Danke für die teilweise sinnvollen Beiträge! Ich nehm mal mit, dass die
>> Grundlagen doch interessant sind, aber Assembler definitiv zum alten
>> Eisen gehört. Also doch lieber C.
>
> Gegenfragen:
> - was hast du bislang denn so alles gebastelt?
> - wie gut kannst du bereits eigene Schaltungen entwickeln?
> - wie gut bist du im Leiterplatten designen?
> - womit willst du in deinem künftigen Berufsleben dein Geld verdienen?
>
> Irgendwie klingt das Ganze etwa so wie "was soll ich studieren? Lieber
> Kernphysik oder lieber Germanistik oder Archäologie?"
>
> W.S.

Gegenfrage zu deinen Gegenfragen: Warum sollte man immer etwas gebastelt 
haben, bevor man etwas studiert? Darf Interesse am Hobby nicht erst 
während des Studiums entstehen? Oder ist das für euch "Experten" ein 
K-O-Kriterium?

Woher zum Teufel soll ich denn bitte als Zweitsemester, der mitten im 
Ing-Grundstudium steckt, Praxiskenntnisse über Leiterplatten- und 
Schaltungsdesign haben??? Bist du so Praxisfern oder verstehst du 
einfach nicht dass man oft nach dem Abitur in das Studium einsteigt und 
nicht nach 10 Jahren Berufserfahrung? Was ein Schwachsinn!

Auch die Geld-Verdien-Frage ist ausgemachter Unsinn. Frag doch mal die 
anderen Studis was die so machen wollen. Ein paar haben vielleicht eine 
grobe Richtung. Der Rest zuckt mit den Schultern.

Und um auf die einzige sinnvolle Frage zu antworten: gebastelt habe ich 
schon an einfachen Schaltungen, kleinere Projekte mit Arduino und co, 
sowie allerlei technische Basteleien an defekten Platinen bzw. Geräten.

von Stefan F. (Gast)


Lesenswert?

8-Bit Wurstcontroller schrieb:
> Das selbst die Moderatoren hier Shitposter sind... :D

Nein: Spaßvögel

Gehst du zum Lachen in den Keller?

von Arbeiter (Gast)


Lesenswert?

Hallo


8-Bit Wurstcontroller schrieb:
> Gegenfrage zu deinen Gegenfragen: Warum sollte man immer etwas gebastelt
> haben, bevor man etwas studiert? Darf Interesse am Hobby nicht erst
> während des Studiums entstehen? Oder ist das für euch "Experten" ein
> K-O-Kriterium?

Ich bin zwar nur Facharbeiter in einen Beruf aus der E-Technik habe 
dieses Berufsgebiet aber gewählt (lange ist es her) weil ich eben 
Elektrik und Elektronik schon als Hobby hatte und dafür brannte.
Es war keine Verlegenheitslösung (wie bei so vielen - auch heute noch) 
um erstmal (oft ein Berufsleben lang...)irgendwas zu machen, bzw. um 
"viel" Geld zu verdienen oder weil es in den Bereich Ausbildungsplätze 
bzw. für später dann freie Stellen gab - den das geht auf die Dauer 
nicht gut - ein Beruf sollte schon überwiegend Spaß machen und ein 
echtes Interesse -am besten dafür brennen- dahinter stehen - vor allem 
wenn man dafür eine "echte" 3,5 Jährige Ausbildung oder gar ein 
mehrjähriges Studium durchmachen muss.
Dieses Vorwissen hatte mir auch aus so mancher Schwierigkeit geholfen
(Das mit den Formel umstellen habe ich erst deutlich später als in der 
Schule und Ausbildung wirklich verstanden - und ohne das  geht es halt 
nur schlecht in der E-Technik - aber es geht wenn man schon aus der 
Praxis kommt) - wenn bei einer Nachttischlampe oder irgendwo bei 
"Haushaltsgeräten" ein Strom in der Größenordnung von kA fließen sollte 
war mir direkt klar:
Da stimmt was mit der (falsch umgestellten) Formel nicht - also einfach 
noch etwas Probiert bis es stimme (bzw. bei Multiple Choice "Prüfungen" 
direkt Antworten ausschließen können - rein aus eigene Praxiserfahrungen 
und den Werten, Bauteilen usw. die einen aus der Hobbypraxis schon 
bekannt waren).

Aber ja natürlich "darfst" du erst im oder nach den Studium ein echtes 
Interesse und eine Begeisterung für das Themenumfeld entwickeln - aber 
wenn das dann nicht mal ansatzweise geschieht dürfte so ein E-Technik 
Studium extrem anstrengen sein (kann ja jeder dank der Möglichkeiten des 
WWW nachvollziehen), ins Bulimielerne ausarten, mehr zu einen 
Mathestudium werden und wenn man es doch schafft befürchte ich das da 
dann viel Volltheoretiker herauskommen die letztendlich wenig verstanden 
haben und sich wenig Freunde im Kollegenumfeld machen werden.
Der (ehemalige?) angeblich typisch deutsche Ingenieur (Entwickler, 
Erfinder,..) funktioniert so auf jeden Fall nicht, und auch die 
bekannten Namen aus den Silikon Valley hatten so nicht angefangen.

Das derartige lernen, auswählen der Berufe und Studienlaufbahnen und wie 
diese (studierten) Fachleute dann später im Beruf (und zwar auch sozial) 
drauf sind soll angeblich (?) typisch für China und Indien sein.

Arbeiter

von Thosch (Gast)


Lesenswert?

Wenn er sich dann endlich für irgendeine Controllerfamilie entschieden 
hat
kommt bestimmt bald der nächste Beitrag im Stil von:
"Welches Projekt am besten für Einstieg mit Mikrocontroller?"



Ich habe E-Technik studiert, weil ich bereits als Schüler mit Elektronik 
gebastelt habe und irgendwann im Alter von 15 Jahren meine ersten selbst 
layouteten Platinen geätzt habe. Da wußte ich bereits, daß ich das 
später gerne mal beruflich machen möchte...

Als ich vor ca. 30 Jahren anfing, mich mit Mikrocontrollern zu 
beschäftigen, war das nicht davon getrieben "Welche Fähigkeiten machen 
sich gut in meiner Vita?", sondern ich hatte eine konkrete Meßaufgabe 
(Frequenzmessung mit Offset), für die ich eine Lösung suchte und wg. der 
Offsetrechnung einen uC in Betracht zog.

Das alles war von leidenschaftlichem Interesse getrieben.

Die Leidenschaft für das Fachgebiet, das ist etwas, was Studierenden 
heute anscheinend oft fehlt.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

8-Bit Wurstcontroller schrieb:
> Das selbst die Moderatoren hier Shitposter sind... :D
Passt doch zu deinem Trollthread und deinen Reaktionen.

> Mikrocontroller.net bleibt eben Mikrocontroller.net
Kennst dich gar nicht mal schlecht aus so als Zweitsemestriger. 
Seniorenstudium?

8-Bit Wurstcontroller schrieb:
> Woher zum Teufel soll ich denn bitte als Zweitsemester, der mitten im
> Ing-Grundstudium steckt, Praxiskenntnisse über Leiterplatten- und
> Schaltungsdesign haben???
Warum sollte das nicht möglich sein? Wo doch die nötigen Tools heute 
allesamt kostenlos zu haben sind.

von 2⁵ (Gast)


Lesenswert?

8-Bit Wurstcontroller schrieb:
> Kurz und knackig: "lohnt" es sich noch, sich mit Assembler, 8-Bit MCU,
> etc auseinanderzusetzen? Oder sollte man sich lieber auf die
> Hochsprachen  fokussieren und direkt einen 32-Bit nehmen, vor allem was
> die Berufstätigkeit danach in dem Feld Elektronik-/Hardwareentwicklung
> angeht?

Kurz und knackig:

Assembler: Nein, lerne C, ist im Embedded Bereich am weitesten 
verbreitet.
8-Bit oder 32 Bit: Egal, nimm was gängiges, also AVR oder Cortex-M0/3/4. 
Hier gibt es im Netz oder in Foren viel Unterstützung. Stefan Frings hat 
z.B. ganz brauchbare Tutorials geschrieben 
http://stefanfrings.de/mikrocontroller_buch2/index.html

Allerdings sollte man mit der Zeit den Assembler Output des Compilers 
verstehen lernen, d.h. Assembler (halbwegs) lesen zu können ist sehr 
sinnvoll! Wenn man C ein bisschen kann sollte man sich den Assembler 
Output zusammen mit einem (Programmier-)Datenblatt des Controllers 
anschauen und versuchen zu verstehen, was da passiert.

Solltest du wirklich in der Entwicklung bleiben, wirst du eh noch andere 
µC lernen!

Eine Anmerkung noch zu C: Auf einem PC (egal ob Windows, Linux, MacOS 
usw) sollte man nicht mehr auf Anwendungsebene in C programmieren.

von PittyJ (Gast)


Lesenswert?

In den 80ern habe ich Assembler programmiert: Z80, 68000 und Vax.
Danach nur Hochsprachen für Anwendungsprogramme.
Jetzt mache ich seit 15 wieder Firmware für diverse Prozessoren. Aber 
Assembler habe ich in diesem Jahrtausend noch nie programmiert. Braucht 
man nicht mehr. Selbst auf den kleinen Atmels nicht.

Und wenn ein Atmel nicht reicht (Geschwindigkeit/Speicher) dann nimmt 
man halt einen Arm-M0. Aber Assembleroptimierung? Da macht man sich nur 
tot für zu wenig Vorteil. Denn der Preisunterschied ist kaum noch 
gegeben.

von 2⁵ (Gast)


Lesenswert?

8-Bit Wurstcontroller schrieb:
> Lothar M. schrieb:
>> "Was mit Medien!"
>
> Das selbst die Moderatoren hier Shitposter sind... :D
> Mikrocontroller.net bleibt eben Mikrocontroller.net

Die wichtigste Regel im Forum µC.net ist, sich nicht provozieren zu 
lassen! Es ist inzwischen so, dass fast bei jedem Thema "Einwürfe" ala 
Stammtisch kommen. Die muss man halt ignorieren! Auf keinen Fall sollte 
man als Fragesteller, der vielleicht noch gar nicht lange auf µC.net mit 
liest,  selbst austeilen. Das führt nur zu einer Eskalation die auch 
sinnvolle Themen abwürgen wird. <- Eigentlich sollte dieser Text vor 
jedem Posten angezeigt werden ;-)

von Ralf S. (ralf_s572)


Lesenswert?

8-Bit Wurstcontroller schrieb:
> Moin zusammen!
>
> Ich bin im zweiten Semester E-Technik und will jetzt privat ein bisschen
> mit Mikrocontrollern rumexperimentieren.
>
> Kurz und knackig: "lohnt" es sich noch, sich mit Assembler, 8-Bit MCU,
> etc auseinanderzusetzen? Oder sollte man sich lieber auf die
> Hochsprachen  fokussieren und direkt einen 32-Bit nehmen, vor allem was
> die Berufstätigkeit danach in dem Feld Elektronik-/Hardwareentwicklung
> angeht?
>
> Klar machen die 8-Bitter aktuell noch einen Riesen Marktanteil aus, aber
> wie siehts mit Neuentwicklungen (vor allem im Automotive) aus?

Lohnt sich warscheinlich nicht mehr. Die Programme auf uC sind heute so 
komplex, da würde man sich in Asm tot programmieren. Und die 
Hochsprachenkompiler sind heute schon sehr gut und generieren schnellen 
Code. Ich habe mal in den 90ern einen Grafiktreiber 1024x768 für DOS in 
Asm programmiert. Aber nur, weil es Spass gemacht hat.

von Maxim B. (max182)


Lesenswert?

8-Bit Wurstcontroller schrieb:
> "lohnt" es sich noch, sich mit Assembler, 8-Bit MCU,
> etc auseinanderzusetzen?

8-Bit und Assembler machen Spaß. Im Grunde kann man mit Assembler alles 
machen, was man mit C macht. 8-Bit MCU sind leichter zu verstehen als 
32-Bit.

von Vorname N. (mcu32)


Lesenswert?

8bit ja - Assembler nein.

von 2⁵ (Gast)


Lesenswert?

8-Bit Wurstcontroller schrieb:
> Gegenfrage zu deinen Gegenfragen: Warum sollte man immer etwas gebastelt
> haben, bevor man etwas studiert? Darf Interesse am Hobby nicht erst
> während des Studiums entstehen? Oder ist das für euch "Experten" ein
> K-O-Kriterium?

Entspanne dich! Wichtig ist, dass du anfängst dich mit diesen Themen 
auseinanderzusetzen. Die Zeit der Mini-Computer und später der 
Homecomputer ist vorbei und die "alten Herren" (ich zähle mich da 
inzwischen auch eher dazu) haben halt oft in den 70-80 Jahren 
programmieren von der Picke auf gelernt, da kannte man oft noch jedes 
Bit der Computer, Assembler war Pflicht, wollte man halbwegs performant 
sein. Gab ja auch nur einen Bruchteil des Speichers im Vergleich mit den 
PCs von heute. Die ersten PDP-11 hatten auch nur 4k Speicher...

Wenn man heutzutage mit Schülern arbeitet, dann ist das bereits ein 
Erfolg, wenn die lernen, Arduinos zu programmieren und dann *dran 
bleiben!*
Vieles, wozu man früher einen EMUF https://de.wikipedia.org/wiki/EMUF 
mit Assembler-Programmierung gebraucht hat, macht heute problemlos und 
schneller und billiger ein RP2040 mit MicroPython.

von Lotta  . (mercedes)


Lesenswert?

Wenn Du aber wissen willst, "wie's genau funktioniert",
gerad im Reverse-Engineering, dann solltest Du Assembler lernen.
Und nicht nur Assembler. Auch das "um die Ecke herumdenken"
lernen ist wichtig.

Ich finde es absolut geil, etwa in nem Chipkarten-Motorleser
herumzustochern um herauszubekommen, wo die Routinen sitzen,
die den Kontaktierungskamm der Karte abheben und absenken,
die Karte einziehen und wo der Parser sitzt, der das Ganze steuert.
Da muß man sich dann schon mit in diesem Fall 8052 Assembler
befassen, wenn auch diesmal "nur" als Hobby.

Es also sind auch die 8-Bit Wurstcontroller, die interessant sein
können. ;-)

mfg

von Wühlhase (Gast)


Lesenswert?

8-Bit Wurstcontroller schrieb:
> Gegenfrage zu deinen Gegenfragen: Warum sollte man immer etwas gebastelt
> haben, bevor man etwas studiert? Darf Interesse am Hobby nicht erst
> während des Studiums entstehen? Oder ist das für euch "Experten" ein
> K-O-Kriterium?

Weil für ein technisches Studium im Normalfall eine intrinsische, eine 
innere Motivation bestehen sollte. Das hat etwas mit Veranlagung zu tun, 
und die bricht sich normalerweise schon lange vorher Bahn, sei es in 
Form vom Zerlegen Mamas Haushaltsgeräte, Spielen mit Papas 
Werkzeugkoffer (als Fünfjähriger), Bastelhobbies wie Modellbau oder 
stundenlanges Bauen mit Klemmbausteinen (ein anderer faktischer 
Gattungsbegriff ist Lego) oder ähnliches.

Und diese innere Motivation ist normalerweise schon vorher da. Nicht daß 
dir hier jemand den Einstieg abschreiben will. Aber solche Spätzünder 
sind eigentlich sehr selten, kommen aber seltsamerweise trotzdem 
erstaunlich häufig vor, und wenn ich mir die Bemerkung erlauben darf 
(ach was, ich sags einfach): Du hast schon im Eingangspost sehr an 
dieser inneren Motivation. zweifeln lassen. Dann brauchst du hier ein 
dickes Fell. ;)


8-Bit Wurstcontroller schrieb:
> Woher zum Teufel soll ich denn bitte als Zweitsemester, der mitten im
> Ing-Grundstudium steckt, Praxiskenntnisse über Leiterplatten- und
> Schaltungsdesign haben??? Bist du so Praxisfern oder verstehst du
> einfach nicht dass man oft nach dem Abitur in das Studium einsteigt und
> nicht nach 10 Jahren Berufserfahrung? Was ein Schwachsinn!

Nun, das ist es ja schon: Es geht gar nicht darum, daß du als 
Zweitsemester noch kein mit allen Wassern gewaschener Vollblutprofi 
bist.
Es geht darum, daß du zwar irgendwie was wissen willst, aber vorher 
fragen mußt ob sich die Mühe lohnt.
Wen es interessiert, der fragt direkt wie es geht, und nicht ob das 
Wissen noch nützlich ist. Allzumal du mit deinen Antworten durchaus 
durchblicken läßt, daß du später eher zum Klicki-Bunti-"Programmierer" 
neigen wirst, der ohne sein Framework hilflos ist.
Und solche Kollegen hat hier jeder genug, da wärst du nicht der Erste.


Aber wie gesagt: Wenn du tatsächlich dieses besagte Interesse 
entwickelst und so ein Spätzünder bist, dann laße dir Eier und ein 
dickes Fell wachsen. Aber dieses Interesse mußt du auch verfolgen...das 
Studium ist nicht dazu da, um da mit guten Noten innerhalb der 
Regelstudienzeit rauszugehen, auch wenn das gerne geredet wird. Sondern 
es ist dazu da, dieses Interesse auszuleben und zu vertiefen. Und am 
Ende über Wissen zu verfügen und vor allem einige Dinge so richtig 
durchverstanden zu haben.

von Meister E. (edson)


Lesenswert?

Da man nicht dümmer wird, wenn man die "Rädchen im Getriebe" kennt, kann 
man auch heute als Einsteiger noch von ASM-Kenntnissen profitieren. Die 
gut gemeinten Tipps, hier nicht auf ein totes Pferd zu setzen, sind doch 
reine Selbstdarstellung, von wegen "wie fortschrittlich man doch schon 
sei".
Ich habe das Programmieren als Kind mit BASIC angefangen und bin dann 
zwangsläufig drauf gestossen, dass es da in den Tiefen des Prozessors 
(MOS 6210) einfache Zusammenhänge gibt, die von Bitmustern mit teils 
festem und teils variablem Inhalt gesteuert werden. Diese Muster können 
zu Mnemonics abstrahiert werden und das Werkzeug, maschinenah solche 
Mnemonics in lauffähige Programme umzusetzen ist halt der Assembler. Wer 
meint, er kann die Welt auch ohne dieses Verständnis erobern, hat meinen 
Segen. Einfachere Gemüter, wie ich selbst, erarbeiten sich das 
Verständnis halt "bottom up", da übersieht man nicht so leicht, was man 
eigentlich wissen sollte, wenn ein Progrämmchen mal nicht so tut, wie 
man das gerne hätte. Kann jeder selbst entscheiden.

von W.S. (Gast)


Lesenswert?

8-Bit Wurstcontroller schrieb:
> Bist du so Praxisfern oder verstehst du
> einfach nicht dass man oft nach dem Abitur in das Studium einsteigt und
> nicht nach 10 Jahren Berufserfahrung? Was ein Schwachsinn!

Für einen, der hier nachfragt, weil es ihm an innerer Orientierung 
mangelt, bist du ziemlich frech.

Also, ich bin so praxisfern, daß ich bereits als Bub mir Leiterplatten 
gemacht hab. Mit Schnitzmesser, Drillbohrer und angeschliffenen 
Nähnadeln, die ich meiner Mutter entwendet hatte. Damals hatte ich mit 
Röhren gebastelt, was aber dadurch behindert war, daß man dafür ein 
metallenes Chassis brauchte und ich in mühevoller Kleinarbeit die Löcher 
ins Blech für die Sockel machen mußte. Bei den Leiterplatten ging das 
leichter, denn da gab es Sockel zum Auflöten auf Leiterplatten. Darum.

Nun will ich andere nicht daran messen, das ist ja bereits viele Jahre 
her. Aber glücklich wird man in keinem Beruf, wenn die innere mentale 
Nähe zum Arbeitsinhalt fehlt. Und da sehe ich Probleme bei Leuten, die 
zwar irgend etwas studieren wollen, aber noch keine Vorstellung von 
ihrer inneren Zielrichtung haben.

Mag sein, daß heutzutage die Studenten mehrheitlich so orientierungsarm 
sind, aber wenn sie dann das Studium absolviert haben, was dann? Braucht 
es - um das mal so salopp zu sagen - erst eine gehörige 
Einarbeitungszeit, bis daß so ein Jungingenieur sich daran erinnert, daß 
es ein Ohmsches Gesetz gibt?

Du willst jetzt "privat ein bisschen mit Mikrocontrollern 
rumexperimentieren" - und dann fragst du noch, ob es sich lohnt, mit 8 
Bit Chips und mit Assembler sich zu befassen? Was willst du eigentlich 
beim "rumexperimentieren" tun? Ich habe da eher den Eindruck, daß du 
noch nie in der Situation warst, wo du dir etwas selbst ausdenken und 
dann bauen mußtest. OK, das ist die Kehrseite der 
Wohlstandsgesellschaft. Also ist dein Vorhaben, privat mit etwas 
rumzuexperimentieren zu wollen eher etwas gegen die Langeweile. Ohne ein 
Ziel.

W.S.

von Meister E. (edson)


Lesenswert?

Oder anders formuliert: im eigenen Wald kann es schon sinnvoll sein, 
einen Holzweg bis zum Ende durch zu marschieren ;)

von Grummler (Gast)


Lesenswert?

Wühlhase schrieb:

> Weil für ein technisches Studium im Normalfall eine
> intrinsische, eine innere Motivation bestehen sollte.

Das stimmt zwar -- aber diese muss nicht zwingend darin
bestehen, dass man sich mit dem Studiengegenstand schon
vorher hobbymäßig befasst hat.
Wie stellst Du dir das bei einem Maschinenbauer vor,
der Turbinen für Kraftwerke konstruiert, oder Tagebau-
förderbrücken? Und was ist mit den Elektroingenieuren,
die beim Energieversorger in der Netzführung arbeiten?
Sollen die alle Sheldon-Cooper-mäßig eine Höchstspannungs-
anlage auf dem Küchentisch ihrer entsetzen Mutter basteln?

Dass Betriebe keine Lust haben, Lehrlinge auszubilden,
die hinterher dann doch zum Studium gehen, ist zwar vom
Standpunkt des Betriebes aus verständlich -- darf aber
nicht den jungen Leuten zum Vorwurf gemacht werden.

von Grummler (Gast)


Lesenswert?

8-Bit Wurstcontroller schrieb:

> Kurz und knackig: "lohnt" es sich noch, sich mit Assembler,
> 8-Bit MCU, etc auseinanderzusetzen?

Architekt: "Lohnt es sich noch, sich mit Baustatik auseinander-
zusetzen?"

Maschinenbauer: "Lohnt es sich noch, einen Balken berechnen
zu können?"

Schaltungsentwickler: "Lohnt es sich noch, das ohmsche Gesetz
verstanden zu haben?"

Konzertpianist: "Lohnt es sich noch, sich mit Rhythmik etc.
auseinanderzusetzen?"

Koch: "Lohnt es sich noch, selbst einen Sauerbraten marinieren
zu können?"


to be continued...

von Grummler (Gast)


Lesenswert?

Peter Pan schrieb:

> Mit C/C++ Anwendungen welche durch den Compiler optimiert
> wurden bekommt man eigentlich immer Code mit besserer
> Performance als ein Mensch ihn in Assembler schreiben
> könnte.

Strohmann.

Oder hochtrabender: "Beweis durch Reduktion auf das falsche
Problem."

Korrekt wäre: Schreibt ein Programmierer, der außer C/C++
zusätzlich noch Assembler beherrscht, bessere Programme als
einer, der NUR C/C++ kann?

Ich lehne mich mal aus dem Fenster: Wer absolut keine
Ahnung von Assembler hat, kann nicht einmal ANSI-C richtig
verstehen.


> Bei einer Portierung wünsche ich dir viel Spaß.

???

Ist in Deinem Universum "Ich kann schriftlich Wurzeln ziehen"
gleichbedeutend mit "Ich darf Wurzeln ausschließlich schrift-
lich ziehen"?

Echt?

von Olaf (Gast)


Lesenswert?

> Ich bin im zweiten Semester E-Technik und will jetzt privat ein bisschen
> mit Mikrocontrollern rumexperimentieren.

Lass dich bloss nicht von den komischen Opas hier fertigmachen und
mach dein Ding.
Die haben hier naemlich alle das Negative von frueher vergessen und 
glauben alle bei Barfuss durch den Schnee 10km zu Uni gelaufen zu sein 
wo nur sie das goettliche Wunder vollbracht haben. Die Realitaet war 
anders, ich war dabei. .-)

Olaf

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

8-Bit Wurstcontroller schrieb:
> dass man oft nach dem Abitur in das Studium einsteigt
> und nicht nach 10 Jahren Berufserfahrung?
Nur weil du nur deine Welt mit "Ich habe bis zum Schluss keine Ahnung, 
was ich machen will!" kennst, heißt das nicht, dass man bis zum Alter 
von linden 19 Jahren nicht schon 10 Jahre Erfahrung samt Erfolgen und 
Misserfolgen haben könnte.

> Bist du so Praxisfern  ...  Was ein Schwachsinn!
Ich bin mir sicher, dass du das nicht beurteilen kannst. Ich hatte mit 
19 auch schon 9 Jahre Erfahrung mit Elektronik. Frag nur mal meine 
kleine Schwester warum denn ihre Singpuppe auf einmal nicht mehr singen 
konnte...

> Frag doch mal die anderen Studis was die so machen wollen. Ein paar
> haben vielleicht eine grobe Richtung. Der Rest zuckt mit den Schultern.
Aber ein paar haben eine ganz genaue Vorstellung, was da kommt. Und 
welche davon, meinst du, werden sich dann beim Start in den Job leichter 
tun? Die, die ihr Leben lang nur mit den Schultern gezuckt haben?

Grummler schrieb:
> Wie stellst Du dir das bei einem Maschinenbauer vor,
> der Turbinen für Kraftwerke konstruiert, oder Tagebau-
> förderbrücken? Und was ist mit den Elektroingenieuren,
> die beim Energieversorger in der Netzführung arbeiten?
> Sollen die alle Sheldon-Cooper-mäßig eine Höchstspannungs-
> anlage auf dem Küchentisch ihrer entsetzen Mutter basteln?
Sollen die also konsequenterweise einfach nur Papiere mit Formeln 
bekritzeln und weiter gar nichts machen, bis sie dann nach ihrem Studium 
endlich die erste Großturbine konstruieren und die erste 
Höchstspannungsanlage auslegen?

Auch da ist es hilfreich, erst mal mit Lego selber eine Maschine gebaut 
oder schon mal die Puppenstube der kleinen Schwester beleuchtet zu 
haben.

Ich kenne da einen Konstrukteur, der hatte keine Skrupel vor 
Schweißungen auch an schwierigen Stellen, obwohl ihm immer alle aus 
Versuch und Fertigung gesagt haben, dass es da vielfältige 
Komplikationen geben könne.
Irgendwann hat ihn der Chef zum 4-wöchigen Schweißkurs angemeldet. 
Danach machte er nur noch einfache Schweißungen in seine Konstruktionen.

Olaf schrieb:
> Die haben hier naemlich alle das Negative von frueher vergessen
Du irrst, das vergisst man nicht. Aber man hat es erlebt.

> Die Realitaet war anders, ich war dabei. .-)
Ja, auch früher(tm) gab es schon die, die in Transistorschaltungen ohne 
jegliches Zaudern für einen BC337 Basisspannungsteiler im mΩ Bereich 
ausgelegt und Kollektorströme mit ein paar kA als Lösung hingeschrieben 
haben.
Wenn ich dann mit den Kommilitonen zusammen gelernt habe und sagte: "Die 
Lösung ist falsch!", dann fragten die verwundert, wie ich das so schnell 
wissen könne.

Ralf S. schrieb:
> 8-Bit Wurstcontroller schrieb:
>> Kurz und knackig: "lohnt" es sich noch, sich mit Assembler, 8-Bit MCU,
>> etc auseinanderzusetzen?
> Lohnt sich warscheinlich nicht mehr. Die Programme auf uC sind heute so
> komplex, da würde man sich in Asm tot programmieren.
Nochmal: es geht nicht darum, eine Anwendung in Assembler zu 
programmieren, sondern darum, Assembler verstanden zu haben.

Und da reichen dann ein paar Dreizeiler aus: Lauflicht mit Timer, 1x 
gepollt und 1x mit Interrupt. Und dann noch ein Programm, das 1 Byte von 
der seriellen Schnitte empfängt und auf LEDs darstellt, und dann noch 
eines, das Tastendrücke zählt und den Zähler dann per serieller Schnitte 
versendet. Also allesamt einfachste Codeschnipsel, wie man sie in C 
hinterher auch programmieren sollte.

Denn wenn man sich das erarbeitet hat (also nicht einfach irgendwo 
herkopiert und draufgespielt) dann weiß man, was tatsächlich nötig ist, 
dass was passiert und wieviel Aufwand hinter einer Zeile C-Code stecken 
kann.


Aber mein finaler Vorschlag zur Güte und weil man den Wert des guten 
Ingenieurs letztlich doch nur am schlechten Ingenieur erkennt:
wer meint, er brauche für den Rest seines Lebens keine 
Grundlagenkenntnisse, der soll das einfach weglassen.

: Bearbeitet durch Moderator
von Arbeiter (Gast)


Lesenswert?

Hallo

W.S. schrieb:
> Für einen, der hier nachfragt, weil es ihm an innerer Orientierung
> mangelt, bist du ziemlich frech.
>
> Also, ich bin so praxisfern, daß ich bereits als Bub mir Leiterplatten
> gemacht hab. Mit Schnitzmesser, Drillbohrer und angeschliffenen
> Nähnadeln, die ich meiner Mutter entwendet hatte.


Meine Empfehlung, meine Erfahrungen und Grundhalten habe ich denke ich 
deutlich dargestellt - die ist ähnlich wie deine, aber halt nur als 
Facharbeiter.

Aber trotzdem sei mir die rhetorische Frage erlaubt:
Warum "macht" der TO nicht mich an, warum "verteidigt" er sich nicht 
gegenüber mir?

Weil ich doch hoffentlich, freundlich und verständnisvoll geantwortet 
habe.
Weil ich Empfehlungen und meine Erkenntnisse ohne Überheblichkeiten und 
"Geschichten aus der Gruft" (und die könnte ich auch schon erzählen da 
ich so langsam auch in die Gruppe der "Alten Säcke" hinein gleite) 
auskomme, ich habe nämlich meine eigenen jungen Jahre und meine innere 
Einstellung nicht vergessen bzw. verloren und sogar weiter entwickelt 
und bekämpfe bewusst die auch bei mir hin und wieder aufblitzende "Alte 
Säcke und Alter ist schon ein Leistung an sich" Einstellung, die halt 
viele in meinen Alter als Erfahrung oder gar "Weisheit" (welch 
unglaubliche Überheblichkeit) missverstehen.

Wenn der TO ein Troll sein sollte - na dann hat er ja genau die Leute 
in der gewünschten Weise getriggert die hier einen auf Empört machen.

Ist die Anfrage aber ehrlich dann kann ich nur sagen:

Du machst es schon richtig "8-Bit Wurstcontroller" wie du redest und das 
du dir nicht die leider wirklich "Forentypischen" (wobei es immer die 
gleichen wenigen besonders lauten Typen sind) Frech- und 
Überheblichkeiten und das seltsame Anspruchdenken mancher "Alten Säcke" 
gegenüber jungen Männern gefallen lässt.
Und auch das kann ich dir zugestehen obwohl ich deine Grundhaltung (?) 
beim eigentlichen Thema zumindest nicht gerade förderlich (wenn aber 
auch nicht unüblich und zwar auch schon vor nun mehr 35 Jahren und mehr 
erschreckend weit verbreitet) finde.

Arbeiter

von Olaf (Gast)


Lesenswert?

> wer meint, er brauche für den Rest seines Lebens keine
> Grundlagenkenntnisse, der soll das einfach weglassen.

Ich wuerde dir inhaltlich gerne Zustimmen, weil es in der idealen
Welt so sein sollte. Aber ich hab den Eindruck als wenn man heute
in der realen Welt vor allem ueberfluessigen Papierkram macht und es 
irgendwie garnicht mehr auffaellt wenn es da etwas mangelt.

Da gehoert jemand der hier aufschlaegt und solche Fragen stellt zu den 
guten! Glaub mir wenn jemand alle deine Fragen die du als Student 
gestellt haettest mitgeschrieben haette, es waere genug Dummfug dabei.

Ausserdem, als ich NT studiert habe hatten wir >80% Abbrecherquote. So 
manches regelt sich also einfach von selbst. .-)

Olaf

von rbx (Gast)


Lesenswert?

8-Bit Wurstcontroller schrieb:
> Kurz und knackig: "lohnt" es sich noch, sich mit Assembler, 8-Bit MCU,
> etc auseinanderzusetzen? Oder sollte man sich lieber auf die
> Hochsprachen  fokussieren und direkt einen 32-Bit nehmen, vor allem was
> die Berufstätigkeit danach in dem Feld Elektronik-/Hardwareentwicklung
> angeht?

Ist das jetzt eine Freitagstrollerei?

Grundsätzlich sind sind Assemblergrundkenntnise ganz gut, und da hat 
Lothar oben völlig recht. 8 Bit oder auch 4 Bit Assembler ist viel 
einfacher zum Einstieg. Man braucht auch nicht lange, um die Grundlagen 
zu lernen (sofern nicht Intel aktuell. Intel 4 Bit war spannend)
Für C braucht man wesentlich länger als 21 Tage. Besser wäre 5-10 Jahre 
zu veranschlagen. Aber sicher, weil das so lange dauert, sollte man 
natürlich früh anfangen.

Ein zweites Problem ist noch das Forum hier. Wer es kennt, der weiß, 
dass man Assembler-Thematik besser vorsichtig handhabt.

Aber statt Freitagstrollerrei könnte man sich schon ein paar Gedanken 
machen, wie man die Situation "optimieren" kann (aber kein "most 
pessimum" veranstalten dabei).
https://www.mikrocontroller.net/articles/ARM-ASM-Tutorial

Ein drittes Problem ist aber tatsächlich noch das Gewurste mit dem 
Reduced Instruction Set ("RISC").
(Man bräuchte heutzutage wohl auch den den Begriff "Reduced Documented 
Instruction Set" ("RDISC") - erst wenn man den besser kennt, könnte man 
meinen, ja, man sollte doch hier und da abwägen.

von Michael D. (nospam2000)


Lesenswert?

Guido K. schrieb:

> …der weiss auch gar nicht was der Controller eigentlich leisten könnte,
> wenn man ihn richtig programmiert, so dass nicht der halbe Speicher
> schon für irgend welche Abstraktionen verballert wird und statt auf ein
> Register direkt zu schreiben drei ineinender verschachtelte Funktionen
> aufgerufen werden, damit die unterste dann diesen Schreibzugriff macht.

Auch in C/C++ kann man ohne die zugelieferten Abstraktionsebenen 
auskommen. Wenn ich nur an die Arduino Lib denke, mit ihrem 
digitalWrite() welchem nur einen Output auf einmal setzen kann. Für 8 
Outputs benötigt man 8 Aufrufe, d.h. die Signale können nicht 
gleichzeitig geschaltet werden.

  Michael

: Bearbeitet durch User
von Wühlhase (Gast)


Lesenswert?

Grummler schrieb:
> Wühlhase schrieb:
>
>> Weil für ein technisches Studium im Normalfall eine
>> intrinsische, eine innere Motivation bestehen sollte.
>
> Das stimmt zwar -- aber diese muss nicht zwingend darin
> bestehen, dass man sich mit dem Studiengegenstand schon
> vorher hobbymäßig befasst hat.
> Wie stellst Du dir das bei einem Maschinenbauer vor,
> der Turbinen für Kraftwerke konstruiert, oder Tagebau-
> förderbrücken? Und was ist mit den Elektroingenieuren,
> die beim Energieversorger in der Netzführung arbeiten?
> Sollen die alle Sheldon-Cooper-mäßig eine Höchstspannungs-
> anlage auf dem Küchentisch ihrer entsetzen Mutter basteln?

Auch diese Leute haben doch wohl in ihrer Kindheit ein Interesse an 
technischen Dingen gehabt und das in irgendeiner Weise geäußert...ich 
habe doch weiter oben genug Beispiele genannt.

Daß ich in der E-Technik gelandet bin war am Ende doch eher Zufall, 
ursprünglich wollte ich während des Abis in den Maschinenbau, Richtung 
Luft- und Raumfahrt. Dennoch kann ich sagen, daß die grobe Richtung bei 
mir gestimmt hat.

von STK500-Besitzer (Gast)


Lesenswert?

Einfache Antwort / Gegenfrage:
Wozu noch eine Schleife beiden können, wo es doch Klettverschlüsse 
gibt?!

Wühlhase schrieb:

> Weil für ein technisches Studium im Normalfall eine
> intrinsische, eine innere Motivation bestehen sollte.

Für die ohne technisches Interesse gibt es ja auch noch das 
Wirtschaftsingenieurwesen...

von W.S. (Gast)


Lesenswert?

Lothar M. schrieb:
> Nochmal: es geht nicht darum, eine Anwendung in Assembler zu
> programmieren, sondern darum, Assembler verstanden zu haben.

Laß mal. Die Leute, die die es nicht verstehen wollen, werden es auch 
nach der besten Erklärung nicht verstehen.

Mir kommt da ein Satz aus den Harry Potter Büchern in den Sinn: 
"Schwarzmagie zu beherrschen, heißt nicht, sie auch tatsächlich zu 
praktizieren". Das gilt auch für's Assemblerprogrammieren und das 
Verstehen der Funktionalität eines Rechners/Mikrocontrollers.

Und nochwas: all die 'alten Säcke' hier (zu denen ich mich mittlerweile 
auch zählen darf) haben in ihrer Kindheit NICHT mit Mikrocontrollern 
gebastelt. Eben weil es damals noch keine gab. Da war das Verstehen von 
Röhren angesagt und Rechner waren damals noch im Format großer 
Kühlschränke. Nicht einer, sondern mehrere.

Unsereiner ist also erst im Laufe des Berufslebens zum Mikrocontroller 
gekommen. Davor waren Ablaufsteuerungen aus Verzögerungsschaltungen und 
Impulsverkürzern in Mode, um damit geräteinterne Abläufe zu 
organisieren. Sowas war unflexibel, aufwendig und störanfällig und 
unsereiner hatte eben DESHALB nach neuen Lösungen gesucht und im 
Mikrocontroller gefunden. Allerdings über die Zwischenstufe 
Mikroprozessor, wo man Speicher und I/O noch separat dranklöppeln mußte. 
Und sich selbst zusammenstellen, passend zu dem, was in den Geräten 
erforderlich war.

Von alldem ist ein heutiger junger Ingenieur unberührt, denn (abgesehen 
von der Liefersituation) gibt es heutzutage das alles in allen möglichen 
Geschmacksrichtngen bereits fertig als Chip. Man könnte sich also viel 
besser auf das jeweilige Projekt konzentrieren. Aber das wäre etwas 
anderes, als "privat ein bisschen mit Mikrocontrollern 
rumexperimentieren" zu wollen.

W.S.

von rbx (Gast)


Lesenswert?

Wühlhase schrieb:
> Auch diese Leute haben doch wohl in ihrer Kindheit ein Interesse an
> technischen Dingen gehabt und das in irgendeiner Weise geäußert

So rein unterm Strich, oder eben statistisch gesehen, hat das schon in 
der Kindheit angefangen deutliche Vorteile.
Das ist ganz ähnlich wie beim Tischtennis. Späteinsteiger kommen auf die 
Schnelle erstmal nicht auf einen grünen Zweig, und sind auf mehr 
Automagie angewiesen.

Performancemäßig (Asm, Hochsprache) kann man relativieren. Ich hatte 
hier extra mal gefragt, und da hatten über 200 Leute richtig gute 
Antworten geschrieben (Könnte ich an dieser Stelle immer noch sagen: 
Vielen lieben Dank Leute! Das war ein großartiger Fred). :)

Wer gut ist, findet Wege, die Performance anzupassen.

von Ralf S. (ralf_s572)


Lesenswert?

Ich mache den Quark jetzt 40+ Jahre. Ich kann sagen, es gibt 2 Arten von 
E-Technikern. Die, die schon mit 8 Jahren angefangen haben, Fernseher, 
Radios und dergleiche zu zerlegen und basteln und seitdem Tag und Nacht 
E-Technik denken. Und die, die 1 Promille ihrer Lebenszeit mal eine 
blinkende LED aufgenaut haben. Beide können durchaus E-Technik 
erfolgreich studieren. Das ist kein Hexenwerk, wenn Mathe ein 
Lieblingsfach war. Aber der 2. wird im Beruf nie richtig erfolgreich 
sein und den Job als Belastung empfinden.

: Bearbeitet durch User
von STK500-Besitzer (Gast)


Lesenswert?

Ralf S. schrieb:
> Aber der 2. wird im Beruf nie richtig erfolgreich
> sein und den Job als Belastung empfinden.

Es gibt auch "andere" E-Techniker. Die landen dann aber eher im 
Projektmanagement, Qualitätsmanagment o.dergl. statt in der Entwicklung.
Die müssen auch nicht derart tief in der Materie stecken.

von EAF (Gast)


Lesenswert?

8-Bit Wurstcontroller schrieb:
> Kurz und knackig: "lohnt" es sich noch, sich mit Assembler, 8-Bit MCU,
> etc auseinanderzusetzen?

Kann sein.....

Mittlerweile gibt es sicherlich 1 Dutzend Prozessorfamilien im 
praktischen Einsatz. Das bedeutet 12 verschiedene Assembler lernen.
Sagen wir mal, 1/2 Jahr pro Familie, bis man da halbwegs fit ist.


Die häufigsten Sprachen auf µC werden wohl C und C++ sein.
Diese Sprachen sind quasi auf allen nennenswerten Prozessoren 
einsetzbar.
Vom 6 Beiner bis zum Großrechner.

Wenn du also C und C++ lernst, tust du dir was gutes an, womit du dich 
überall bewerben kannst. Mit C++ hast du dann eine der mächtigsten und 
vielseitigsten Sprachen dieser Welt. Und wenn du mit C++ anfängst, 
lernst du 99% des C gleich automatisch mit.

Mein Rat: Beginne mit C++!

Assembler wird erst dann wichtig, wenn du dich auf einen Prozessortype 
spezialisieren willst. Und dann auch hauptsächlich nur zum Debuggen, 
z.B. wenn man (mal wieder) dem Compiler nachweisen will, dass er Mist 
baut.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

EAF schrieb:
> Mittlerweile gibt es sicherlich 1 Dutzend Prozessorfamilien im
> praktischen Einsatz. Das bedeutet 12 verschiedene Assembler lernen.
> Sagen wir mal, 1/2 Jahr pro Familie, bis man da halbwegs fit ist.
Wenn du auf irgendeinem µC in C++ rumprogrammieren willst, ist es dann 
zum Lernen von C++ logischerweise nötig, auch 12 verschiedene Toolchains 
und 12 verschiedene APIs zu lernen?

> Das bedeutet 12 verschiedene Assembler lernen.
Warum immer diese Übertreibungen? Warum sollte man denn alle Assembler 
von allen Prozessorarchitekturen lernen, wenn man nur das Prinzip eines 
µCs an diesem Assembler-Blinklicht kapieren will?

Ein Tipp: lies den Thread. Du hast das ganz offensichtlich nicht getan.

> Mittlerweile gibt es sicherlich 1 Dutzend Prozessorfamilien im
> praktischen Einsatz.
Ich hätte das übrigens locker eine Zehnerpotenz höher angesetzt (wenn 
wir mal einfach bei den 4-Bit Rechnern anfangen: 
https://www.emmicroelectronic.com/product/multi-io/em6607), dann wird 
auch die Sinnlosigkeit eines solchen Unterfangens klar.

> Mein Rat: Beginne mit C++!
Uralte Sprache von 1980...
Mein Tipp: wenn man die passende Rechnerarchitektur hast, dann nimmt man 
Python oder sonstwas halbwegs Modernes.

: Bearbeitet durch Moderator
von (prx) A. K. (prx)


Lesenswert?

Gerald K. schrieb:
> Eigentlich sollte man als Informatik Student wissen was hinter einen MC
> System steht.

Es geht hier um einen E-Techniker. Die meisten Informatiker werden wohl 
zeitlebens beruflich nicht in Kontakt mit µCs kommen.

> Angefangen von der Hardwarearchitektur über Microcode, Assembler bis zum
> Compiler.

Nützlich, wenn man in diese Richtung will. Ansonsten reicht eine grobe 
Vorstellung davon.

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

(prx) A. K. schrieb:
> Die meisten Informatiker werden wohl zeitlebens beruflich nicht in
> Kontakt mit µCs kommen.
Da fragte mich der fürs Programmieren der Maschinensoftware neu 
eingestellte Informatiker nach etwa 1 Monat, als ich ihm unsere 
Maschinensteuerung vorstellte und die Komponenten erklärte, doch höchst 
interessiert, was denn eine RS232 Schnittstelle sei...   ;-)

Beitrag #7200893 wurde von einem Moderator gelöscht.
von Fernfahrer Phillip (Gast)


Lesenswert?

STK500-Besitzer schrieb:
> Die müssen auch nicht derart tief in der Materie stecken.

Wer zu tief in der Materie steckt, kann nicht mal mehr den großen Zeh 
bewegen.

(alte mongolische Volksweisheit)

von Noch ein Kommentar (Gast)


Lesenswert?

> unsere Maschinensteuerung ... RS232 Schnittstelle ...

Das absolute K.O. Argument hast du vergessen.

8-Bit Mikrocontroller mit UART sind immer noch lieferbar. Mit diesen 
tollen 32-Bit Controllern und supermodernen KI-zusammenklick-IDSs kannst 
du keine Steuerungen produzieren. Als kleiner Hersteller in Deutschland 
bekommst schlicht und einfach nicht genug Chips.

von (prx) A. K. (prx)


Lesenswert?

Lothar M. schrieb:
> was denn eine RS232 Schnittstelle sei...

Das ist die umgekehrte Perspektive, nämlich aus Sicht desjenigen, der 
eine Person für eine spezielle Aufgabe sucht und eine Person einstellt, 
die nicht dazu passt. Den Blinddarm operiert ja auch kein Psychiater 
raus.

RS232 ist dann nochmal die Spezialisierung der Spezialisierung, weil 
ausserhalb von Microcontrollern mittlerweile so exotisch wie eine 
Anlasserkurbel bei Autos. Man muss als Akademiker nicht alles wissen, 
sondern in der Lage sein, sich fehlendes Detailwissen anzueignen.

Schau dir bei Unis/FHs die Studienschwerpunkte von Informatik an. Die 
meisten davon sind meilenweit von µC-Hardware entfernt.

: Bearbeitet durch User
von Fernfahrer Phillip (Gast)


Lesenswert?

(prx) A. K. schrieb:
> Man muss als Akademiker nicht alles wissen,
> sondern in der Lage sein, sich fehlendes Detailwissen anzueignen.

Noch besser ist es, als Akademiker einen normalen Menschen zu kennen, 
der Sachverhalte kindgerecht erklären kann.

von Fernfahrer Phillip (Gast)


Lesenswert?

(prx) A. K. schrieb:
> Schau dir bei Unis/FHs die Studienschwerpunkte von Informatik an. Die
> meisten davon sind meilenweit von µC-Hardware entfernt.

Dafür gibt es dann die Datenfernübertragung. Unter Anderem über RS232.

von (prx) A. K. (prx)


Lesenswert?

Fernfahrer Phillip schrieb:
> Noch besser ist es, als Akademiker einen normalen Menschen zu kennen,
> der Sachverhalte kindgerecht erklären kann.

:-)

Es kann durchaus passieren, dass ein studierter Datenwissenschaftler 
zwar noch nie einer RS232 Schnittstelle begegnet ist, aber beim ersten 
Kontakt die Vorgänge darauf schneller drauf hat, als ein Fernfahrer. 
Oder davor steht, wie der Ochs vorm Berg. Das ist individuell 
verschieden und steht so gut wie nicht in Zusammenhang mit dem Studium.

Es ist zwar durch unzählige neue Studiengänge etwas aus dem Fokus 
geraten, aber im Studium lernt man idealerweise nicht in erster Linie 
einen Berg von Detailwissen, sondern man lernt zu lernen, und die 
Grundlagen dazu, sich in eine Aufgabe einzuarbeiten.

Ein E-Techniker sollte schon mal was von Spannung und Strom gehört 
haben, und bei Begriffen wie Signalcodierung nicht doof glotzen. Aber 
den ganzen Scheiss zu RS232, RS485, CAN usw auf Abruf fertig runterbeten 
können, das muss er nicht. Er sollte aber in der Lage sein, technische 
Doku dazu schnell zu verstehen.

: Bearbeitet durch User
von (prx) A. K. (prx)


Lesenswert?

Fernfahrer Phillip schrieb:
> Dafür gibt es dann die Datenfernübertragung.

Wobei das kein Thema für Informatiker ist. Sondern für E-Techniker, 
Physiker und Parapsychologen.

von svensson (Gast)


Lesenswert?

8-Bit Wurstcontroller schrieb:
> Ich bin im zweiten Semester E-Technik und will jetzt privat ein bisschen
> mit Mikrocontrollern rumexperimentieren.

Die Bitzahl des MC ist erst einmal egal, Du willst ja die Grundlagen 
verstehen. Du wirst im privaten Umfeld ohnehin wohl kein Steuergerät für 
Dein Auto bauen und programmieren - und wenn doch, dann kannst Du Dir 
die Jobs wahrscheinlich aussuchen...

Assembler wenigstens etwas zu kennen, ist sicherlich auch von Vorteil. 
Und um ein Basisverständnis zu bekommen, reicht ein 8-Bit MC vollkommen 
aus. (Selbst ein 4-Bit MC würde reichen, aber die sind schwerer zu 
bekommen.)

Ebenso sollte man unbedingt etwas "C" können, einfach weil das die am 
weitesten verbreitete Programmiersprache überhaupt ist. Idealerweise 
kommt dann später die eine oder andere Hochsprache hinzu.

Und Du darfst eines nicht vergessen: Du bist vermutlich jung und lernst 
ziemlich schnell. Wenn Du jetzt etwas Zeit erübrigen kannst, z.B. in den 
Semesterferien, dann kannst Du Dir das aneignen, wofür Du im Job später 
ein Vielfaches an Zeit benötigen würdest.

Und "Wissen" schadet nie, es hilft ungemein, wenn es später darum geht, 
sich in neue Bereiche einzuarbeiten und weiteres Wissen zu erwerben.

von (prx) A. K. (prx)


Lesenswert?

EAF schrieb:
> Mittlerweile gibt es sicherlich 1 Dutzend Prozessorfamilien im
> praktischen Einsatz. Das bedeutet 12 verschiedene Assembler lernen.
> Sagen wir mal, 1/2 Jahr pro Familie, bis man da halbwegs fit ist.

Mit dem ersten lernst du die Prinzipien von Assemblerprogrammierung 
kennen. Der Teil fällt bei jeder weiteren Familie weg, die Schemata sind 
bekannt. Eine etwas grössere Hürde sind dann nur noch Exoten mit 
deutlich abweichendem Schema und schräger Mnemotechnik.

Das ist bei Programmierung generell so. Solange man im gleichen 
Paradigma bleibt (prozedural, funktional, objektorientiert...), 
überwiegen die Ähnlichkeiten und eine neue Sprache im bekannten 
Paradigma ist keine grosse Hürde.

: Bearbeitet durch User
von Peter Pan (Gast)


Lesenswert?

Lothar M. schrieb:
> (prx) A. K. schrieb:
>
>> Die meisten Informatiker werden wohl zeitlebens beruflich nicht in
>> Kontakt mit µCs kommen.
>
> Da fragte mich der fürs Programmieren der Maschinensoftware neu
> eingestellte Informatiker nach etwa 1 Monat, als ich ihm unsere
> Maschinensteuerung vorstellte und die Komponenten erklärte, doch höchst
> interessiert, was denn eine RS232 Schnittstelle sei...   ;-)

Woah musst du klug sein dass du das wusstest

von W.S. (Gast)


Lesenswert?

Lothar M. schrieb:
> Da fragte mich der fürs Programmieren der Maschinensoftware neu
> eingestellte Informatiker nach etwa 1 Monat,...

Ich hatte mal ein ähnliches Erlebnis. Da fragte mich eine Kollegin aus 
der Buchhaltung, was es denn mit den vielen 'Schaltkreisen' auf sich 
hätte, die ich denn so bestelle. Ich hatte ihr dann mal einen DIL40 
gezeigt und sie war schwer enttäuscht. Sie hatte sich irgendwas großes 
und rundes vorgestellt. Ist schon eine Weile her.



EAF schrieb:
> Mittlerweile gibt es sicherlich 1 Dutzend Prozessorfamilien im
> praktischen Einsatz.

Also irgendwie ist dir die Entwicklung der letzten 10..14 Jahre 
entgangen. Von den damaligen Herstellern und deren Produktfamilien und 
damit Prozessorfamilien gibt es den Großteil nicht mehr. NEC, 
Mitsubishi, Fujitsu um nur einige zu nennen. Falls du meinst, der 
STM32F103C8T6 sei eine ganz andere Prozessorfamilie als der 
STM32F103CBT6, dann kommt deine Rechnung eher hin.

W.S.

von M. Н. (Gast)


Lesenswert?

Ralf S. schrieb:
> Aber der 2. wird im Beruf nie richtig erfolgreich
> sein und den Job als Belastung empfinden.

Oder schneller im Management aufsteigen, wo man das Wissen eh nicht mher 
so braucht, und noch viel erfolgreicher sein...

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Peter Pan schrieb:
> Woah musst du klug sein dass du das wusstest
Soll ich dir das auch mit einfachen Worten erklären?

(prx) A. K. schrieb:
> Er sollte aber in der Lage sein, technische Doku dazu schnell zu
> verstehen.
Er hat dann nach 1 Jahr gekündigt, diese maschinennahe, echtzeitfähige 
Software war nichts für ihn. Er macht jetzt irgendwas im Dunstkreis von 
Projektmanagement.

von ExAusbilder (Gast)


Lesenswert?

8-Bit Wurstcontroller schrieb:
>> Statt deine Zeit mit Relikten der Vergangenheit zu verschwenden.
>
> Danke dir für die Einschätzung, gut auf den Punkt gebracht!

Und hier wiedermal ein klassisches Beispiel dafür, dass dem TO die 
Antworten am besten gefallen, die er hören wollte.
Inhalt ist dabei komplett unwichtig.

von Peter Pan (Gast)


Lesenswert?

Lothar M. schrieb:
> (prx) A. K. schrieb:
>> Er sollte aber in der Lage sein, technische Doku dazu schnell zu
>> verstehen.
> Er hat dann nach 1 Jahr gekündigt, diese maschinennahe, echtzeitfähige
> Software war nichts für ihn. Er macht jetzt irgendwas im Dunstkreis von
> Projektmanagement.

Ihr werdet halt schlecht bezahlt haben.

Jobwechsel für Gehaltssteigerungen in den ersten Jahren sind eben 
wichtig.

Bei einem Wechsel gibt es locker 20%, in der Regel 30% und mehr.

Na, hättet ihr ihm so viel mehr Gehalt gezahlt?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Peter Pan schrieb:
> Ihr werdet halt schlecht bezahlt haben.
Keine Ahnung. Aber egal wie viel es war: es war zu viel.

: Bearbeitet durch Moderator
von chris (Gast)


Lesenswert?

8-Bit Wurstcontroller schrieb:
> Kurz und knackig: "lohnt" es sich noch, sich mit Assembler, 8-Bit MCU,
> etc auseinanderzusetzen?

Einfach ein MUSS. Von Prinzip ist es aber egal wieviel Bits das Dingens 
hat denn ein 16 Bitter ist nichts weiter als ein aufgebohrter 8 der 
wieder eines 4bitters und der eines 2bitters. Stell dir vor Die 
Raumfahrt und selbst das Militär nutzt heute noch in Radarsystem 
3Bitter. Das heist nicht das man sich damit unbedingt rumschlagen muss 
aber einfach gesagt nichts ist unmöglich.

Hatte Anfang des 2ten Lehrjahres Assembler mir selbst beigebracht, AVRs. 
Ein Schritt auf CISC war kein Problem aber ein Schritt in die Familie 
der PIC16f8 war da schon sehr sehr gewöhungsbedüftig. Heute gehört Atmel 
leider zu Microchip... Seitenhieb an MC haben wohl das schlechtere 
Design ihrer Kisten gehabt...

von Peter Pan (Gast)


Lesenswert?

Lothar M. schrieb:
> Peter Pan schrieb:
>
>> Ihr werdet halt schlecht bezahlt haben.
>
> Keine Ahnung. Aber egal wie viel es war: es war zu viel.

"Mama, wieso kriegen wir kein Personal?!"

Man muss Personal nicht nur halten können mit akzeptabler Bezahlung 
sondern es auch entsprechend weiterbilden. Und dann auch entsprechend 
mehr bezahlen.

Am besten noch unbezahlte Überstunden verlangen, was?

Und wenn Absolventen nach einem Jahr schon abhauen spricht das Bände 
über das Unternehmen. Meistens bleibt man 2 Jahre...

von Wühlhase (Gast)


Lesenswert?

Ja, das wird garantiert niemals am AN liegen wenn er mit der Arbeit, auf 
die er sich beworben hat, nicht zurande kommt.

Ist dir im A+B-Forum zu langweilig? Fehlt dir ein Thread in dem du dich 
über die IGM-Bezahlung auslassen kannst?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Peter Pan schrieb:
> sondern es auch entsprechend weiterbilden.
Der Mensch war faul und für das, was er "studiert" hatte, völlig 
ungeeignet. Absolut keine Affinität zu dem, auf was er sich beworben 
hat. Da kannst du nichts ausbilden. Das wäre Perlen vor die Säue 
gewesen.

Aus dem anderen von weiter oben mit "1 Maschinentakt pro C-Zeile" ist 
dann übrigens doch noch ein brauchbarer Programmierer geworden. Da war 
Interesse da.

> Am besten noch unbezahlte Überstunden verlangen, was?
Heitere Ratestunde?
Mein Motto: Niemals ein Unternehmen ohne Stempeluhr!

> Und wenn Absolventen nach einem Jahr schon abhauen spricht das Bände
> über das Unternehmen
Ja, das stimmt. Da war der Abteilungsleiter zu gutmütig. Denn es war im 
Grunde wirklich ein Fehler, ihn nicht gleich wieder rauszuwerfen.


Weißt du auch noch was zum eigentlichen Thema?

von Martin (Gast)


Lesenswert?

In den 80er Jahren habe ich den C64 bis ins letzte Bit mit Assembler 
programmiert.

Über die Modelleisenbahn bin dann vor ein paar Jahren mit Microchip PICs 
und Assembler wieder eingestiegen, weil ich kein C++ lernen wollte. Ziel 
war, einige Steuerungen zu realisieren.

Es hat nicht geschadet, es ist wie Gehirnjogging.

Mittlerweile programmiere ich jedoch v.a. Arduinos in C, das geht für 
komplexe Programme natürlich einfacher, da man nicht alles selbst 
programmieren muss, z.B. mathematische Funktionen etc.

Für das Verständnis der Microcontroller war Assembler auf jeden Fall 
hilfreich.

von (prx) A. K. (prx)


Lesenswert?

Lothar M. schrieb:
> Der Mensch war faul und für das, was er "studiert" hatte, völlig
> ungeeignet.

Exakt was hatte er denn studiert? Informatik ist ein ziemlich weites 
Feld, und wer zu Drähten keinen Draht hat, kann trotzdem für 
Computerlinguistik taugen.

> Absolut keine Affinität zu dem, auf was er sich beworben hat.

Was eine ganz andere Aussage ist. Ja, so einen Fall hatte ich auch 
einmal. Niemand verstand, warum er sich ausgerechnet auf diese Stelle 
beworben hatte. Aber solche Einzelfälle ergeben nur die Erkenntnis, dass 
Menschen verschieden sind, und auch die Selbsteinschätzung mitunter sehr 
daneben liegt. Beispiele für Letzteres kennen wir hier im Forum ja auch.

Ein als theoretisch verschrienes Fach studiert zu haben, ist anders, als 
in Comedy oft dargestellt, keine Gewähr für zwei linke Hände. Auch so 
jemand kann nebenbei ein guter Handwerker sein. Umgekehrt ist es schon 
seltener: Wer Handwerk gelernt hat, und gut darin ist, der wird nicht 
allzu oft mit der abstrakten Theorie Erfolg haben.

: Bearbeitet durch User
von Alexander (alecxs)


Lesenswert?

Ich habe im Studium mal Assembler auf Simatic Step 7 "gelernt" 
(zumindest glaube ich es war Assembler).

Die Übungen waren damals für eine Ampelschaltung. Ich kann mir gut 
vorstellen dass solche Ampeln heute noch weit verbreitet sind.

Auch in vielen Betrieben wirst Du vermutlich mit uralter Technik 
konfrontiert.

Es richtet sich sehr nach deiner Berufswahl.

von J. S. (engineer) Benutzerseite


Lesenswert?

8-Bit Wurstcontroller schrieb:
> lohnt" es sich noch, sich mit Assembler, 8-Bit MCU,
> etc auseinanderzusetzen?

Ja, weil man dabei die basics lernt, die bei vielen UCs benötigt werden. 
Die meisten Aspekte und Berechnungen, die darüber hinaus gehen, also mit 
den basics nicht viel zu tun haben, kann man wiederum mit 8 Bit genau so 
lernen, wie mit 64 Bit, weil sie mit der Auflösung nichts zu tun haben.

Die Dinge, die wiederum mit der Auflösung direkt zu tun haben, wie 
Rundung z.B. sind da am Besten zu verstehen und einzuüben.

von W.S. (Gast)


Lesenswert?

chris schrieb:
> Seitenhieb an MC haben wohl das schlechtere
> Design ihrer Kisten gehabt...

Solche fruchtlosen Diskussionen kenne ich von früher, wo die Leute von 
der Motorola-Seite sich mit den Leuten von der Intel-Seite gestritten 
haben, wer das schlechtere Design hat.

Aber das Design der kleinen PIC16 ist bei näherem Hinschauen sowohl 
pfiffig als auch recht hübsch. Immerhin kann man damit selbst bei einer 
älteren und damit in den Strukturgrößen gröberen Fab seine 
Mikrocontroller preisgünstig  mit guter Ausbeute herstellen. Und zu lahm 
oder zu schwach oder zu ärmlich in der Peripherie sind die auch nicht.

Was da von Meinungen bleibt, wie du sie genannt hast, ist ein bissel 
Selbstüberschätzung. Etwa vergleichbar mit dem Herabsehen von Leuten auf 
kleine Autos und Bewundern von größeren Autos.

W.S.

von c-hater (Gast)


Lesenswert?

Alexander schrieb:

> Ich habe im Studium mal Assembler auf Simatic Step 7 "gelernt"
> (zumindest glaube ich es war Assembler).

Das war wohl AWL. Ja, das ist schon eine Art Assembler. Allerdings der 
Assembler einer Maschine, die es real garnicht gibt.

Aber auch, wenn es diese Maschine nicht wirklich gibt, ist es auch hier 
so, dass man mit AWL viel mehr (und dies oft auch "schneller") machen 
kann als mit den höheren "Programmiersprachen" von Siemens, die dieselbe 
"Maschine". ansprechen.

Wirklich interessant wird es aber eine Ebene unter AWL, wenn nämlich der 
Code der virtuellen Maschine in den Code der realen Maschine übersetzt 
wird, auf der der Kram dann tatsächlich läuft.

Stuxnet läßt grüssen...

Es ist nun einfach so, dass die Typen, die nur mit FUP, KOP oder 
(Siemens-)C etwas anfangen können, weder eine Chance haben, sowas wie 
Stuxnet zu schreiben (was ja auch sehr verwerflich ist), aber auch keine 
Chance, sowas wie Stuxnet zu finden, zu analysieren und auszumerzen.

Es sind einfach arme Würstchen. Genauso arme Würstchen, wie halt im 
µC-Bereich die Leute, die nur C++ mit HAL können. Sehr schnell am Ende 
ihres Horizonts, wenn mal irgendwas nicht so läuft, wie gewollt...

von Maxe (Gast)


Lesenswert?

Seit ich mich damals hobbymäßig in den AVR-Assembler eingearbeitet und 
ein Projekt umgesetzt habe, denke ich den Aufbau von Prozessoren bis 
runter auf Transistorebene verstanden zu haben. Mit genug Zeit und 
Motivation meine ich sogar einen Prozessor "diskret" aufbauen zu können 
(Aber wozu...). Das Wissen lernt man vielleicht auch in Vorlesungen, ist 
dann aber tendenziell nicht so tief verankert. Jedenfalls hat mir die 
Assembliererei wirkliche Erkenntnisse gebracht, die ich nicht missen 
möchte. Nur denke ich im Nachhinein, dass ich früher hätte auf eine 
Hochsprache umsteigen sollen, die Projekte wären damit leichter von der 
Hand gegangen.

von c-hater (Gast)


Lesenswert?

Maxe schrieb:

> Nur denke ich im Nachhinein, dass ich früher hätte auf eine
> Hochsprache umsteigen sollen, die Projekte wären damit leichter von der
> Hand gegangen.

Nicht unbedingt. Gerade für AVR8 gibt es viele Sachen, die in Asm sogar 
deutlich leichter umzusetzen sind. Oder sogar überhaupt nur in Assembler 
realisierbar sind.

Aber klar: je dicker die Maschine, desto wahrscheinlicher wird man eine 
Hochsprache verwenden und Asm allenfalls noch für spezielle Sachen 
(Startupcode, Bootloader) oder extrem zeitkritische Teile.

von (prx) A. K. (prx)


Lesenswert?

Nun ist c-hater endlich wieder in seinem Element. ;-)

von Ralf S. (ralf_s572)


Lesenswert?

Wenn ich den C-Code von manchen Leute anschaue, dann denke ich mir oft, 
sie hätten doch erst Basic oder Pascal lernen sollen.

von Peter Pan (Gast)


Lesenswert?

Ralf S. schrieb:
> Wenn ich den C-Code von manchen Leute anschaue, dann denke ich mir
> oft, sie hätten doch erst Basic oder Pascal lernen sollen.

Viel zu wenig goto und viel zu viele Funktionen, was?

von c-hater (Gast)


Lesenswert?

Ralf S. schrieb:

> Wenn ich den C-Code von manchen Leute anschaue, dann denke ich mir oft,
> sie hätten doch erst Basic oder Pascal lernen sollen.

Wenn ich mir die C-Sprachspezifikation anschaue, hätten die Verfasser 
erstmal einen Lehrgang in Sprachdesign machen sollen.

Und ja: gerade Pascal wäre garnicht mal so eine schlechte Vorlage 
gewesen, das hat sich jemand ausgedacht, der tatsächlich was von der 
Sache verstand...

von Lust L. (lust)


Lesenswert?

AVRs langen mir für jede Bastelei.
Assembler langt mir für jeden AVR.
Warum hier in eine Hochsprache einarbeiten die im Lernumfang viel größer 
ist, weniger Design-Freiheit bietet (oder nur über 3 Ecken) und dabei 
oft mehr Speicher braucht und langsamer ist? Den einzigen Vorteil von C 
und Konsorten seh ich noch bei größeren Berechnungen- doch sind die 
selten. Portablen Code braucht man AVR only selbstredend ebenso selten.

von Alexander (alecxs)


Lesenswert?

c-hater schrieb:
> Das war wohl AWL. Ja, das ist schon eine Art Assembler. Allerdings der
> Assembler einer Maschine, die es real garnicht gibt.

zu dem Stichwort findet man auch verwandte Threads, wenn auch ein 
bisschen älter..
www.sps-forum.de/threads/awl.48142

von (prx) A. K. (prx)


Lesenswert?

c-hater schrieb:
> Das war wohl AWL. Ja, das ist schon eine Art Assembler. Allerdings der
> Assembler einer Maschine, die es real garnicht gibt.

Das konnte einem im Informatikstudium auch passieren. Nur war es damals 
nicht AWL, sondern MIX. Und weil das schon eine Weile her ist, war es 
die ursprüngliche Version, bei der der Programmierer nicht wusste, ob 
die Kiste binär oder dezimal arbeitet, und das Byte daher 0..63 oder 
0..99 codiert. Das Programm musste so oder so funktionieren.

https://en.wikipedia.org/wiki/MIX

Der etwas moderner eingestellte Prof zog es aber vor, die Sprache seines 
frisch erstandenen programmierbaren TI Taschenrechners als Beispiel für 
Assemblerprogrammierung zu nutzen. Was Schema und Struktur angeht, hatte 
er recht. Sind halt ein paar mehr Bits, keine 8.

: Bearbeitet durch User
von cee rules (Gast)


Lesenswert?

c-hater schrieb:
> Und ja: gerade Pascal wäre garnicht mal so eine schlechte Vorlage
> gewesen, das hat sich jemand ausgedacht, der tatsächlich was von der
> Sache verstand...

http://www.eprg.org/computerphile/pascal.pdf

von Meister E. (edson)


Lesenswert?

Peter Pan schrieb:
> Lothar M. schrieb:
>> (prx) A. K. schrieb:
>>
>>> Die meisten Informatiker werden wohl zeitlebens beruflich nicht in
>>> Kontakt mit µCs kommen.
>>
>> Da fragte mich der fürs Programmieren der Maschinensoftware neu
>> eingestellte Informatiker nach etwa 1 Monat, als ich ihm unsere
>> Maschinensteuerung vorstellte und die Komponenten erklärte, doch höchst
>> interessiert, was denn eine RS232 Schnittstelle sei...   ;-)
>
> Woah musst du klug sein dass du das wusstest

Es geht ja vielleicht gar nicht darum dass "der Neue" es nicht wusste. 
Ich meine, wer vielleicht sowas gemacht hat wie z.B.(!) sich mal einen 
8-Bitter zu besorgen und Assembler aus reinem Interesse abgecheckt, 
merkt vielleicht dass hinter der Bezeichnung "RS232" wahrscheinlich 
etwas steckt, worüber es frei verfügbare Informationen gibt und hat ein 
Gefühl dafür, ob er das jetzt gerade wissen sollte oder sich auch später 
noch aufschlauen kann. Abwartet, wofür die Schnittstelle speziell bei 
dieser Steuerung genutzt wird - wenn er doch gerade eine Steuerung 
vorgestellt bekommt, die er bald programmieren können soll.

@TO
Man ist aber bestimmt nicht automatisch disqualifiziert, weil man so 
eine Frage mal im Netz gestellt hat ;)
Also ärgere Dich nicht über die Kommentare, sondern pack was an, wenn es 
Dich interessiert.

von Olaf (Gast)


Lesenswert?

> Viel zu wenig goto und viel zu viele Funktionen, was?

Erinnert ihr euch noch? Die Ausgangsfrage kam von einem Studenten!
Wenn der spaeter mal in der Firma C programmiert dann wird jedes
mal vor dem einchecken seines Codes automatisch auf MISRA geprueft.

Und es wird auch kein HAL oder sonstige fremde Abstraktionschichten 
geben
weil man damit nur schlecht und mit Muehe durch eventuelle SIL 
Zertifizierungen kommt und ihr auch keine Zeile Code in eurem Programm 
haben wollt die nicht getestet ist und nicht genutzt wird.

Ihr duerft das nicht mit Bastelbude oder privaten programmieren 
verwechseln!

Olaf

von Gerald K. (geku)


Lesenswert?

Ralf S. schrieb:
> Wenn ich den C-Code von manchen Leute anschaue, dann denke ich mir oft,
> sie hätten doch erst Basic oder Pascal lernen sollen.

Hätte sicher auch nichts bewirkt. Wichtig ist die Entwicklung eines 
guten Konzepts und die sprachneutrale Definion des Ablaufes mittels 
Flußdiagramme, oder noch besser duch Struktogramme. Anschließend kann 
die Codierung in Assembler, Pascal, C, Python etc. erfolgen.

Direkt zu codieren ist wie ein Haus ohne Baupläne zu bauen!

**PS:** es gibt Progamme, die aus Struktogramme Pascal- oder C-Code 
erzeugen können.

: Bearbeitet durch User
von Lotta  . (mercedes)


Lesenswert?

geiler Thread!!

Mal etwas OT:

War der "König der Assemblierer", den ich leider nur aus Gerüchten
kenne einer von Uns oder ne KI?
Der muß ja ein "mörderisch großer" gewesen sein, wenn schon die
leichteste Andeutung auf ihn (auch hier in diesem Thread ;-P),
sofort eleminiert wird?

mfg

von Jester (Gast)


Lesenswert?

Olaf schrieb:
> Erinnert ihr euch noch? Die Ausgangsfrage kam von einem Studenten!

Und dieser Student hat seit mindesten einhundert sinnbefreiten Beiträgen 
nicht mehr geantwortet ...

Ich frage mich nur: warum wohl? Vielleicht, weil hier eine Unmenge 
kognitiv überforderte Leute der Ansicht sind, sie hätten die Weisheit 
mit Löffeln gefressen - und völlig talentfrei der Überzeugung frönen, 
hier ihren privaten Glaubenskrieg ausfechten zu müssen?

von Stefan F. (Gast)


Lesenswert?

Gerald K. schrieb:
> **PS:** es gibt Progamme, die aus Struktogramme Pascal- oder C-Code
> erzeugen können.

Die haben aber wenig mit Softwareentwicklung zu tun, das ist Spielkram 
für Manager.

von Jester (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Gerald K. schrieb:
>> **PS:** es gibt Progamme, die aus Struktogramme Pascal- oder C-Code
>> erzeugen können.
>
> Die haben aber wenig mit Softwareentwicklung zu tun, das ist Spielkram
> für Manager.

Wir hatten das mal im produktiven Einsatz. Damals (tm) hing die ganze 
Abteilung noch per VT-100 an einer HP-UX-Kiste. Funktioniert hat das 
schon, und Manager waren bei der Beschaffung nur insofern beteiligt, 
dass sie sich um die Finanzen kümmern durften.

Am Schluss stellten sich Nassi-Shneiderman-Diagramme aber als zu 
"aufgebläht" heraus; die pure Papiermenge machte schon mittlere Projekte 
sehr unübersichtlich und damit unlesbar.

von Stefan F. (Gast)


Lesenswert?

Ich meint auch nicht, dass Manager damit arbeiten wollen, sollen dass 
sie die bunten Diagramme schön finden.

Um eine reale Geschäftsanwendung verständlich darzustellen muss man aber 
viele Details weg lassen, was mit diesen Tools schwierig wird. Da 
zeichne ich die benötigen Diagramme lieber selbst und unabhängig vom 
Quelltext.

Bei der umgekehrten Richtung (erst Zeichnen, dann Code-Rahmen 
generieren) sehe ich keine großartige Zeitersparnis. Ich brauche das 
nicht.

von Gerald K. (geku)


Lesenswert?

Stefan ⛄ F. schrieb:
> Gerald K. schrieb:
>> **PS:** es gibt Progamme, die aus Struktogramme Pascal- oder C-Code
>> erzeugen können.
>
> Die haben aber wenig mit Softwareentwicklung zu tun, das ist Spielkram
> für Manager.

Ich habe mit Struktogrammgeneratoren Software entwickelt.
http://www.easycode.de/home.html

Das Werzeug ist mächtig, aber nicht billig!

Wer behauptet man könne keine Zeit einsparen, der hat noch nicht damit 
gearbeitet.

Wir haben sicherheitsrelevante Software entwickelt, für die eine gute 
Dokumentation Prüfstellen vorgelegt werden musste (für diese ausreichend 
Papier).

Der Vorteil war, dass sich rasch Dokumentation erzeugen ließ und diese 
leicht im aktuellen Zustand zu halten war, weil die Änderungen im 
Struktogramm durchgeführt wurden und automatisch Quellcode erzeugt 
wurde. TOPDOWN

Struktogrammgenerator <=> C-Code => Assembler => Maschinencode

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Gerald K. schrieb:
> Wer behauptet man könne keine Zeit einsparen, der hat noch nicht damit
> gearbeitet.

Doch habe. Allerdings nicht mit EasyCode sondern Enterprice Architect. 
Und viele Jahre davor mit einer Software deren Name ich vergessen habe.

Es kommt sicher auch auf das konkrete Projekt und mit welchen 
Arbeitsmitteln man am meisten vertraut ist. Mir wurden diese Tools 
unfreiwillig vor die Nase gesetzt. Nach dem Motto: Damit könnt ihr 
effizienter und besser programmieren, nun macht mal.

von Gerald K. (geku)


Lesenswert?

Stefan ⛄ F. schrieb:
> Es kommt sicher auch auf das konkrete Projekt und mit welchen
> Arbeitsmitteln man am meisten vertraut ist. Mir wurden diese Tools
> unfreiwillig vor die Nase gesetzt.

Dann verstehe ich die Abneigung.

Ich habe als Projektleiter und Softwareentwickler nach ein solchen 
Werkzeug gesucht. Es war nicht leicht die Geschäftleitung zu überzeugen 
ein so teueres Werkzeug einzukaufen.

Wir konnen bestehenden C-Code importieren (dabei wurden einige Fehler 
und Schwachstellen gefunden) und dann mit dem Struktogrammgenerator 
weiterarbeiten.

Fazit: die Qualität wurde besser, Teamarbeit erleichert, da der 
Programmstil vereinheitlicht wurde (z.B. einheitliche Formatierung). 
Dokumentation der untersten Ebene viel automatsch an.

Einziger Wermutstropfen: der Struktogrammgeneratur mischte seinen 
"Hilfskommentar" in den C-Code, welcher das C-Programm schwerer lesebar 
machte. So habe ich mir eine Hilfsprogramm entwickelt diese 
"Hilfskommentare" aus dem C-Code zu entfernen.

: Bearbeitet durch User
von michael_ (Gast)


Lesenswert?

Als Student sollte man da nicht fragen.
Sondern reinsaugen, was man nur kriegen kann.

So 1980 +- war BASIC DIE Programmiersprache für Kleine Leute oder 
Firmen.
Es wurde alles damit gemacht.
MC war selten und wurde in Assembler gemacht.
Und es gab auch Chip-BASIC.

Ich habe hier auch ein Standard-BASIC. Super mächtig.

Als 1995 die PIC und AVR aufkamen, war Assembler DIE Programmiersprache.
Und was wurde damit nicht alles gemacht?
Man schaue sich nur die Bsp. im AVR-Studio an.

C gab es für 500DM aufwärts. Entspricht heute 500EUR.

Erst ab 2000 änderte sich das.
Als Student sollte man die Geschichte und Grundlagen doch etwas kennen.
Es gibt keinen Grund, verächtlich auf ältere Programmierungen 
zurückzuschauen.
Eher schämen, weil die Biblotheken nicht auf ihren Mist gewachsen sind.
Andere Leute haben sich da die Finger wundgetippt.

von Ralf S. (ralf_s572)


Lesenswert?

michael_ schrieb:

Darum ging es doch gar nicht. Es ging darum, ob es sich lohnt. Nein, es 
lohnt sich nicht. Man lebt nicht ewig und ich will nicht mein Leben 
damit verbringen, asm-Programme zu schreiben, die ich heute mit einer 
C-Zeile erledige. Ich fahre auch nicht nach Chile und schürfe Kupfer, 
wenn ich eine Platine ätzen will.

von michael_ (Gast)


Lesenswert?

Doch!
Man sollte schon wissen wie Kupfer gewonnen wird und dass die Milch 
nicht aus Kühen kommt, die Lila aussehen.

Mit deiner Zeile in C baust du aber auf Wissen anderer Leute auf, die 
das vielleicht in Assembler realisiert haben.
Viele Leute hier haben scheinbar den Fuß verloren.
Schweben über den Wolken.
Warum sollte man sich noch mit C befassen. Wenn es doch "modernere 
Spachen" für Roboter-Programmierung gibt?

Und ob sich etwas lohnt?
Sowas steht in den Sternen.
10 Jahre Schulbildung lohnen sich natürlich nicht, wenn du hinter Model 
oder Influenzer bist.

von ExAusbilder (Gast)


Lesenswert?

Jester schrieb:
> Und dieser Student hat seit mindesten einhundert sinnbefreiten Beiträgen
> nicht mehr geantwortet ...

Ja, exakt 27 Minuten nach dem OP kam seine letzte Antwort.
Typischer Provokationsthread.

von michael_ (Gast)


Lesenswert?

Nee, er ist abgeschreckt vom geballten (Un-) Wissen der Meute von hier.

von Lust L. (lust)


Lesenswert?

Ralf S. schrieb:
> ich will nicht mein Leben damit verbringen, asm-Programme zu schreiben,
> die ich heute mit einer C-Zeile erledige.

Fragen wir hier lieber mal für was konkret. Für eine kleine 8Bit-MCU 
oder einen Ryzen-Prozessor. Das macht durchaus einen gewaltigen 
Unterschied.

von michael_ (Gast)


Lesenswert?

Um eine LED blinken zu lassen, wird es keinen Unterschied geben.
Vielleicht die Initialisierung.

von Lust L. (lust)


Lesenswert?

michael_ schrieb:
> Um eine LED blinken zu lassen, wird es keinen Unterschied geben.

michael_ schrieb:
> geballten Un- Wissen

Du sagst es.

von EAF (Gast)


Lesenswert?

Lothar M. schrieb:
> Ein Tipp: lies den Thread. Du hast das ganz offensichtlich nicht getan.
Ja!
Gerne!
Mache ich morgen mal....
(was interessieren mich die Deppen? Meine Antwort ist an den TO 
gerichtet)

Lothar M. schrieb:
> (wenn wir mal einfach bei den 4-Bit Rechnern anfangen:
Wenn es dafür C++ Compiler gibt, dann, mag es eine Chance geben, das 
dein Argument auf mein Empfehlung eine passende Erwiderung ist.

Lothar M. schrieb:
> Uralte Sprache von 1980...
Ja!
Kennst du eine bessere für µC?

W.S. schrieb:
> Also irgendwie ist dir die Entwicklung der letzten 10..14 Jahre
> entgangen.
Ja!
Zumindest du hasste es voll auf dem Schirm.
Meinen Glückwunsch!

von EAF (Gast)


Lesenswert?

EAF schrieb:
> das
dass

von Nano (Gast)


Lesenswert?

8-Bit Wurstcontroller schrieb:
> Kurz und knackig: "lohnt" es sich noch, sich mit Assembler, 8-Bit MCU,
> etc auseinanderzusetzen?

Eindeutige Antwort: JA!

Wirst du darin beruflich programmieren? Eher nein, aber das was du über 
Assembler lernst hilft dir beim Verständnis der Hardware und C.
Deswegen ist das ein wichtiger Unterbau, gerade dann, wenn man 
hardwarenah programmieren will.

Und ganz wichtig, mach dir klar, dass C immer nur eine Teilmenge der 
Möglichkeiten der CPU abbilden kann.
Dass muss allein schon deswegen so sein, weil C crossplattformfähig sein 
muss.

Insofern, kauf dir ein Assemblerbuch zu einem Prozessor deiner Wahl und 
dann arbeite das Buch intensiv in 3 Monaten durch. Die 3 Monate sind 
kein Zeitverlust und werden für ein ausreichendes Grundverständnis 
genügen.

8-Bit Wurstcontroller schrieb:
> ... 8-Bit MCU,
> etc auseinanderzusetzen? Oder sollte man sich lieber auf die
> Hochsprachen  fokussieren und direkt einen 32-Bit nehmen,

Es gibt auch 24-Bit µC.

von Roland F. (rhf)


Lesenswert?

Hallo,
Nano schrieb:
> Es gibt auch 24-Bit µC.

Interessant, welche sind das?

rhf

von Nano (Gast)


Lesenswert?

Roland F. schrieb:
> Hallo,
> Nano schrieb:
>> Es gibt auch 24-Bit µC.
>
> Interessant, welche sind das?
>
> rhf

Sry, habe mich vertan, meinte 20 Bit.
Und der 20-Bit µC ist ein aufgebohrter MPS430, der zum MSP430X wurde und 
auf 20 Bit erweiterte Register hat.

Im 24 Bit Umfeld kannst du dir aber mal den Zilog eZ80 anschauen, der 
hat eine 24 Bit ALU.

von Euro (Gast)


Lesenswert?

Werden Compiler eigentlich noch in Assembler gebaut oder hat sich das 
nach der ersten Version?

von Nano (Gast)


Lesenswert?

Euro schrieb:
> Werden Compiler eigentlich noch in Assembler gebaut oder hat sich
> das
> nach der ersten Version?

Siehe:
https://de.wikipedia.org/wiki/Bootstrapping_(Programmierung)

von Roland F. (rhf)


Lesenswert?

Hallo,
Nano schrieb:
> Sry, habe mich vertan, meinte 20 Bit.
> Und der 20-Bit µC ist ein aufgebohrter MPS430, der zum MSP430X wurde und
> auf 20 Bit erweiterte Register hat.
>
> Im 24 Bit Umfeld kannst du dir aber mal den Zilog eZ80 anschauen, der
> hat eine 24 Bit ALU.

Danke für die Hinweise, das kannte ich gar nicht, sehr interessant.

rhf

von chris_ (Gast)


Lesenswert?

Der Motorola 56k hatte 24 Bit. Es ist zwar ein DSP, das ist im weitesten 
Sinne aber auch eine CPU:
https://en.wikipedia.org/wiki/Motorola_56000

von Frank O. (frank_o)


Lesenswert?

ASM = Lack saufen schrieb:
> Man muss im Hardware Configuration Tool den PIN auf GPIO out stellen.
> Den init code generieren.
> und dann ne Funktion mit der Signatur set_GPIO_pin(HAL_GPIO_port Port,
> HAL_GPIO_pin pin,state) aufrufen.
> und das alles in ne FreeRTOS loop mit osWait(uint32_t waitTime)
> Das sind 5 oder 6 gut verständliche Codezeilen statt unporttierbarem
> Register-gemampel.

Steht schon in deinem Text "HAL_GPIO ..."
Die HAL-Layer hast du nicht programmiert und wirst das, ohne 
Vorkenntnisse von anderen Controllern, sowieso nicht kapieren.
Natürlich brauchst du bald auch nur noch mit der Maus klicken und der 
Pin ist ein Ausgang.
Es kommt immer drauf an, was man erreichen will.
@TO
C ist natürlich schon der richtige Weg.
Kann sein, dass du Assembler später einfach ausprobierst, weil du es 
wissen willst.
Da du ja auch noch etwas anderes in deinem Studium zu tun hast, nimm 
8-Bit.
Schumacher saß auch nicht sofort in einem Formel 1 Fahrzeug.

: Bearbeitet durch User
von Frank O. (frank_o)


Lesenswert?

ASM = Lack saufen schrieb:
> Man muss im Hardware Configuration Tool den PIN auf GPIO out stellen.
> Den init code generieren.
> und dann ne Funktion mit der Signatur set_GPIO_pin(HAL_GPIO_port Port,
> HAL_GPIO_pin pin,state) aufrufen.
> und das alles in ne FreeRTOS loop mit osWait(uint32_t waitTime)
> Das sind 5 oder 6 gut verständliche Codezeilen statt unporttierbarem
> Register-gemampel.

Steht schon in deinem Text "HAL_GPIO ..."
Die HAL-Layer hast du nicht programmiert und wirst das, ohne 
Vorkenntnisse so anderen Controllern, sowieso nicht kapieren.
Natürlich brauchst du bald auch nur noch mit der Maus klicken und der 
Pin ist ein Ausgang.
Es kommt immer drauf an, was man erreichen will.

8-Bit Wurstcontroller schrieb:
> Und um auf die einzige sinnvolle Frage zu antworten: gebastelt habe ich
> schon an einfachen Schaltungen, kleinere Projekte mit Arduino und co,
> sowie allerlei technische Basteleien an defekten Platinen bzw. Geräten.

Das hört sich doch schon mal gut an.
Einige der Schreiber, die haben schon in der Kindheit bis Jugend 
angefangen zu basteln.
Und genau einige von denen meinen, dass das jeder so machen muss.
Wenn du Arduino gemacht hast, setze da an und programmiere die Dinger in 
C.
Das ist ein zielführender Weg, der dir auch noch Zeit für dein Studium 
lässt.

von Peter D. (peda)


Lesenswert?

ASM = Lack saufen schrieb:
> Man muss im Hardware Configuration Tool den PIN auf GPIO out stellen.
> Den init code generieren.
> und dann ne Funktion mit der Signatur set_GPIO_pin(*HAL_GPIO_port Port,*
> HAL_GPIO_pin pin,state) aufrufen.

Das klingt einfach, ist es aber in der Praxis nicht.

Ich hab mal was mit dem LPC4357 (Cortex M4/M0) programmiert. Der 
Großteil der Entwicklungszeit ging für die ganze Konfigurierei drauf, 
also welche HAL-Funktion und welche Konstanten muß ich verwenden und wie 
ist deren genaue Syntax.
Die Doku dazu ist recht spärlich, daher habe ich im Web nach Beispielen 
gesucht. Da muß man aber höllisch aufpassen, die sind gerne mal falsch 
bzw. funktioneren nur auf einem anderen Derivat. Man kann sie nur als 
Anregung benutzen und muß trotzdem ständig im User-Manual (1442 Seiten) 
nachlesen. Auch findet man Fehler in den h-Files.

Besonders prickelnd sind Interrupts. Wenn man da Fehler macht, steht die 
CPU, weil entweder der falsche Interrupt enabled wird oder das falsche 
Pending Bit gelöscht wird oder die Reihenfolge nicht stimmt. Der 
Interrupt wird nie verlassen. Ohne Debugger ist man dann aufgeschmissen.
Das Pending-Bit sollte man nicht zum Schluß löschen. Es kann dann 
passieren, daß der Handler nochmal aufgerufen wird, weil das Löschen 
einige Zeit dauert.

Ich hab auch teilweise Trial&Error benutzt. D.h. ich hab HAL-Aufrufe 
eingefügt, bis es zu laufen scheint und dann wieder der Reihe nach 
auskommentiert, ob welche überflüssig sind.

Die eigentliche zu programmierende Funktion war dagegen nur Pillepalle.

: Bearbeitet durch User
von Lust L. (lust)


Lesenswert?

Peter D. schrieb:
> Das klingt einfach, ist es aber in der Praxis nicht.

Danke Peter für das Beispiel.
Was einmal mehr zeigt wie die beabsichtigte HAL-Vereinfachung in ihr 
Gegenteil umschlägt: Programmieren als Suche nach der richtigen 
Funktion, den richtigen Parametern. Und es demonstriert, daß man 
möglichst einfach beginnen sollte. Zu einem Grundverständnis von 
Mikrocontrollern gelangt man eben gerade nicht mit detailliert 
ausgearbeiteten Abstraktionen.

von (prx) A. K. (prx)


Lesenswert?

Lust L. schrieb:
> Was einmal mehr zeigt wie die beabsichtigte HAL-Vereinfachung in ihr
> Gegenteil umschlägt

Je komplexer der µC, desto komplexer ist bei einer neuen Familie der 
Overhead noch vor der eigenen Zeile Code. Ob nativ oder mit HAL. Das 
amortisiert sich erst beim x-ten Projekt.

von Peter D. (peda)


Angehängte Dateien:

Lesenswert?

Die 32Bit-Boliden sind ohne Zweifel sehr leistungsfähig und oft wird man 
nichtmal 1% des Funktionsumfangs benutzen.
Die Konfiguration ist dadurch aber recht tricky und fehlerträchtig.
Anbei mal eine Seite des Pin-Multiplexing der LPC43xx-Serie.
Diese Tabelle druckt man sich am besten bei der Schaltungsentwicklung 
komplett aus, um alle Funktionen richtig anzuschließen.
Z.B. P1_20 hat als GPIO FUNC0 und Bitnummer 15.
P2_0 hat auch Bit 0 aber als GPIO muß man FUNC4 setzen.
P1_19 wiederum kann kein GPIO sein.
Da ist also keinerlei Regel dahinter, jeden einzelnen Pin muß man 
nachschauen.

von Cyblord -. (cyblord)


Lesenswert?

Peter D. schrieb:
> Diese Tabelle druckt man sich am besten bei der Schaltungsentwicklung
> komplett aus, um alle Funktionen richtig anzuschließen.

Soll das heißen du entwickelst normalerweise einen Schaltplan ohne auf 
das Pinning und die Pinfunktionen im Datenblatt zu achten?

Beitrag #7205799 wurde von einem Moderator gelöscht.
von Meister E. (edson)


Lesenswert?

Cyblord -. schrieb:
> Peter D. schrieb:
>> Diese Tabelle druckt man sich am besten bei der Schaltungsentwicklung
>> komplett aus, um alle Funktionen richtig anzuschließen.
>
> Soll das heißen du entwickelst normalerweise einen Schaltplan ohne auf
> das Pinning und die Pinfunktionen im Datenblatt zu achten?

Ich glaube eher das soll heißen, dass er bei weniger komplexem oder gar 
keinem I/O-Mapping das noch im Kopf behalten kann, beim genannten 
Beispiel aber halt nicht mehr. Machts echt so viel Spaß, sich dumm zu 
stellen oder ist da einfach nicht mehr vorhanden? (rhetorische Frage)

von Cyblord -. (cyblord)


Lesenswert?

Meister E. schrieb:
> Ich glaube

Ich hatte Peda ja direkt angesprochen. Falls ich mich irgendwann mal 
dazu entscheiden sollte mit dir sprechen zu wollen, lasse ich es dich 
sofort wissen. Versprochen!

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Cyblord -. schrieb:
> Falls ich mich irgendwann mal dazu entscheiden sollte mit dir sprechen
> zu wollen
Du kannst dir deine Gesprächspartner in einem öffentlichen Forum nicht 
aussuchen.

Wenn du persönlich mit Peda was kindisches aushampeln willst, dann 
gibt's dafür die PN.

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.