Hallo Leute, Ich habe vor ein paar Tagen angefangen mich mit mikrocontrollern zu beschäftigen, zweifle jedoch mittlerweile an meinen Fähigkeiten. Mir wurde die Assembler-Sprache zum Programmiern empfohlen und man hat mir gesagt, wenn ich mir das Datenblatt nebenhinlege, wäre es gar nicht so schwer. Ich habe mir jetzt einige Datenblätter angeschaut und danach auch versucht meinen ATmega8 zu programmieren, das hat erstmal gar nicht funkrioniert, deshalb habe ich ein Programm aus dem Inernet abgeschrieben, das dann auch funktioniert hat. Aber die Befehle die angewendet wurden, wurden nicht im Datenblatt erwähnt. Gibt es vielleicht eine Standardsprache? Und wo finde ich sie? Ich habe schon danach gesucht, aber nichts gefunden.
Fang lieber mit C an statt Assembler und zwar mit einem guten C Buch
Assembler geht bei den kleinen AVRs ganz gut. Im Gegensatz zu den PICs haben sie einen ordentlichen Registersatz und deutlich mehr Befehle. Ansonsten halt C, wird ab einer bestimmten (vom Programmierer abhängigen) Größe des Projekts zwingend.
Hmm, vielleicht wäre Bascom AVR auch das richtige für dich. Für Schlimm-Bastler wie mich ist es jedenfalls ziemlich brauchbar. Es ist nicht sonderlich effizient was Codegrösse undso angeht, aber man hat alles zusammen, es funktioniert. Seien wir doch mal ehrlich, 80% der Bastler basten nur abundan mal und dann immer unkritische sachen. Sollte es mal kritisch sein, kann man auch Assemblerteile einfügen. bye uwe
Das Tutorial schon angeschaut? Dort wird alles Schritt für Schritt erklärt: http://www.mikrocontroller.net/articles/AVR-Tutorial Für einen Anfänger ist C auch nicht leichter.
Zu wissen, wie Assembler funktioniert, ist sicherlich nützlich und lernenswert. Tatsächlich damit zu arbeiten würde ich allerdings nicht empfehlen, es lohnt sich meiner Meinung nach nicht; auf den meisten Plattformen ist C verfügbar, und das ist doch wesentlich angenehmer.
Also, asm ist schon eine leichte Sprache. Der Aufbau ist recht simpel gehalten, ein kleines Beispiel: add r1, r2 Meist ist es immer das gleiche Schema, tu das (add) mit dem (r1) und dem(r2). Viel mehr braucht es am Anfang nicht. Ein paar Tipps hätte ich noch: 1.) Es gibt hier ein Tutorial und ein weiteres findest du hier http://www.avr-asm-tutorial.net/avr_de/index.html . Das ist ein bisschen lockerer geschrieben. 2.) Die Wahl des µC, du hast den mega8, der ist gut für den Anfang da er genug Pins hat , du kannst also Registerinhalte an einen Port per LEDs ausgeben. ABER das Datenblatt ist heftig groß, nimmst du einen kleinen z.B. den Attiny13 hast du ein Datenblatt was überschaubarer ist. 3.) Nimm dir kein großes Projekt für den Anfang vor, sondern begnüge und erfreue dich an ein paar bunten blinkenden Lämpchen. 4.) Suche dir im Datenblatt das aus was du brauchst, meist geht es dort um Register die passend zu der verbauten Hardware gesetzt werden. Die Register kannst du dir vorstellen wie 8-polige Dip-Schalter die schaltest du ein oder aus je nach dem welche Funktion du Freischalten willst. Hier wird es bis zur Löschung darum gehen, dass dir alle Leute erklären das IHRE Programmiersprache die Richtige ist. Dazu kannst du gerne die Suche bemühen, es gibt kein Ergebnis!
Sven B. schrieb: > Zu wissen, wie Assembler funktioniert, ist sicherlich nützlich und > lernenswert. Tatsächlich damit zu arbeiten würde ich allerdings nicht > empfehlen, es lohnt sich meiner Meinung nach nicht; auf den meisten > Plattformen ist C verfügbar, und das ist doch wesentlich angenehmer. Das unterschreibe ich sofort. Das Wissen was man durch das lernen von Assembler sammelt ist bei den Mikrokontrollern sehr nützlich. Man lernt viel von der Architektur des µC und solange man nur kleine dinge Programmiert ist es noch einfach. Sobald man aber mal richtig umfangreiches Programmieren möchte und das auch noch in relativ kurzer Zeit ist C angenehmer. Ob C oder Assembler für einen Anfänger besser geeignet ist oder auch nicht kann man nie genau sagen. Seine tücken hat jede Programmiersprache aber die hat auch jeder lernende. Somit kann es sein das der eine schneller und besser Assembler lernt, wärend einem anderen C besser liegt. > Aber die Befehle die > angewendet wurden, wurden nicht im Datenblatt erwähnt. Gibt es > vielleicht eine Standardsprache? Und wo finde ich sie? Ich habe schon > danach gesucht, aber nichts gefunden. Im Datenblatt stehen auch nicht die Befehle sondern wie man den µC ansprechen muss, das er weis was er machen soll. Die Befehle "Assembler" stehen im Befehlssatz des Atmega http://www.atmel.com/images/doc0856.pdf Drucke Dir den Atmel Befehlssatz mal aus oder ließ die PDF durch. Das hilft. Bei hartnäckigen Problemen hilft dann das Forum gerne und kompetent weiter.
fangen wir mal ganz von vorne an: welche programmiersprachen kennst du schon (nicht nur dem namen nach, sondern auch benutzt)? falls diese frage mit "keine" beantwortet wurde, empfehle ich dringend, mit einem z.b. c-buch (c++, java, python, etc.) buch am pc zu starten, da es dort wesentlich leichter ist, fehler zu debuggen und auch der aufwand um ein programm zu starten kleiner ist.
@ Nessie fang mit Ardino an... (schau dir die beispiele auf der homepage an, usw. ) dem typ, der dir ASM+Datenblatt empfohlen hat, kannst einen in den A.. treten.. einen anfänger kann man ja wohl schwer in noch kälteres wasser werfen...
Fred Feuerstein schrieb: > Also, asm ist schon eine leichte Sprache. Die Sprache (ihr Aufbau) mag leicht sein. Aber reale komplexere Programme zu schreiben ist es nicht - Eben weil die Sprache 'einfach' ist und man sich um jede Kleinigkeit, und damit ist wirklich jede Kleinigkeit gemeint, als Programmierer selber kümmern muss, was einiges an Disziplin erfordert. Die Axiome der Euklidschen Geometrie sind auch leicht. Versuch mal nur mit ihnen den Phythagoras zu beweisen, also alles auf nur diese Grundaxiome zurckzuführen. Du wirst alt dabei. Nichts desto trotz bin ich auch der Ansicht, dass es ganz gut ist, ganz unten anzufangen - also bei Assembler. D.h. nur wenn man unbedingt den harten Weg gehen will und seine ersten Schritt in die Programmierung auf einem µC ohne Infrastruktur machen will. Auf einem PC ist der Einstieg in die Programmierung deutlich einfacher (in einer Hochsprache), weil man erst mal auf eine funktionierende Umgebung zurückgreifen kann.
Karl Heinz Buchegger schrieb: > Nichts desto trotz bin ich auch der Ansicht, dass es ganz gut ist, ganz > unten anzufangen Meine Empfehlung: Mit C anfangen und wenn man das einigermaßen beherrscht, mit einem Debugger auf Assembler-Ebene schrittweise nachvollziehen, was der Compiler aus dem C-Programm gemacht hat. Dabei lernt man, wie die einzelnen Maschinenbefehle funktionieren und wie daraus das selbstgeschriebene Programm wird. Nebenbei lernt man allerlei Tricks kennen, mit denen der Compiler bestimmte Aufgaben löst.
Weder C noch ASM sind anfängergerechte Sprachen. Jaja, viele Freaks haben damit angefangen, schön und sinnvoll ist es nicht. Stichwort Lernkurve, Erfolgserlebnis. Vom Urschleim der CPU mit Registern, Flags und Bitgefummel will man als ANFÄNGER erstmal NICHTs wissen. BASIC ist schon vom Namen her deutlich besser http://de.wikipedia.org/wiki/BASIC Da kann man sehr schnell erstmal was Greifbares erreichen. "Hello World" auf nem LCD, UART etc. Und kommt nicht damit, dass BASIC nur Spaghetticode erzeugt, den kann man in JEDER Sprache erzeugen. Als Anfänger muss man erstmal Grundkonzepte erlernen, ohne sich mit den Fallstricken und Problemen der Sprache rumärgern zu müssen. Da sind restriktive Sprachen wie Pascal deutlich besser als C, mit dem man sich mal ganz fix in den Fuß schießt. BASCOM ist IMO recht brauchbar, das Arduino-Zeug kenn ich nicht, es hört sich aber einsteigergerecht an.
Falk Brunner schrieb: > BASIC ist schon vom Namen her deutlich besser Basic ist keine Programmiersprache, sonden eine Krankheit.
@ Uhu Uhuhu (uhu) >Falk Brunner schrieb: >> BASIC ist schon vom Namen her deutlich besser >Basic ist keine Programmiersprache, sonden eine Krankheit. Klar, ist ja viel zu mädchenhaft einfach. Anstatt in einer Woche zu lernen, wie man ein paar Texte formtiert ausgibt, ein paar Zahlen per Schleife berechnet und ggf. sogar ein paar Linien zeichnet, programmieren richtige Männer (tm) das alles in ASM, natürlich voll portabel und Open GL kompatibel.
Fred Feuerstein schrieb: > Also, asm ist schon eine leichte Sprache. Ohne Scherz: Brainf*ck ist noch einfacher. Die Sprache komplett zu lernen und zu verstehen dauert vielleicht fünf Minuten. Trotzdem dauert es ewig, darin auch nur ein Programm zu schreiben, was zwei Zahlen addiert. Ähnliches gilt meiner Meinung nach für ASM vs C: Selbst ein Anfänger wird ein einfaches Programm oft schneller in C geschrieben haben, obwohl die Sprache schwerer zu verstehen ist.
Falk Brunner schrieb: > Klar, ist ja viel zu mädchenhaft einfach. Anstatt in einer Woche zu > lernen, wie man ein paar Texte formtiert ausgibt, ein paar Zahlen per > Schleife berechnet und ggf. sogar ein paar Linien zeichnet, > programmieren richtige Männer (tm) das alles in ASM, natürlich voll > portabel und Open GL kompatibel. LOL Also ich bin wirklich kein Freund von Bascom. Für einen Einsteiger mag es nett für schnelle Erfolgsergebnisse sein, aber das wars auch schon. Und wehe, es funktioniert mal was nicht - dann grassiert die große Ratlosigkeit, weil man sich ja von vornherein nicht auskennen muss. Ja, man kann damit anfangen - aber bitte nicht damit weitermachen. Arduino ist zum einen kostenlos, zum anderen open-source und zuletzt nicht von Leuten erstellt und gepflegt, die ihre Hose kurz unterm Kinn schnüren. Für einen Anfänger in meinen Augen der klar bessere Einstiegspunkt.
Also das einfache Addieren zweier Zahlen ist in Assembler auch kein Problem. add r0,r1 - fertig. Bißchen schwerer wirds, wenn man das Ergebnis gerne auf einem LCD-Display hätte oder 256Bit Fließkomma mit hoher Genauigkeit braucht.
Falk Brunner schrieb: > Klar, ist ja viel zu mädchenhaft einfach. Nein, es ist zu mädchenhaft undurchsichtig. Man hat es mit einem unklar definierten Maschinenmodell zu tun, das zwar mal schnelle Erfolgserlebnisse bringt, aber zum weiteren Durchschauen des Vehikels, das man programmiert nur ein Hindernis darstellt und bei ernsthaften Projekten kommt die Rache für die schnellen Erfolgserlebnisse bei der Programmpflege in Form eines riesigen Klotzes am Bein... Basic ist sozusagen das andere Extrem von ASM
@Uhu Uhuhu (uhu) >Nein, es ist zu mädchenhaft undurchsichtig. Man hat es mit einem unklar >definierten Maschinenmodell zu tun, Das Maschinenmodell interessiert Einsteiger keine Sekunde. >das zwar mal schnelle >Erfolgserlebnisse bringt, Schon mal was. > aber zum weiteren Durchschauen des Vehikels, >das man programmiert nur ein Hindernis darstellt Niemand fängt mit einem Formel 1 Wagen an, sondern mit dem Dreirad. One size fits all geht regelmäßig schief. >und bei ernsthaften >Projekten kommt die Rache für die schnellen Erfolgserlebnisse bei der >Programmpflege in Form eines riesigen Klotzes am Bein... Soweit ist ein Anfänger gar nicht! >Basic ist sozusagen das andere Extrem von ASM BASIC ist nicht der Stein der Weisen, aber IMO ein deutlich besserer EINSTIEG als ASM oder C. Meinetwegen noch Pascal, das ist aber ausser den verbliebenen Resten in Form von Delphi nicht mehr zeitgemäß, weil praktisch raus aus dem Markt. Oder sehe ich das falsch?
Falk Brunner schrieb: > BASIC ist nicht der Stein der Weisen, aber IMO ein deutlich besserer > EINSTIEG als ASM oder C. Meinetwegen noch Pascal, das ist aber ausser > den verbliebenen Resten in Form von Delphi nicht mehr zeitgemäß, weil > praktisch raus aus dem Markt. Oder sehe ich das falsch? Meinetwegen jede Art von blockstrukturierter Sprache zum Anfang, aber weder ASM, noch Basic, weil bei beiden das Konzept des Gültigkeitsbereiches völlig unterbelichtet ist.
Uhu Uhuhu schrieb: > Meinetwegen jede Art von blockstrukturierter Sprache zum Anfang, aber > weder ASM, noch Basic, weil bei beiden das Konzept des > Gültigkeitsbereiches völlig unterbelichtet ist. Gültigkeitsbereiche für Anfängerprogramme mit weniger als 20 Variablen? Das ist ähnlich überflüssig wie Objektorientierung für Programme mit weniger als 500 Zeilen. Übrigens gibt es lokale Variablen auch in Bascom und den meisten anderen aktuellen Basic-Dialekten. Ich bin auch kein Freund von Basic, war es aber damals, als ich mit der Programmiererei angefangen habe. Das lag zwar u.a. auch daran, dass ich nichts anderes kannte bzw. zur Verfügung hatte :), trotzdem finde ich es nicht daneben, einem blutigen Anfänger die Möglichkeit zu geben, ein Programm einfach geradeaus herunterzuschreiben, ohne sich viele Gedanken über die Struktur desselben machen zu müssen. Die Notwendigkeit einer Programmstruktur erkennt man erst, wenn die Programme etwas größer und unübersichtlicher werden, und erst dann entsteht auch die Motivation, sich damit zu beschäftigen. Allerdings schließe ich mich dem Vorschlag von Daniel und Karl Heinz an, Programmieren nicht auf dem Mikrocontroller, sondern auf dem PC zu lernen. Wenn man erst einmal einigermaßen programmieren kann (egal in welcher Sprache), hat man genug Hintergrund, um auf dem Mikrocontroller auch gleich mit C anzufangen.
Yalu X. schrieb: > Gültigkeitsbereiche für Anfängerprogramme mit weniger als 20 Variablen? OK, für Programmierer, die dauerhaft weniger als 20 Variable brauchen, mag das ausreichen. Nur: Wer braucht solche Programmierer? > Das lag zwar u.a. auch daran, dass ich nichts anderes kannte bzw. zur > Verfügung hatte :) Die Not haben die heutigen Anfänger nicht mehr und es gibt keinen vernünftigen Grund, daraus eine Tugend zu machen. > Allerdings schließe ich mich dem Vorschlag von Daniel und Karl Heinz an, > Programmieren nicht auf dem Mikrocontroller, sondern auf dem PC zu > lernen. Ich auch.
Ich empfehle zum Erlernen Pure-Basic. Man kann sowohl Konsolenprogramme als auch Fenster-basierte Programme schreiben. Es ist prozedural aufgebaut, d.h. man muß sich nicht mit den objektorientierten Sachen herumschlagen. Es existiert eine sehr gute deutschsprachige Hilfe mit kleinen Programm- beispielen. Das ist sehr wichtig, denn die meiste Zeit geht nicht dabei drauf, das Programm mit Papier und Bleistift zu planen und auf Denkfehler zu untersuchen -nein, die meiste Zeit geht bei der Suche nach der richtigen Formulierung des Befehls (d.h. Syntax) drauf. Je mehr sich das an der Alltagssprache orientiert, desto geringer ist da der Ärger. Ein UND ist ein AND und ein OR ein ODER. Da muß man sich das Leben nicht auch noch mit abartigen Sonderzeichenkombinationen wie in C schwer machen. MfG Paul
Paul Baumann schrieb: > die meiste Zeit geht nicht dabei > drauf, das Programm mit Papier und Bleistift zu planen und auf > Denkfehler > zu untersuchen -nein, die meiste Zeit geht bei der Suche nach der > richtigen > Formulierung des Befehls (d.h. Syntax) drauf. Das gilt aber wirklich nur für das allererste Programm. Danach tritt das doch ziemlich in den Hintergrund. Insofern finde ich das kein gutes Argument für eine bestimmte Sprache. Und überhaupt: PYTHON! scnr
Sven B. schrieb: > Paul Baumann schrieb: >> die meiste Zeit geht nicht dabei >> drauf, das Programm mit Papier und Bleistift zu planen und auf >> Denkfehler >> zu untersuchen -nein, die meiste Zeit geht bei der Suche nach der >> richtigen >> Formulierung des Befehls (d.h. Syntax) drauf. > Das gilt aber wirklich nur für das allererste Programm. Bor Leute, lest ihr das Geschriebene überhaupt? Das gleiche gilt für Uhu: Uhu Uhuhu schrieb: >> Gültigkeitsbereiche für Anfängerprogramme mit weniger als 20 Variablen? > > OK, für Programmierer, die dauerhaft weniger als 20 Variable brauchen, > mag das ausreichen. > > Nur: Wer braucht solche Programmierer? Falk hat von Anfang an gesagt, dass BASIC für Anfänger und Einsteiger gut sei. Und nicht, dass es der heilige Gral ist. Man kann schon eine ganze Menge Anfängersachen damit machen um zu lernen, wie Programmieren überhaupt funktioniert.
Hört sich für mich einwenig nach einem Trollversuch an. falls doch nicht ... eigentlich sollten alle ASM-Befehle von atmega8 im Datenblatt aufgeführt sein. Meistens irgendwo ganz hinten. Anderer Punkt. Aus welchem Anlass möchtest du Mikrocontroller programmieren? längerfristig als Hobby, kurzfristig was Laufen bekommen, Schulprojekt..?
Paul Baumann schrieb: > Ich empfehle zum Erlernen Pure-Basic. Man kann sowohl Konsolenprogramme > als auch Fenster-basierte Programme schreiben. Es ist prozedural > aufgebaut, Nur fragte de TE nach Hilfe fürs Mikrocontroller programmieren. Da wird ihm PureBASIC wohl nicht allzuviel nützen, schätze ich mal. Und die Übertragbarkeit des gelernten Wissens von PureBASIC auf andere BASIC-Dialekte, die Mikrocontroller unterstützen, wie BASCOM, wird auch nicht sonderlich ausgeprägt sein. ;)
Nimm erstmal C und guck dir öfters mal an was der Compiler daraus für einen ASM Code erzeugt.
Was interessiert einen Anfänger an der Assembler-Ausgabe eines Compilers wenn er gar kein Assemlber kann?
Och, das ist schon interessant. Man sieht ja zum Beispiel recht leicht, was in wieviele Kommandos übersetzt wird und so, und dass der Compiler manche Anweisungen komplett rauswirft etc. Ich bin auch nicht so der Assembler-König, aber die "disassemble"-Funktion vom gdb benutze ich trotzdem öfters mal.
Ja das ist wahrscheinlich das gleiche wie wenn ich mir die DNA-Sequenz einer Ratte anschaue.
Mir fällt nur ein Fall ein, wo diese Analogie passen würde: Hast du die Ratte gezeugt?
Ich kann zwar auch kein Assembler, aber das z.B:
1 | .file "hallo.c" |
2 | .section .rodata |
3 | .LC0: |
4 | .string "Hallo Welt!" |
5 | .text |
6 | .globl main |
7 | .type main, @function |
8 | main: |
9 | pushl %ebp |
10 | movl %esp, %ebp |
11 | andl $-16, %esp |
12 | subl $32, %esp |
13 | movl $0, 28(%esp) |
14 | jmp .L2 |
15 | .L3: |
16 | movl $.LC0, (%esp) |
17 | call puts |
18 | addl $1, 28(%esp) |
19 | .L2: |
20 | cmpl $9, 28(%esp) |
21 | jle .L3 |
22 | movl $0, %eax |
23 | leave |
24 | ret |
25 | .size main, .-main |
26 | .ident "GCC: (Ubuntu 4.4.3-4ubuntu5.1) 4.4.3" |
27 | .section .note.GNU-stack,"",@progbits |
sagt mir mehr als eine DNA-Sequenz. ;) (gcc -S)
Das ist aber nie im Leben der komplette Assembler-Code. Ich kann zB. die Funktion puts nicht finden.
Ben _ schrieb: > Ich kann zB. die Funktion puts nicht finden.0 Die steckt in der Lib und dir gibts in Quellen...
Michael H. schrieb: > Also ich bin wirklich kein Freund von Bascom. Für einen Einsteiger mag > es nett für schnelle Erfolgsergebnisse sein, aber das wars auch schon. > Und wehe, es funktioniert mal was nicht - dann grassiert die große > Ratlosigkeit, weil man sich ja von vornherein nicht auskennen muss. Und was ist aus Anfängersicht daran jetzt der Unterschied zu anderen Sprachen wie C, Pascal etc pp? Ein Anfänger hat mit jeder Sprache bei Problemen erst mal mit Ratlosigkeit zu kämpfen. Und ein Profi hat mit keiner Sprache ein Problem, der findet raus woran es liegt und stellt das Problem ab. Denn zuerst kommt es nicht auf die Sprache an, sondern auf die Algorithmen! Wer das nicht weis oder wahrhaben will der kann kein Profi sein. Und deshalb gilt es zuerst zu erlernen wie ein Programm überhaupt aufgebaut sein muss! Im Privatbereich gilt sowieso: solange der µCom hinterher macht was er soll ist es total egal mit welcher Sprache ihm das beigebügelt wurde.
Ben _ schrieb: > Ja das ist wahrscheinlich das gleiche wie wenn ich mir die DNA-Sequenz > einer Ratte anschaue. Nee, das wäre Windows in Assembler. Hier gehts eher um Bakterien als um Mäuse. ;o)) bye uwe
g.c. schrob: >Nur fragte de TE nach Hilfe fürs Mikrocontroller programmieren. Ja, das habe ich gelesen. Ich habe aber auch gelesen, daß jemand riet, zuerst auf dem PC mit dem Programmiereien zu beginnen. darauf bezog ich mich. >Da wird >ihm PureBASIC wohl nicht allzuviel nützen, schätze ich mal. Da schätzt Du falsch. Man kann nämlich auch mit Bascom weitermachen. MfG Paul
Wenn der "Nessie" mal mit seinem gelernten Geld verdienen möchte, dann gibt es eigentlich nur eine Programmiersprache für Mikrocontroller, siehe hier: Beitrag "Re: [Anfänger]Standardprogrammiersprache" Alle anderen Sprachen wie z.B. "*Basic*" oder Pascal usw. funktionieren sicher auch, aber damit kann man wohl nur schwer einen gut bezahlten Job finden. Liest "Nessie" überhaupt noch mit?
Das würd ich so nicht sagen. Wenn es sich beim Projekt um was sehr simples handelt und die Verwendung von Assembler einen kleineren und damit billigeren Controller bei geringfügig höherer Entwicklungszeit ermöglicht, hat man auch damit ganz gute Karten! EDIT @Eule: Mir ist schon klar wo die Funktion liegt. Ich sagte auch nur, daß es sich bei dem Listing nicht um den vollständigen Assembler-Code handelt. So wie der Code da steht (ohne die Libs) ist er nicht lauffähig. Außerdem sieht mir das nicht wie µC-Assembler aus, sondern eher wie x86.
Ben: Hast du mal Code vom gcc mit O3 disassembliert? Ich behaupte mal, dass man ohne einiges an Erfahrung wesentlich weniger effizienten Code fabriziert, wenn man Assembler von Hand schreibt. Außerdem: Welchen Anfänger interessiert denn, ob der uC für sein Bastelprojekt 45 oder 65 Cent kostet?
Ich programmiere in Assembler, wenn ich kann, in C, wenn ich muss, in Python, wenn es schnell gehen soll, und in allem anderen, wenn man mich dafür bezahlt.
Bernd T. schrieb: > Und was ist aus Anfängersicht daran jetzt der Unterschied zu anderen > Sprachen wie C, Pascal etc pp? Der Unterschied ist, daß er mit einer blockstrukturierten Sprache ein professionelles Werkzeug lernt. Er muß dann seine Anfängerkenntnisse nur ausweiten, statt mit C wieder von ganz vorne anzufangen. Man kann nämlich auch C so lernen, daß man zunächst mal nur die "zahmen" Konstrukte benutzt und wenn die sitzen, kann man sich immer noch mit den "anspruchsvolleren" beschäftiggen Wer nur basteln will, für den reicht Basic. Wer auf das Wissen aufbauen und es später mal beruflich nutzen will, lernt besser von vorn herein was "richtiges".
Also meine Meinung: Zur heutigen Zeit auf jeden Fall C. Wenn man der Sache treu bleibt braucht man's immer wieder und ich bin inzwischen ziemlich sauer auf meine Informatik-Leerer, die meine Zeit mit Turbopascal verschwendet haben anstatt uns was anständiges beizubringen. Man stößt auch immer wieder auf interessante fremde Projekte, die in C geschrieben sind. Da ist's schade wenn man damit nicht zurechtkommt. Basic ... Würde ich heute nicht mehr als Anfänger-Sprache vorschlagen. Es ist zwar einfach, aber wenn man es komplett neu lernt ist C wohl nicht viel schwerer. Zu Zeiten des C64 war das anders. Wenn der C gekonnt hätte, hätte ich nie Basic gelernt. Aber ist wie mit der Lasagne - wenn C draufsteht, ist noch lange kein C drin und 64 Bit schon gar nicht. Assembler... Coole Sprache, meiner Meinung nach auch sehr schnell zu lernen wenn man weiß was man tut. Meine damit, man muß wissen wie die Hardware funktioniert (noch mehr als bei einer Hochsprache) und wie man an komplexere Aufgaben herangeht. Das muß man halt alles elementar machen, während eine Hochsprache vieles zusammenfasst. Dadurch dauert das Schreiben der Programme entsprechend länger.
Hier in NRW ist Delphi (Yet Another Pascal Dialect) oder Java (kotzwürg) vorgeschrien. Rat mal was unsere vertrocknenden Infoleerer machen… Grüße, Martin
Martin B. schrieb: > Hier in NRW ist Delphi (Yet Another Pascal Dialect) oder Java (kotzwürg) > vorgeschrien. Rat mal was unsere vertrocknenden Infoleerer machen… > > Grüße, Martin Das bisschen Informatik/Programmieren was man in der Schule hat, entscheidet nun wirklich nicht darüber, wie gut man als Programmierer ist. Relevant dafür ist nämlich Erfahrung, Erfahrung, Erfahrung. Und zwar über viele Jahre (zu Karl Heinz Buchegger rüberschau). Ich hatte gar kein Informatik in der Schule. Oh Schreck! ;-) Bin trotzdem schon seit über 10 Jahren seit meiner Kindeszeit an dabei. Übrigens ganz früher habe ich mit QBasic angefangen und damit wirklich schnell erste Erfolgserlebnisse erhalten. Mit BASCOM habe ich kurz angefangen, aber schnell wieder aufgehört, nachdem ich mich tagelang wegen irgendeines Bugs in der mitgelieferten Bibliothek geärgert habe. Seitdem habe ich kurz AVR-Assembler und danach bis heute C programmiert.
Denkst Du, ich kann heute noch TurboPupsmal? Nee, ich habs erfolgreich verdrängt. So gesehen waren mindestens zwei Blöcke pro Woche über zwei oder drei Jahre Schulzeit hinweg einfach mal für'n Arsch. Die Zeit hätte auf jeden Fall gereicht um die Grundlagen im Umgang mit C zu lernen, was ich jetzt erst anfangen möchte. Mit C wäre mir also deutlich besser geholfen gewesen. Das einzig Gute damals war, daß man in TP Inline-Assembler verwenden konnte. Hab ich regelmäßig Anschiss für bekommen. Die Leerer hatten irgendwie direkt Angst davor, ich könnte damit den PC zur Explosion bringen oder so... Ansonsten hab ich auch viel mit Basic (C64, PowerBasic) und noch mehr mit Assembler gemacht. Z.B. ich nenne es mal Testprogramme, die .COM und .EXE Dateien um 4-5kB reinen Assemblercode vergrößerten und sich dann drum gekümmert haben, daß das niemand merkt. Bei den µCs bin ich bis heute bei Assembler geblieben, bin aber auch einer von den Freaks, die Assembler lieben und denen es Spaß macht den Code bis aufs letzte Byte zu optimieren. Ach und PHP/MySQL für Internet-Anwendungen nicht vergessen.
Paul Baumann schrieb: > g.c. schrob: >>Nur fragte de TE nach Hilfe fürs Mikrocontroller programmieren. > Ja, das habe ich gelesen. Ich habe aber auch gelesen, daß jemand riet, > zuerst auf dem PC mit dem Programmiereien zu beginnen. darauf bezog ich > mich. Ja gewiss, nur sind das zwei grundverschiedene Baustellen. "Registerpopelei" bei MC und PC-Programmierung, insbesondere weil viele dann schnell auch von der (langweiligen, eingeschränkten) Console zu GUI-Applikationen aufschließen wollen. Da eröffnet man sich dann völlig neue Baustellen, die viel Zeit kosten könnnen. > >>Da wird >>ihm PureBASIC wohl nicht allzuviel nützen, schätze ich mal. > > Da schätzt Du falsch. > Man kann nämlich auch mit Bascom weitermachen. > > MfG Paul Sicher, weitermachen kann man prinzipiell mit allem. Die Frage ist halt, nutzt einem das wirklich was? Insbesondere wenn eine Sprache viele eigene, nicht so ohne weiteres übertragbare Spezialbefehle eingebaut hat. Wenn man sich die news in PureBasic so anschaut, liest sich das so "Neuigkeiten" "Tonnen an neuen Befehlen" "eine Menge neuer Befehle" "viele neue Befehle" Da kocht doch jeder BASIC-Dialekt sein eigenes Süppchen. Er bildet OS-Funktionen in eigener spezieller BASIC-Syntax ab und der nächste kommt wieder mit seinem eigenen Sack voller "neuer Befehle" usw. usw. Und im Zweifel fehlt dann vielleicht doch genau der Befehl der gebraucht würde (letzteres drücken die Neuigkeiten eigentlich gut aus). Ich bin nicht grundsätzlich gegen BASIC. Habe auch mal früh mit GFA-BASIC auf dem AMIGA angefangen. Aber da waren die Alternativen auch deutlich unbequemer als heute (damals der Lattice C-Compiler, der auch nicht gerade billig war). Heute gibt es so viel gute freie oder frei verwendbare Software. Paradiesische Zeiten sind das im Vergleich zu damals ..
Markus Müller schrieb: > Wenn der "Nessie" mal mit seinem gelernten Geld verdienen möchte, dann > gibt es eigentlich nur eine Programmiersprache für Mikrocontroller, > siehe hier: > Beitrag "Re: [Anfänger]Standardprogrammiersprache" > > Alle anderen Sprachen wie z.B. "*Basic*" oder Pascal usw. funktionieren > sicher auch, aber damit kann man wohl nur schwer einen gut bezahlten Job > finden. > > Liest "Nessie" überhaupt noch mit? Ich hab nicht vor mit Mikrocontrollern mein Geld zu verdienen, um auch auf den Beitrag von Daniel zu antworten: Ich bin ein noch ziemlich junges MÄDCHEN, deshalb liegt es im Interesse meines Vaters, dass ich mich mit diesem Thema befasse und er ist dementsprechend großzügig mit dem Taschengeld :). Und ja, ich lese noch mit, aber die vielen Beiträge von Uhu und co. gehen entfernen sich teilweise stark von meiner Frage. Trotzdem danke für all die Beiträge die mir weitergeholfen haben :)
Nessie G. schrieb: > Und ja, ich lese noch mit, aber die vielen Beiträge > von Uhu und co. gehen entfernen sich teilweise stark von meiner Frage. Das gehört zu den Grundkonzepten dieses Forums. :)
Nessie G. schrieb: > Ich bin ein noch ziemlich junges MÄDCHEN, deshalb liegt es im Interesse > meines Vaters, dass ich mich mit diesem Thema befasse Papi ist natürlich eine suboptimale Muttivation. Da muß du schon aufpassen, daß du ihm nicht über den Kopf wächst und am Ende noch Ingenieur wirst... > und er ist dementsprechend großzügig mit dem Taschengeld :). Was sind die Kerle doch blöd ;-)
Nessie G. schrieb: > Ich hab nicht vor mit Mikrocontrollern mein Geld zu verdienen, um auch > auf den Beitrag von Daniel zu antworten: Ich bin ein noch ziemlich > junges MÄDCHEN, deshalb liegt es im Interesse meines Vaters, dass ich > mich mit diesem Thema befasse und er ist dementsprechend großzügig mit > dem Taschengeld :). Haha, ahso! > Und ja, ich lese noch mit, aber die vielen Beiträge > von Uhu und co. gehen entfernen sich teilweise stark von meiner Frage. > Trotzdem danke für all die Beiträge die mir weitergeholfen haben :) Ja, der Uhu. Hehehe. Wie gut! Schon jetzt mein persönlicher Thread des Jahres :-) Prost Leute!
G Das ist mir auch sofort aufgefallen. Eigentlich schreibt sie doch, daß sie damit kein Geld verdienen will... :)
Ben _ schrieb: > G Das ist mir auch sofort aufgefallen. Eigentlich schreibt sie doch, > daß sie damit kein Geld verdienen will... :) Oh, du bist wohl einer von den Glücklichen, die es schaffen, mal eben eine kleine Zeitreise in die Zukunft zu machen - oder was willst du mit dem "eigentlich" sagen?
@ Martin B. (martin_b35) >Hier in NRW ist Delphi (Yet Another Pascal Dialect) oder Java (kotzwürg) >vorgeschrien. Rat mal was unsere vertrocknenden Infoleerer machen… Java kenn ich nicht, man hört nur immer wieder, dass es ähmlich BASIC zu schlampiger, resourcenfressener, nichtperfomanter Programmierung (ver)führt. Pascal hatten wir damals (tm) auch im Abitur sowie dann 2 Semester an der FH. Aus didaktischer Sicht deutlich besser als C, weil klarer strukturiert und mit restriktiverem Compiler, der viele Fehler erkennt und abfängt und Hackertricks weitestgehend verbietet. Zu dem Thema C vs. Pascal etc. gibt es zahleiche Seiten im Netz. Klar, heute ist Pasal in der Praxis leider weg vom Fenster, das sind alles nur noch kleine Nischen, in denen es überlebt hat. Daswegen ist C als Programmiersprache in der Schule und Uni wahrscheinlich kaum zu umgehen. Wenn man es GUT rüberbringt, die Fallstricke darstellt und umgeht, kann man auch mit C anfangen. Aber optimal ist es nicht. Mein Umstieg von Pascal auf C war am Anfang sehr hoplrig, ich hab geflucht wie ein Bierkutsche. Scheiß Formatstrings im printf/scanf, Mist schon wieder Wert mit Pointer verwechselt, alles abgeschmiert, keine Ahnung was klemmt! @ Nessie G. (nessie98) >Ich hab nicht vor mit Mikrocontrollern mein Geld zu verdienen, um auch >auf den Beitrag von Daniel zu antworten: Ersten weißt du das HEUTE noch nicht, und selbts wenn du DIREKT damit nicht dein Geld verdienst, kann und wird es dir INDIREKT helfen. Nämlich dadurch, dass den Hirn im logischen, strukturiertem Denken geschult wird. Und dass du vielleicht auch mal ein paar komplexere Excel-Makros programmieren kannst als A1+B2.
Falk Brunner schrieb: > Pascal hatten wir damals (tm)Aus didaktischer Sicht deutlich besser > als C, weil ... > klarer strukturiert und mit restriktiverem Compiler, der viele Fehler > erkennt und abfängt und Hackertricks weitestgehend verbietet. Pascal wurde von Niklaus Wirth mit genau dieser Intension entworfen. Die Sprache sollte als Vehikel zum Programmieren und zum Compilerbauen lernen dienen. C hat die umgekehrte Entstehungsgeschichte: es entstand aus einem Highlevel-Assember und wurde von gründlich verdorbenen Computerfreaks mehr gebastelt, als entworfen.
Uhu Uhuhu schrieb: > Pascal wurde von Niklaus Wirth mit genau dieser Intension entworfen. http://de.wiktionary.org/wiki/Intension Das Wort „Intension“ wird oft mit „Intention“ (Absicht) verwechselt.
Simon K. schrieb: > Das Wort „Intension“ wird oft mit „Intention“ (Absicht) verwechselt. Jetzt ist für dich doch noch ein Krümel abgefallen...
Uhu schrub:
>Jetzt ist für dich doch noch ein Krümel abgefallen...
Das ist schön, daß Du von Deinem Futter auch einem Anderen mal ein
Krümchen
abgibst.
;-)
MfG Paul
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.