Forum: Offtopic [Anfänger]Standardprogrammiersprache


von Nessie G. (nessie98)


Lesenswert?

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.

von D. I. (Gast)


Lesenswert?

Fang lieber mit C an statt Assembler und zwar mit einem guten C Buch

von Ben _. (burning_silicon)


Lesenswert?

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.

von Uwe R. (aisnmann)


Lesenswert?

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

von Icke ®. (49636b65)


Lesenswert?

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.

von Sven B. (scummos)


Lesenswert?

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.

von Frank D. (Firma: Spezialeinheit) (feuerstein7)


Lesenswert?

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!

von Stephan W. (stipo)


Lesenswert?

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.

von Daniel F. (df311)


Lesenswert?

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.

von Robert L. (lrlr)


Lesenswert?

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

von Karl H. (kbuchegg)


Lesenswert?

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.

von Uhu U. (uhu)


Lesenswert?

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.

von Falk B. (falk)


Lesenswert?

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.

von Uhu U. (uhu)


Lesenswert?

Falk Brunner schrieb:
> BASIC ist schon vom Namen her deutlich besser

Basic ist keine Programmiersprache, sonden eine Krankheit.

von Falk B. (falk)


Lesenswert?

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

von Sven B. (scummos)


Lesenswert?

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.

von Michael H. (michael_h45)


Lesenswert?

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.

von Ben _. (burning_silicon)


Lesenswert?

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.

von Uhu U. (uhu)


Lesenswert?

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

von Falk B. (falk)


Lesenswert?

@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?

von Uhu U. (uhu)


Lesenswert?

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.

von Yalu X. (yalu) (Moderator)


Lesenswert?

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.

von Uhu U. (uhu)


Lesenswert?

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.

von Paul B. (paul_baumann)


Lesenswert?

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

von Sven B. (scummos)


Lesenswert?

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

von Simon K. (simon) Benutzerseite


Lesenswert?

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.

von Daniel -. (root)


Lesenswert?

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

von Uhu U. (uhu)


Lesenswert?

Simon K. schrieb:
> Bor Leute, lest ihr das Geschriebene überhaupt? Das gleiche gilt für
Simon K.

von G. C. (_agp_)


Lesenswert?

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.

;)

von Rainer S. (heckenpenner)


Lesenswert?

Nimm erstmal C und guck dir öfters mal an was der Compiler daraus für 
einen ASM Code erzeugt.

von Ben _. (burning_silicon)


Lesenswert?

Was interessiert einen Anfänger an der Assembler-Ausgabe eines Compilers 
wenn er gar kein Assemlber kann?

von Sven B. (scummos)


Lesenswert?

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.

von Ben _. (burning_silicon)


Lesenswert?

Ja das ist wahrscheinlich das gleiche wie wenn ich mir die DNA-Sequenz 
einer Ratte anschaue.

von Michael H. (michael_h45)


Lesenswert?

Mir fällt nur ein Fall ein, wo diese Analogie passen würde:
Hast du die Ratte gezeugt?

von Rainer S. (heckenpenner)


Lesenswert?

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)

von Ben _. (burning_silicon)


Lesenswert?

Das ist aber nie im Leben der komplette Assembler-Code. Ich kann zB. die 
Funktion puts nicht finden.

von Uhu U. (uhu)


Lesenswert?

Ben _ schrieb:
> Ich kann zB. die Funktion puts nicht finden.0

Die steckt in der Lib und dir gibts in Quellen...

von Bernd T. (bastelmensch)


Lesenswert?

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.

von Uwe R. (aisnmann)


Lesenswert?

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

von Paul B. (paul_baumann)


Lesenswert?

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

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

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?

von Ben _. (burning_silicon)


Lesenswert?

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.

von Sven B. (scummos)


Lesenswert?

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?

von Stefan N. (stefan_n)


Lesenswert?

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.

von Uhu U. (uhu)


Lesenswert?

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

von Ben _. (burning_silicon)


Lesenswert?

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.

von Martin B. (martin_b35)


Lesenswert?

Hier in NRW ist Delphi (Yet Another Pascal Dialect) oder Java (kotzwürg)
vorgeschrien. Rat mal was unsere vertrocknenden Infoleerer machen…

Grüße, Martin

von Simon K. (simon) Benutzerseite


Lesenswert?

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.

von Ben _. (burning_silicon)


Lesenswert?

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.

von G. C. (_agp_)


Lesenswert?

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

von Nessie G. (nessie98)


Lesenswert?

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

von Sven B. (scummos)


Lesenswert?

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

von Uhu U. (uhu)


Lesenswert?

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

von Simon K. (simon) Benutzerseite


Lesenswert?

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!

von Ben _. (burning_silicon)


Lesenswert?

G Das ist mir auch sofort aufgefallen. Eigentlich schreibt sie doch, 
daß sie damit kein Geld verdienen will... :)

von Uhu U. (uhu)


Lesenswert?

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?

von Falk B. (falk)


Lesenswert?

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

von Uhu U. (uhu)


Lesenswert?

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.

von Simon K. (simon) Benutzerseite


Lesenswert?

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.

von Uhu U. (uhu)


Lesenswert?

Simon K. schrieb:
> Das Wort „Intension“ wird oft mit „Intention“ (Absicht) verwechselt.

Jetzt ist für dich doch noch ein Krümel abgefallen...

von Paul B. (paul_baumann)


Lesenswert?

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