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?
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.
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
> 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
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.
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...
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!"
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.
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
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!
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.
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?
Eigentlich sollte man als Informatik Student wissen was hinter einen MC System steht. Angefangen von der Hardwarearchitektur über Microcode, Assembler bis zum Compiler.
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?
Ich persönlich habe übrigens die Funktion des STM32 den ich verwende zum Großteil durch "step by step Debugging" der HAL Routinen verstanden.
> 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.
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.
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.
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...
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
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.
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.
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.
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.
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.
Genie in Bottle schrieb im Beitrag #7199527:
> Vergiss Assembler.
Manch ein Hochsprachler würde von gewissen Assembler-Basiskenntnissen
sehr profitieren.
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.
Mikrocontroller mit 8Bit und (deshalb auch) Assembler wirds noch lange geben- da spricht selbst und gerade ein blühender 32Bit Markt nicht dagegen.
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.
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
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.
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.
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.
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.
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?
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.
"Was mit Medien!"
Soziologie auf Lehramt.
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.
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.
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.
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. :)
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.
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
Lothar M. schrieb: > "Was mit Medien!" Das selbst die Moderatoren hier Shitposter sind... :D Mikrocontroller.net bleibt eben Mikrocontroller.net
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.
8-Bit Wurstcontroller schrieb: > Das selbst die Moderatoren hier Shitposter sind... :D Nein: Spaßvögel Gehst du zum Lachen in den Keller?
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
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.
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.
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.
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.
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 ;-)
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.
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.
8bit ja - Assembler nein.
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.
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
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.
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.
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.
Oder anders formuliert: im eigenen Wald kann es schon sinnvoll sein, einen Holzweg bis zum Ende durch zu marschieren ;)
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.
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...
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?
> 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
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
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
> 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
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.
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
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.
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...
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.
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.
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
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.
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.
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
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
(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.
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)
> 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.
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
(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.
(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.
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
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.
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.
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
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
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.
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...
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.
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.
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?
Peter Pan schrieb: > Ihr werdet halt schlecht bezahlt haben. Keine Ahnung. Aber egal wie viel es war: es war zu viel.
:
Bearbeitet durch Moderator
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...
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...
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?
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?
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.
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
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.
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.
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.
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...
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.
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.
Nun ist c-hater endlich wieder in seinem Element. ;-)
Wenn ich den C-Code von manchen Leute anschaue, dann denke ich mir oft, sie hätten doch erst Basic oder Pascal lernen sollen.
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?
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...
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.
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
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
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
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.
> 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
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
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
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?
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.
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.
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.
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
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.
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
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.
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.
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.
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.
Nee, er ist abgeschreckt vom geballten (Un-) Wissen der Meute von hier.
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.
michael_ schrieb: > Um eine LED blinken zu lassen, wird es keinen Unterschied geben. michael_ schrieb: > geballten Un- Wissen Du sagst es.
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!
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.
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.
Werden Compiler eigentlich noch in Assembler gebaut oder hat sich das nach der ersten Version?
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)
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
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
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
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.
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
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.
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.
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.
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.
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)
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!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.