Forum: Mikrocontroller und Digitale Elektronik µC für n00bs


von Patryk D. (pad_dy)


Lesenswert?

Gurke,


Ich denke es wird an der Zeit sich endlich mal mit µCern zu befassen.

Habt Ihr irgendwelche Tipps, Empfehlungen etc. wie man damit starten 
soll?

Internetseiten?
Programmierungstipps?


Wäre über paar Antworten erfreut.....

von Draco (Gast)


Lesenswert?


von Max B. (theeye)


Lesenswert?

Schön, dass du uns weder deinen Kenntnisstand verraten, noch dich auf 
dieser Seite ungesehen hast. So wird das nichts.

https://www.mikrocontroller.net/articles/Absolute_Beginner

https://www.mikrocontroller.net/articles/Absolute_Beginner-AVR_Steckbrettprojekte

Gruß Max

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


Lesenswert?

Patryk D. schrieb:
> Ich denke es wird an der Zeit sich endlich mal mit µCern zu befassen.
Warum? Was willst du mit einem solchen uC anfangen? Welche Aufgabe 
soll der erledigen?

> Programmierungstipps?
Welche Programmiersprache beherrscht du?
Falls noch keine, dann lerne C.

> Internetseiten?
https://www.mikrocontroller.net/articles/AVR-Tutorial
https://www.mikrocontroller.net/articles/AVR
Einfach dort mal stöbern:
https://www.mikrocontroller.net/articles/Hauptseite

: Bearbeitet durch Moderator
von Wolfgang A. (Gast)


Lesenswert?

Patryk D. schrieb:
> Habt Ihr irgendwelche Tipps, Empfehlungen etc. wie man damit starten
> soll?

Guck mal hier ins Forum. Dann bekommst du einen Eindruck, was es alles 
gibt, was man damit machen kann und worauf man achten muss. Wenn du ein 
bisschen gelesen hast, meldest du dich einfach wieder.

Allein die Suche nach "Anfänger" im Unterforum /µC & Elektronik/ fördert 
für das letzte Jahr 658 Threads zu Tage.

von Patryk D. (pad_dy)


Lesenswert?

Ich habe mir schon die Microkontroller.net AVR Seite durchgelesen, aber 
ich will von euch wissen, wie Ihr damit so angefangen habt.


Lothar schrieb:

> Was willst du mit einem solchen uC anfangen? Welche Aufgabe
> soll der erledigen?

Zb ein Atmega8 timer mit 7 Segment Anzeigen, oder ne Motorsteuerung, 
sowas halt was man mit einem AVR machen kann.


> Welche Programmiersprache beherrscht du?
> Falls noch keine, dann lerne C.

Bissle was über  habe ich mir auf YT angeschaut, aber sonst keine.

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


Lesenswert?

Patryk D. schrieb:
>> Welche Programmiersprache beherrscht du?
>> Falls noch keine, dann lerne C.
> Bissle was über  habe ich mir auf YT angeschaut, aber sonst keine.
Gut, kauf dir ein C-Buch und fang an zu programmieren. Dazu brauchst du 
noch gar keinen uC und musst auch nichts kaufen. Für erste Gehversuche 
in C reicht schon das hier: http://codepad.org/mb7jlnJb. Vom "Filmchen 
angucken" wirst du das auf jeden Fall nicht lernen. Du musst die Fehler 
selber machen...

von Patryk D. (pad_dy)


Lesenswert?

Wenns dann schon um AVR geht, würde ich zb nen Atmega8 nehmen, und 
versuchen einfach ne LED zum Blinken zu bringen.

Klar, natürlich nicht gleich mit dem Timer anfangen sondern erst die 
Basics.

von Stefan F. (Gast)


Lesenswert?

Ich habe die Grundlagen von Transistorschaltungen und Logikgatter las 
Teenager aus Büchern gelernt. Dann hatte ich eine Ausbildung zum 
Kommunikationselektroniker und danach habe ich privat den Umgang mit µC 
Typen gelernt, die ich heute jedoch nicht mehr verwenden möchte. Damals 
musste man sich noch mit EPROMS herumschlagen.

Ich empfehle Dir AVR oder PIC Mikrocontroller.

Für den preisgünstigen Einstieg eignen sich momentan die Arduino Nano 
Boards sehr gut, denn sie enthalten bei weniger als 5 Euro einen 
Bootloader und ein USB Interface. Man kann sie ohne weitere Hardware 
direkt mit dem PC verbinden und programmieren.

Allerdings rate ich von der Arduino Entwicklungsumgebung ab. Durch ihre 
vorgefertigten Libraries lenkt sie meiner Meinung nach zu sehr von den 
Grundlagen ab. Arduino Entwickler überschätzen ihre eigenen Fähigkeiten 
oft erheblich und stellen trotzdem saudumme Fragen.

Benutze stattdessen für den Anfang einen Texteditor und den avr-gcc 
Compiler. Mit komplexeren Entwicklungsumgebungen beschäftigt man sich 
später, wenn man die Grundlagen verstanden hat.

Apropos Grundlagen: Ich halte es für sinnvoll, möglichst früh ein 
bisschen in Assembler zu programmieren. Dann versteht man einige 
Eigenarten des C-Compilers besser.

http://stefanfrings.de/avr_workshop/index.html
http://stefanfrings.de/avr_hello_world/index.html
http://stefanfrings.de/mikrocontroller_buch/index.html

Ein bisschen spielerisch sind auch die Nibibee und Asuro Roboter, die 
eignen sich gut, wenn man die ersten Schritte bereits hinter sich hat.

Last but not least: Schau Dir das AVR Tutorial hier an:

https://www.mikrocontroller.net/articles/AVR-Tutorial
https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial

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


Lesenswert?

Stefan U. schrieb:
> Apropos Grundlagen: Ich halte es für sinnvoll, möglichst früh ein
> bisschen in Assembler zu programmieren. Dann versteht man einige
> Eigenarten des C-Compilers besser.
Das ist richtig. Vor Allem hat man dann die Möglichkeit, sich bei 
"eigenartigen Fehlern" mal den vom C-Compiler erzeugten Assemblercode 
anzusehen und dem auf die Finger zu sehen...

von Stefan F. (Gast)


Lesenswert?

>Nibibee und Asuro Roboter

Ich meinte Nibobee (mit o) und Asuro Roboter

von Claymore (Gast)


Lesenswert?

Draco schrieb:
> http://www.mikrocontroller.net/articles/AVR

Mit AVR würde ich heute nicht mehr anfangen.

Stefan U. schrieb:
> Benutze stattdessen für den Anfang einen Texteditor und den avr-gcc
> Compiler. Mit komplexeren Entwicklungsumgebungen beschäftigt man sich
> später, wenn man die Grundlagen verstanden hat.

Das kann ich so nicht unterschreiben. Besser gleich mit vernünftigen 
Werkzeugen arbeiten, und dazu gehört ein richtiger Debugger. Sonst 
besteht die Gefahr, dass man sich eine sehr umständliche Arbeitsweise 
bei der Fehlersuche angewöhnt.

Stefan U. schrieb:
> Apropos Grundlagen: Ich halte es für sinnvoll, möglichst früh ein
> bisschen in Assembler zu programmieren. Dann versteht man einige
> Eigenarten des C-Compilers besser.

Das halte ich für optional. Kann man machen, aber der Mehrwert hält sich 
in Grenzen. Für einen Anfänger sowieso.

von Stefan F. (Gast)


Lesenswert?

Wahrscheinlich wirst du noch hunderte ähnlich kontroverse Antworten 
erhalten.

Wirklich wichtig ist, dass du anfängst. Kauf Dir ein paar Teile und lege 
los. Das bringt Dich schneller voran, als endlosen Diskussionen zu 
folgen.

Für PIC und AVR wirst du problemlos genügend Anleitungen im Internet und 
im Buchhandel finden.

von Claymore (Gast)


Lesenswert?

Stefan U. schrieb:
> Für PIC und AVR wirst du problemlos genügend Anleitungen im Internet und
> im Buchhandel finden.

Gleiches gilt für STM32.

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


Lesenswert?

Claymore schrieb:
> Mit AVR würde ich heute nicht mehr anfangen.
Wenn man gleich von vorn herein mit einem 32-Bit ARM anfängt, dann kann 
es leicht sein, dass man sich in der Komplexität verstolpert.

> Mit AVR würde ich heute nicht mehr anfangen.
Ich auch nicht. Aber ich kenne mich inzwischen mit uCs auch ganz gut 
aus. Für den absoluten Anfang einen uC zu nehmen, der nicht viel kann, 
ist nicht falsch. Dann ist das relevante Datenblatt nicht soooooo arg 
dick...

Beim ARM ist schon der Interruptcontroller komplexer als ein alter 8051 
oder ein kleiner AVR.

Oder Andersrum: wenn ich unbedingt "etwas fahren" möchte, dann ist ein 
Dreirad einfacher als ein ICE. Speziell am Anfang.

: Bearbeitet durch Moderator
von Claymore (Gast)


Lesenswert?

Lothar M. schrieb:
> Ich auch nicht. Aber ich kenne mich inzwischen mit uCs auch ganz gut
> aus. Für den absoluten Anfang einen uC zu nehmen, der nicht viel kann,
> ist nicht falsch. Dann ist das relevante Datenblatt nicht soooooo arg
> dick...

Das kommt drauf an, auf welcher Abstraktionsebene man einsteigen will. 
Assembler und Registerebene halte ich für Einsteiger eher ungeeignet und 
bei einer höheren Ebene spielt die Komplexität keine so große Rolle.

von no Debugger (Gast)


Lesenswert?

Claymore schrieb:
> Das kann ich so nicht unterschreiben. Besser gleich mit vernünftigen
> Werkzeugen arbeiten, und dazu gehört ein richtiger Debugger. Sonst
> besteht die Gefahr, dass man sich eine sehr umständliche Arbeitsweise
> bei der Fehlersuche angewöhnt.

Naja Debugger hat's seit 30 Jahren bei mir nie gebraucht.

Es geht auch ohne, wenn mal eine weitere Ausgabemöglichkeit hat und es 
versteht seinen Code auf Richtigkeit zu verifizieren.

von Stefan F. (Gast)


Lesenswert?

Ich wusste, dass die ARM Controller wieder in die Runde geworfen werden. 
Natürlich von den Profis, die sich ganz doll gut auskennen.

Außerdem ist ARM nicht gleich ARM. Die Irritationen beginnen schon 
damit, dass es zahlreiche inkompatible Programmier-Schnittstellen gibt 
und dass jeder Hersteller einen anderen Compiler empfiehlt. Dann geht es 
weiter mit einem Datenblatt, in dem typischerweise nur ein Bruchteil 
dessen drin steht, was man wissen muss. Man sollte eher von einem Satz 
an Datenblättern sprechen, die sich gegenseitig ergänzen und von denen 
jedes typischerweise über 100 Seiten lang ist.

Das kann man doch keinem Anfänger empfehlen. Bedenkt mal, welchen 
Kenntnisstand der TO hat!

Es ist ja nicht so, dass man für den Rest seines Lebens bei dem µC 
bleiben muss, mit dem man angefangen hat.

Aber ganz sicher fängt der Konditor-Lehrling auch nicht mit einer 
dreistöckigen Hochzeitstorte an.

von Claymore (Gast)


Lesenswert?

no Debugger schrieb:
> Naja Debugger hat's seit 30 Jahren bei mir nie gebraucht.
>
> Es geht auch ohne, wenn mal eine weitere Ausgabemöglichkeit hat und es
> versteht seinen Code auf Richtigkeit zu verifizieren.

Ja, das ist die typische Aussage der Debugger-Verweigerer. Die werden 
nur nie erfahren, wie ineffizient ihre Arbeitsweise ist.

Stefan U. schrieb:
> Außerdem ist ARM nicht gleich ARM. Die Irritationen beginnen schon
> damit, dass es zahlreiche inkompatible Programmier-Schnittstellen gibt
> und dass jeder Hersteller einen anderen Compiler empfiehlt. Dann geht es
> weiter mit einem Datenblatt, in dem typischerweise nur ein Bruchteil
> dessen drin steht, was man wissen muss. Man sollte eher von einem Satz
> an Datenblättern sprechen, die sich gegenseitig ergänzen und von denen
> jedes typischerweise über 100 Seiten lang ist.

Vorurteile.

Stefan U. schrieb:
> Das kann man doch keinem Anfänger empfehlen. Bedenkt mal, welchen
> Kenntnisstand der TO hat!

Dann aber Assembler empfehlen!!

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


Lesenswert?

Claymore schrieb:
> Vorurteile.
Gegenbeweise, bitte.

> Stefan U. schrieb:
>> Das kann man doch keinem Anfänger empfehlen. Bedenkt mal, welchen
>> Kenntnisstand der TO hat!
> Dann aber Assembler empfehlen!!
Natürlich ist es unsinnig, auf einem ARM mit Assembler anzufangen. Aber 
man kommt mit einem Dreizeiler bei einem AVR und PIC auch in Assembler 
zu einem ansehnlichen Ergebnis und weiß dann schon mal, was der uC 
alles tun muss, um den gewünschten Effekt zu haben. Und wenn man dann 
noch was komplexeres macht, dass wird einem bei jeder C-Zeile, die man 
später hinschreibt, klar, dass z.B. eine Quadratwurzelberechnung einfach 
Zeit kostet, weil der uC viel zu tun hat. Und das, obwohl es nur ein 
sqrt() in C ist...

von Stefan F. (Gast)


Lesenswert?

> Debugger-Verweigerer. Die werden nur nie
> erfahren, wie ineffizient ihre Arbeitsweise ist.

Ja ist klar. Jedem das Seine.

PS: Ich habe einen Debugger, nutze ihn aber nur selten. Selbst in Java 
Web-Anwendungen (ganz anderes Feld, weiss ich) nutze ich den Debugger 
nur selten, obwohl der prinzipiell richtig prima ist. Warum das so ist, 
verrate ich nicht. Ich hab nämlich keine Lust, von Dir bekehrt zu 
werden.

Wegen der ARM Datenblätter:
> Vorurteile.
Nein, das ist meine persönliche Erfahrung.

> Dann aber Assembler empfehlen!!
Ein BISSCHEN Assembler habe ich OPTIONAL empfohlen. Kann man auch 
bleiben lassen.

von Falk B. (falk)


Lesenswert?

Arduino oder BASCOM sind für den Einstieg recht gut, auch wenn beiden 
das Frickelimage anhaftet. Aber der Anfänger braucht erstmal schnelle 
Erfolgserlebnisse. Durch das Assembler-Bootcamp sollte man heute keinen 
mehr schleifen (müssen). Wenn man mehr will und auch Zeit und Energie 
investieren kann/will, lernt man dann das komplette C bzw. sogar C++!

von Stefan F. (Gast)


Lesenswert?

> Wenn man mehr will und auch Zeit und Energie
> investieren kann/will, lernt man dann das komplette C bzw. sogar C++!

Ich tu mich schwer, mir vorzustellen, wie man die Arduino 
Entwicklungsumgebung ohne komplettes C bzw. C++ benutzen soll.

Fährt man heutzutage auch Auto, ohne in die Fahrschule zu gehen?

Konstruiert man einen Dachstuhl, ohne Ahnung von Statik und Mathematik 
zu haben?

von google (Gast)


Angehängte Dateien:

Lesenswert?

Hi, ich schildere mal meine Erfahrungen.

Ich bin völlig fachfremder µC-Bastler. (Kaufmann Wohnungswirtschaft) Ich 
bastle schon lange zur Entspannung und habe vor nicht allzu langer Zeit 
mit den ARMs begonnen. Ich habe mir bewußt einen ganz einfachen 
ausgesucht, den STM32F030F4 mit 20 Pins.

datasheet 96 Seiten
reference manual 771 Seiten
errate sheet 10 Seiten
programming manual 91 Seiten (nur nötig, wenn ASM benutzt wird)

Alles in Englisch, in allen Dokumenten wird ein grundsätzliches µC und 
Elektronik-Knowhow absolut vorausgesetzt, sonst findest Du keinen 
Einstieg.

Gut, dass ich vorher schon viel mit 8-Bittern (AVR, STM8) rumgemacht 
habe, sonst wäre ich hoffnungslos untergegangen.

Es ist trotzdem mühsam, zumal fürs Basteln nie ein voller Tag zur 
Verfügung steht, sondern meist nur immer ein paar Stunden. Man muss sich 
immer wieder erst neu reinfinden.

Mein Rat: fang mit dem einfachsten und billigsten 8-Bitter an, den Du 
finden kannst. Alternativ mit dem Arduino und einer passenden 
C-Programmierumgebung, z. B. dem gcc.

von Falk B. (falk)


Lesenswert?

@ Stefan Us (stefanus)

>Ich tu mich schwer, mir vorzustellen, wie man die Arduino
>Entwicklungsumgebung ohne komplettes C bzw. C++ benutzen soll.

Das ist dein Problem! Es geht um das ANFANGEN!

>Fährt man heutzutage auch Auto, ohne in die Fahrschule zu gehen?

Nö, aber man fängt klein an, auf dem Dreirad (=Arduino). Dann kann man 
mehr lernen, auch C/C++ (Fahrschule). Man fängt nicht mit dem Formel 1 
Renner an!

>Konstruiert man einen Dachstuhl, ohne Ahnung von Statik und Mathematik
>zu haben?

Niemand hat die Absicht, einen Dachstuhl zu konstruieren ;-)

von Stefan F. (Gast)


Lesenswert?

Macht zusammen fast 1000 Seiten für einen sehr einfachen ARM. Soviel zu 
"Vorurteile".

von Falk B. (falk)


Lesenswert?

>Fährt man heutzutage auch Auto, ohne in die Fahrschule zu gehen?

Nachtrag: Natürlich muss man auch bei BASCOM und Arduino die Grundlagen 
lernen, sonst ist auch dort nach dem Kopieren von Sketches schnell 
Schicht im Schacht! Dazu braucht man ein GUTES Lehrbuch, die Doku von 
BASCOM oder Arduino reicht bei weitem NICHT!

von mr. mo (Gast)


Lesenswert?

Falk B. schrieb:
> Arduino oder BASCOM sind für den Einstieg recht gut, auch wenn beiden
> das Frickelimage anhaftet. Aber der Anfänger braucht erstmal schnelle
> Erfolgserlebnisse.

Wäre ebenfalls meine Empfehlung. Vor einigen Jahren hätte ich direkt 
hier auf das AVR Tutorial verwiesen, aber das ist für "n00bs" 
wahrscheinlich ein wenig zu hoch.

Nehm einen Arduino, da haste alles was du brauchst und so viele 
Beispiele das man da sehr schnell einen Einstieg findet und die ersten 
Erfolgserlebnisse nicht lange auf sich warten lassen. Die Grundkonzepte 
kann man da auch einigermaßen erlernen und man weiß worum es geht.

Wenn dann die Motivation nicht verflogen ist und immer noch Interesse an 
µC besteht kannst du dir das AVR Tutorial ansehen und ordentliches 
Programmieren lernen.

Anschließend kann man sich immer noch einen ARM vornehmen, wie z.B. 
einen Arduino DUE (dann bleibts in der Atmel Familie) oder STM32 oder 
... oder ... oder ... oder ....

von Patryk D. (pad_dy)


Lesenswert?

Stefan schrieb:

> Wahrscheinlich wirst du noch hunderte ähnlich kontroverse Antworten
> erhalten.


Wird ja alleine 2 Stunden dauern um die durchzulesen ;D

von Knirps Wikikinger (Gast)


Lesenswert?

> Das kommt drauf an, auf welcher Abstraktionsebene man einsteigen will.
> Assembler und Registerebene halte ich für Einsteiger eher ungeeignet und
> bei einer höheren Ebene spielt die Komplexität keine so große Rolle.

  Genau darum geht ein Arduino mit ArduinoIDE auch, besonders für n00bs 
welche sich erst an die Denke des Programmierens ranzutasten brauchen.

  Auch richtig ist dass die Qualität hinter der Kulisse von Arduino 
nicht die beste ist.

  Ob man nun die ersten Schritte C/C++ (also Variablen, Funktionen, 
Kontrollstrukturen, einfache Algorithmen) auf Tischrecner oder Arduino 
tut spielt keine Rolle.

  Wenn's dann ans Eingemachte geht, bekommt mann sowieso eigene 
Lieblingsgeschmäcker: die einen f. AVRs, andere f. Kinetis, jene f. 8 
bits, andere f. Hochsprachen usw.
  Einigung ist dann nicht mehr möglich ;-) Selbständigkeit ist dann 
gefragt.

von Rolf M. (rmagnus)


Lesenswert?

Claymore schrieb:
> Stefan U. schrieb:
>> Benutze stattdessen für den Anfang einen Texteditor und den avr-gcc
>> Compiler. Mit komplexeren Entwicklungsumgebungen beschäftigt man sich
>> später, wenn man die Grundlagen verstanden hat.
>
> Das kann ich so nicht unterschreiben. Besser gleich mit vernünftigen
> Werkzeugen arbeiten, und dazu gehört ein richtiger Debugger.

Das eine hat mit dem anderen erstmal nichts zu tun. Ich finde es 
durchaus auch sinnvoll, zu verstehen, was der Compiler und der Linker 
tut, wie sie sich die Arbeit aufteilen und wie so dann aus dem Quellcode 
ein ausführbares Programm wird. Auch Makefiles sollte man grundlegend 
verstanden haben. Eine IDE versteckt das alles, und wenn man mal mehr 
als die Voreinstellungen braucht, hat man keine Ahnung, wie das 
funktioniert.

Claymore schrieb:
> Stefan U. schrieb:
>> Apropos Grundlagen: Ich halte es für sinnvoll, möglichst früh ein
>> bisschen in Assembler zu programmieren. Dann versteht man einige
>> Eigenarten des C-Compilers besser.
>
> Das halte ich für optional. Kann man machen, aber der Mehrwert hält sich
> in Grenzen. Für einen Anfänger sowieso.

Bei einem AVR ist der Assembler recht leicht zu verstehen. Es kommt 
letztendlich auch darauf an, was man will. Ist die µC-Programmierung 
etwas, das man als Beiwerk braucht für das, was man eigentlich machen 
will, oder ist die eher der primäre Zweck? In letzterem Fall würde ich 
es auch empfehlen, Assembler zu lernen.

Stefan U. schrieb:
> Wirklich wichtig ist, dass du anfängst. Kauf Dir ein paar Teile und lege
> los. Das bringt Dich schneller voran, als endlosen Diskussionen zu
> folgen.

Ja, aber die Grundlagen von C würde ich trotzdem erstmal auf dem PC 
lernen und dann auf den µC übertragen. Man muss nicht erst zum 
Programmiergott werden, bevor man mit den µCs anfängt, aber wenigstens 
die absoluten Grundlagen schon zu beherrschen ist kein Fehler. Das 
Ausprobieren und Debuggen des Code ist auf dem PC einfacher.

Lothar M. schrieb:
>> Mit AVR würde ich heute nicht mehr anfangen.
> Ich auch nicht. Aber ich kenne mich inzwischen mit uCs auch ganz gut
> aus. Für den absoluten Anfang einen uC zu nehmen, der nicht viel kann,
> ist nicht falsch. Dann ist das relevante Datenblatt nicht soooooo arg
> dick...

So habe ich das gemacht. Ich habe mir einen ATtiny13 genommen und dessen 
Datenblatt komplett durchgelesen. Dann ein paar Programme in Assembler 
geschrieben und dann auf C und größere AVRs umgestiegen (wobei ich C 
allgemein vorher schon sehr gut kannte). Diese Art von Einstieg ist aber 
sicher nicht für jeden das richtige.

> Oder Andersrum: wenn ich unbedingt "etwas fahren" möchte, dann ist ein
> Dreirad einfacher als ein ICE. Speziell am Anfang.

Beim Dreirad muss ich lenken, beim ICE nicht. ;-)

Stefan U. schrieb:
> Es ist ja nicht so, dass man für den Rest seines Lebens bei dem µC
> bleiben muss, mit dem man angefangen hat.

Richtig. Für den Einstieg was möglichst einfaches zu nehemen, ist kein 
Fehler. Wenn man das Prinzip mal verstanden hat und sowieso in C 
programmiert, ist ein Umstieg nachher dann auch nicht mehr so schwer.

Claymore schrieb:
> no Debugger schrieb:
>> Naja Debugger hat's seit 30 Jahren bei mir nie gebraucht.
>>
>> Es geht auch ohne, wenn mal eine weitere Ausgabemöglichkeit hat und es
>> versteht seinen Code auf Richtigkeit zu verifizieren.
>
> Ja, das ist die typische Aussage der Debugger-Verweigerer. Die werden
> nur nie erfahren, wie ineffizient ihre Arbeitsweise ist.

Ich finde, es kommt drauf an. Manchmal ist der Debugger die einfachere 
Möglichkeit, manchmal die Debug-Ausgaben oder -Anzeigen. Es kommt meines 
Erachtens immer auf den Einzelfall an.

> Stefan U. schrieb:
>> Außerdem ist ARM nicht gleich ARM. Die Irritationen beginnen schon
>> damit, dass es zahlreiche inkompatible Programmier-Schnittstellen gibt
>> und dass jeder Hersteller einen anderen Compiler empfiehlt. Dann geht es
>> weiter mit einem Datenblatt, in dem typischerweise nur ein Bruchteil
>> dessen drin steht, was man wissen muss. Man sollte eher von einem Satz
>> an Datenblättern sprechen, die sich gegenseitig ergänzen und von denen
>> jedes typischerweise über 100 Seiten lang ist.
>
> Vorurteile.

Wohl eher Praxis-Erfahrung. Zumindest entspricht das meiner Erfahrung 
mit ARM-Prozessoren.

> Stefan U. schrieb:
>> Das kann man doch keinem Anfänger empfehlen. Bedenkt mal, welchen
>> Kenntnisstand der TO hat!
>
> Dann aber Assembler empfehlen!!

Auf einem ARM würde ich den auch keinem empfehlen. Auf dem AVR schon.

von Wolfgang (Gast)


Lesenswert?

Claymore schrieb:
> Das halte ich für optional. Kann man machen, aber der Mehrwert hält sich
> in Grenzen. Für einen Anfänger sowieso.

Es hat noch niemand geschadet, zu wissen was er tut oder anrichtet, wenn 
er später in einer höheren Programmiersprache irgendwelche Tools 
verwendet oder ach so bequeme Libraries einbindet. Hinterher ist das 
Geschrei groß, wenn auf einem kleinen µC eine unbedachte Float-Operation 
oder ein Printf() plötzlich den Speicher verstopfen.

Man kann natürlich auch auf dem Standpunkt stehen, dass sich effiziente 
Programme vor allem durch möglichst geringe Nutzung der Resource 
Gehirn auszeichnen.

von Michael U. (amiga)


Lesenswert?

Hallo,

Claymore schrieb:
> Stefan U. schrieb:
>> Benutze stattdessen für den Anfang einen Texteditor und den avr-gcc
>> Compiler. Mit komplexeren Entwicklungsumgebungen beschäftigt man sich
>> später, wenn man die Grundlagen verstanden hat.
>
> Das kann ich so nicht unterschreiben. Besser gleich mit vernünftigen
> Werkzeugen arbeiten, und dazu gehört ein richtiger Debugger. Sonst
> besteht die Gefahr, dass man sich eine sehr umständliche Arbeitsweise
> bei der Fehlersuche angewöhnt.

Ein Debugger ist nur so gut wie der Kenntnisstand des Benutzers.
Als ich anfing gab es keine Debugger oder welcher Z80-Debugger wäre 
hätte es sein sollen?

Man mußte sich den eigenen Kopf zerbrechen und Hilfsmittel nutzen. Eine 
LED am Portpin oder eben die serielle Schnittstelle.
Beides gibt es immernoch für jeden nutzbar.
Testen, ob ein Programmpunkt überhaupt erreicht wird, sich die Inhalte 
einiger Variablen auszugeben, geht damit problemlos. Man muß anhand des 
eigenen Programms ohnhin ergründen warum in Variable x nicht die 
erwartete 10 sondern 85 steht. Nur ganau das muß man nachen und können.
Hilfloses studieren aller Registerinhalte und darüber ewig rätseln, wie 
der Inhalt JEDES Registers zustandegekommen ist, koste Zeit und hilft 
nicht weiter.
Genau das passiert aber gern, wenn man einen komplexen Debugger hat und 
meint, der findet Fehler schneller.
DebugWire auf einem ATTiny ist praktisch, bis man es aber wirklich mal 
braucht, hat man schon etliche Projekte ohne erledigt.
Eine Tafel mit 100 Instrumenten nutzt mir im Problemfall garnichts, wenn 
ich nicht weiß, auf welches ich bei Problem x schauen muß.
Wenn ich das aber weiß, dann reicht genau ein Instrument.

Gruß aus Berlin
Michael

von Klüngelliese330 (Gast)


Lesenswert?

Also Ich bin kein Vollprofi in Sachen µC programmieren, kann auch 
kaum/nicht Assembler. Ich programmiere seit ca.1 Jahr µC(vorher aber 
andere Sprachen) und bei mir ist es so: Ich habe einen Arduino nano/Uno 
und ein Stk500 mit ua. Atmega8 zu Hause und wenn ich schnell etwas 
programmieren möchte, habe ich auch bis noch nicht allzu langer Zeit 
lieber auf den Arduinos mit USB interface programmiert, als mich erst in 
die Ansteuerung des Boards reinzufuchsen. Inzwischen tut sich da nicht 
mehr SO viel. Da hab ich dann schnell Erfolge, als mich erst über die 
genaue Erzeugung eines Signals Gedanken zu machen.
...Eig ist es bei mir so, Ich beschäftige mich x Stunden 
durchschnittlich damit und dann merke ich schon wie ich automatisch 
besser werde. MMn ist das wichtigste Spass an µC und programmieren zu 
haben, dann kommt der Rest schon von alleine mit der Zeit.

von ach ja doch (Gast)


Lesenswert?

Falk B. schrieb:
> Arduino oder BASCOM sind für den Einstieg recht gut

Warum nicht LunaAVR?

http://avr.myluna.de/doku.php

Hat doch alles was es für erste Erfolge braucht.

http://avr.myluna.de/lib/exe/fetch.php?media=de:2013r6.jpg

von Claymore (Gast)


Lesenswert?

Lothar M. schrieb:
> Claymore schrieb:
>> Vorurteile.
> Gegenbeweise, bitte.

Die Datenblätter des STM32.

Aber darum geht es gar nicht. Die Arbeit auf Registerebene ist für einen 
Anfänger immer (auch bei AVR) eine riesige Einstiegshürde, mit einer HAL 
dagegen kann jeder, der auf PC programmieren kann, viel besser umgehen. 
Das ist zumindest meine Erfahrung.

Lothar M. schrieb:
> Natürlich ist es unsinnig, auf einem ARM mit Assembler anzufangen. Aber
> man kommt mit einem Dreizeiler bei einem AVR und PIC auch in Assembler
> zu einem ansehnlichen Ergebnis und weiß dann schon mal, was der uC
> alles tun muss, um den gewünschten Effekt zu haben.

Hier tappst du in die gleiche Falle, die du mir vorgeworfen hast. Um 
Assembler zu verstehen, muss man sich erst einmal sehr tiefes 
theoretisches Wissen aneignen. Man muss sehr gut verstehen, wie ein 
Prozessor funktioniert, bevor man auch nur eine Zeile Assemblercode 
schreiben kann. Das ist für einen Anfänger eine riesige Hürde.

Rolf M. schrieb:
> Ich finde, es kommt drauf an. Manchmal ist der Debugger die einfachere
> Möglichkeit, manchmal die Debug-Ausgaben oder -Anzeigen. Es kommt meines
> Erachtens immer auf den Einzelfall an.

Natürlich braucht man beide Methoden, das habe ich auch nie bestritten. 
Aber wenn man keinen Debugger benutzt, verschenkt man eine Menge 
Möglichkeiten, die man mit ineffizienten Methoden ersetzen muss.

von google (Gast)


Lesenswert?

Claymore schrieb:
> [eine ganze Menge vernünftiger Argumente]

Wir reden hier nicht von einem E-Ing. oder einem Informatikstudenten, 
sondern von einem Anfänger bei Null.

Auf akademischen Niveau sind Deine Argumente alle vernünftig und 
richtig. Aber wir reden hier von jemandem, der damit nicht Geld 
verdienen und das den ganzen Tag lang machen will, demzufolge bis in die 
absolutesten Tiefen einsteigen muss, sondern von einem Bastler mit 
begrenztem Zeit- und Geduldbudget, dem ein grundlegendes Verständnis 
reicht, um seine LEDs auf dem Steckbrett blinken und seine Schrittmotore 
drehen zu lassen.

von Wolfgang (Gast)


Lesenswert?

Claymore schrieb:
> Man muss sehr gut verstehen, wie ein Prozessor funktioniert, bevor man
> auch nur eine Zeile Assemblercode schreiben kann. Das ist für einen
> Anfänger eine riesige Hürde.

In Zeiten von "mal eben schnell" und "plug-and-play" ist das natürlich 
ganz pöse. Wo kämen wir denn hin, wenn jeder wüsste, was er tut.

Die schnell mal eingebundenen Bibliotheken fallen übrigens auch nicht 
vom Himmel, sondern das muss sich auch jemand hinsetzen und gucken, wie 
irgendein Sensor auf Registerebene behandelt werden will.

Und wehe, "plug-and-play" spielt nicht. Dann steht man ohne 
Grundlagenwissen schnell doof da und das Geschrei ist groß, weil man 
nicht weiss, wo man anfangen soll, um Fehlern auf den Grund zu gehen. 
Gerade auf µC kommt man um die Register-Ebene nicht drumrum, wenn man 
nicht nur auf ausgetretenen Pfaden irgendetwas abkupfern will.

von Claymore (Gast)


Lesenswert?

google schrieb:
> Wir reden hier nicht von einem E-Ing. oder einem Informatikstudenten,
> sondern von einem Anfänger bei Null.
>
> Auf akademischen Niveau sind Deine Argumente alle vernünftig und
> richtig.

Nein, ganz im Gegenteil. Gerade als blutiger Anfänger ohne 
elektrotechnische oder informationstechnische Grundausbildung ist 
Low-Level-Programmierung (und dann noch in Assembler) eine sehr riesige 
Hürde. Deshalb würde ich High-Level-Programmierung (also zumindest mit 
einer HAL, meinetwegen auch Arduino) vorschlagen.

Welche Prozessorplattform darunter steckt, spielt dann keine Rolle. Das 
kann dann meinetwegen auch wieder ein AVR sein.

von Claymore (Gast)


Lesenswert?

Wolfgang schrieb:
> In Zeiten von "mal eben schnell" und "plug-and-play" ist das natürlich
> ganz pöse. Wo kämen wir denn hin, wenn jeder wüsste, was er tut.

Von einem Profi mit einer formalen Ausbildung sollte man natürlich ein 
tiefes Wissen erwarten. Von einem Bastler muss man das nicht.

Wolfgang schrieb:
> Die schnell mal eingebundenen Bibliotheken fallen übrigens auch nicht
> vom Himmel, sondern das muss sich auch jemand hinsetzen und gucken, wie
> irgendein Sensor auf Registerebene behandelt werden will.

Das kann ja ein Profi machen. Wieso sollte man das einem Anfänger 
zumuten?

Wolfgang schrieb:
> Dann steht man ohne
> Grundlagenwissen schnell doof da und das Geschrei ist groß, weil man
> nicht weiss, wo man anfangen soll, um Fehlern auf den Grund zu gehen.

Also besser den Leuten, die sich damit nicht beschäftigen wollen, den 
Einstieg ganz verbieten, wenn sie keine theoretische Prüfung über 
Prozessortechnik schaffen?

Wolfgang schrieb:
> Gerade auf µC kommt man um die Register-Ebene nicht drumrum, wenn man
> nicht nur auf ausgetretenen Pfaden irgendetwas abkupfern will.

Das ist ziemlicher Blödsinn. Mit einer vernünftigen HAL oder einem RTOS 
kann man auf Anwendungsseite viel mehr machen, bei weniger 
Initialaufwand.

von Falk B. (falk)


Lesenswert?

@ ach ja doch (Gast)

>> Arduino oder BASCOM sind für den Einstieg recht gut

>Warum nicht LunaAVR?

Meinetwegen auch das, ich kenn LunaAVR nicht wirklich, eigentlich nur 
den Namen. Was mir daran nicht gefällt ist, daß es das Rad "neu" 
erfindet. Eine Sprache, ähnlich C aber dennoch kein C. Das ist was für 
Liebhaber von Exoten. Die meisten sind mit C(C++) deutlich besser 
bedient, das ist Standard und dementsprechend verbreitet.

von Stefan F. (Gast)


Lesenswert?

> Man muss sehr gut verstehen, wie ein
> Prozessor funktioniert, bevor man auch nur eine Zeile
> Assemblercode schreiben kann. Das ist für einen Anfänger
> eine riesige Hürde.

Dieses Argument leuchtet mir nicht ein. Möglicherweise, weil ich mit 
Assembler angefangen habe.

Bei viele Mikrocontrollern (so auch AVR) kann ich mit einer einzigen 
Assembler Zeile eine LED einschalten:
1
#include "tn13def.inc"
2
    sbi ddrb,1  
3
ende:
4
    rjmp ende

Und ich brauche nur einen zweiten Befehl, um daraus ein vollständiges 
Programm zu machen. Zwei Befehle, von denen einer eine 1:1 Beziehung zur 
Hardware und dem Datenblatt hat. Was ist daran komliziert? Wo ist das 
Problem?

Das gleiche Programm sieht für jemanden, der noch nie programmiert hat, 
in C übrigens nicht einfacher aus:
1
#include <avr/io.h>
2
3
void main()
4
{
5
  DDRB |= (1<<1);
6
  while(1);
7
}

Klar, das war ein Extrem Beispiel. Doch fangen ANfänger mit derart 
einfachen Programmen an, sollte man meinen.

Ich möchte heute niemanden mehr dazu drängen, das ERSTE Programm in 
Assembler zu schreiben. C ist sicher einfacher und ohnehin quasi 
Standard.

Empfehlenswert ist ein bisschen Assebler dennoch, vor allem wenn man den 
C Compiler verdächtigt, falschen Code erzeugt zu haben. Gerade Anfängern 
passiert das öfters.

Nicht umsonst werden "seltsame" Verhaltensweisen von C hier im Forum 
häufig anhand des generierten Assembler Codes erklärt und auch 
optimiert. Auch wenn am Ende doch nur der C Quelltext verbessert wird.

von google (Gast)


Lesenswert?

Claymore schrieb:

> Hürde. Deshalb würde ich High-Level-Programmierung (also zumindest mit
> einer HAL, meinetwegen auch Arduino) vorschlagen.
>
> Welche Prozessorplattform darunter steckt, spielt dann keine Rolle. Das
> kann dann meinetwegen auch wieder ein AVR sein.

Das meine ich. Wenn es auf hohem Abstraktionsniveau und somit egal ist, 
womit er anfängt, dann reicht das in Bastler/Maker-Kreisen am weitesten 
verbreitete und unterstützte aus, also Arduino/AVR. Und wenn er 
vertiefen will, hat er einen 8-Bitter drunter, den man gut durchschauen 
kann, weil alles (im Vergleich zu den ARMen) noch sehr wenig kompliziert 
ist.

von Stefan F. (Gast)


Lesenswert?

>Warum nicht LunaAVR?

Ich glaube, bisher hat in diesem Thread noch niemand von LunaAVR 
abgeraten. Ich kann es nicht empfehlen, weil ich davon 0,0 Ahnung habe. 
Aber du kannst es vielleicht empfehlen. Schreib uns doch mal, warum Dir 
LunaAVR besonders gefällt und wo die wesentlichen Unterschiede zu den 
bisherigen Vorschlägen (C, C++, BASCOM) sind.

Was ich prima finde: Für AVR Mikrocontroller hat man freie Wahl zwischen 
zahlreichen Programmiersprachen. Ist das bei anderen µC auch so?

von Claymore (Gast)


Lesenswert?

Stefan U. schrieb:
> Zwei Befehle, von denen einer eine 1:1 Beziehung zur
> Hardware und dem Datenblatt hat. Was ist daran komliziert? Wo ist das
> Problem?

Dass man etwas mehr machen möchte als eine LED einschalten, sollte 
eigentlich logisch sein. Spätestens wenn man arithmetische Funktionen 
umsetzen will, muss man sich schon tiefer mit der Architektur 
beschäftigen. Für jemanden ohne entsprechende Vorbildung ist das nicht 
so einfach wie du es dir vorstellst.

Stefan U. schrieb:
> Das gleiche Programm sieht für jemanden, der noch nie programmiert hat,
> in C übrigens nicht einfacher aus:

Dass Arbeit auf Registerebene für einen Einsteiger immer eine größere 
Hürde ist, habe ich ja schon mehrfach erwähnt.

von Claymore (Gast)


Lesenswert?

Stefan U. schrieb:
> Was ich prima finde: Für AVR Mikrocontroller hat man freie Wahl zwischen
> zahlreichen Programmiersprachen. Ist das bei anderen µC auch so?

Die Auswahl ist bei anderen Controllern eher größer.

von Hobbyfrickler (Gast)


Lesenswert?

>Um Assembler zu verstehen, muss man sich erst einmal sehr tiefes
>theoretisches Wissen aneignen. Man muss sehr gut verstehen, wie ein
>Prozessor funktioniert, bevor man auch nur eine Zeile Assemblercode
>schreiben kann.

Bullshit, um auf einem 8Nit-AVR eine LED blinken zu lassen muß ich weder 
Assembler "studieren", noch die Prozessorarchitektur im Detail 
verstehen.

Ja, ihr Profis seid wirklich ungemein gescheit. Da ist es schon fast 
Gotteslästerung, wenn man viele Sachen auch ohne unnötigen Studium 
hinbekommt.

von Wolfgang (Gast)


Lesenswert?

google schrieb:
> Wenn es auf hohem Abstraktionsniveau und somit egal ist,
> womit er anfängt, dann reicht das in Bastler/Maker-Kreisen am weitesten
> verbreitete und unterstützte aus, also Arduino/AVR.

Gerade Arduino ist ein gutes Beispiel. Schon wenn man einfach nur mal 
einen kurzen Puls auf einem Pin erzeugen will, ist man mit dem ach so 
tollen Abstraktionslevel am Ende. Da ist es schon sehr hilfreich, wenn 
nicht schon bei digitalWrite() der Horizont kommt, sondern man noch 
etwas mehr vom System weiß. Man muss nicht immer auf Registerebene 
runter gehen, aber in kritischen Fällen erleichtert es die Dinge 
ungemein, wenn man damit umgehen kann. Und das lernt man in Assembler - 
ganz direkt an der Hardware.

von Stefan F. (Gast)


Lesenswert?

Wegen High-Level Programmierung versus Low-Level Programmierung:

Ich habe Computertechnik von "unten" nach "oben" gelernt. Zuerst habe 
ich mich mit Logikgattern, Speicher, ALU, Netzteilen, CRT Bildschirmen, 
etc beschäftigt.

Ich wusste, wie der C64 funktioniert, bevor ich ihn zum ersten mal auf 
dem Tisch stehen hatte.

Und dann habe ich den zuerst in Assembler programmiert, was wohl auch 
daran lag, das dessen Basic sehr bescheiden war. Letztendlich musste ich 
mich zwangsläufig mit den Registern der ganzen Chips befassen.

Für mich hat sich das allerdings ganz "natürlich" angefühlt. Wenn ich 
einen Pin am User-Port abfragen will, muss ich den dahinter liegenden 
Chip ansprechen. Und der stellt laut Datenblatt seine Funktionen über 
die Register bereit. Also spreche ich Register an. Was sonst?

PC's programmiere ich inzwischen mit Hilfe von Betriebsystem und 
Frameworks auf High-Level Ebene. Also kenne ich auch den umgekehrten 
Weg. Am PC erreiche ich mit wenigen Zeilen Code großartige Sachen. Da 
lese ich nicht mehr hunderte Seiten Datenblätter, sondern hunderte 
Seiten Anleitungen von Frameworks. Beim PC habe ich nur ganz vage Ahnung 
von dem, was sich innerhalb des Gehäuses abspielt, wenn ich z.B. einen 
SOAP Service programmiere.

Zurück zur Hardware: Wenn ich meine Modelleisenbahn mit dem PC verbinde, 
brauche ich ein Interface, das ich Low-Level programmieren kann. Wo ich 
jedes Bit einzeln setzen und abfragen kann. Dazu schließe ich einen µC 
an den USB Bus an und den programmiere ich dann wieder auf 
Registerebene.

Ich Maße mir allerdings nicht an, den einen oder anderen Weg als falsch 
zu bezeichnen. Viele Wege führen nach Rom.

Als Elektroniker fühlt sich das Programmieren von Bits und Registern 
natürlicher an, als abstrahierende Frameworks zu benutzen.

von Patryk D. (pad_dy)


Lesenswert?

Claymore schrieb:

> Anfänger ohne elektrotechnische

Mit der Elektronik kenne ich mich schon aus, nur will ich auch noch in 
mein Hobby µC einbringen, die können mehr als nur n 40er Logik.


So viele Antworten, das kann ich nichtmal lesen!

von Stefan F. (Gast)


Lesenswert?

Ich zittiere mal aus einem anderen Thread, wo es um Arduino mit ARM 
geht. Da haben wir nämlich ein aktuelle konkretes Beispiel zur 
Diskussion um HAL:

"Die Takterzeugung ist aber für mich nicht überschaubar, da ich auch 
kein
Programmierprofi bin"

Das ist doch typisch. Hier hilft ihm weder die Programmiersprache noch 
das Arduino Framework. Spätestens jetzt muss sich der Kollege doch mit 
Registern auseinander setzen - unabhängig von der Programmiersprache.

von Ralph S. (jjflash)


Lesenswert?

... und wieder herrscht ein Glaubenskrieg der mit dem Originalthread nix 
zu tun hat....

Smile, eine Anfrage nach dem "richtigen" Controller und der "richtigen" 
Programmierung endet immer in einem endlosen Thread ...

Irre ...

Schönen Sonntag,
Ralph

von Wolfgang (Gast)


Lesenswert?

Patryk D. schrieb:
> So viele Antworten, das kann ich nichtmal lesen!

Warum fragst du dann so allgemein?

von Claymore (Gast)


Lesenswert?

Stefan U. schrieb:
> Wegen High-Level Programmierung versus Low-Level Programmierung:
>
> Ich habe Computertechnik von "unten" nach "oben" gelernt. Zuerst habe
> ich mich mit Logikgattern, Speicher, ALU, Netzteilen, CRT Bildschirmen,
> etc beschäftigt.

Das ist soweit ja nachvollziehbar, wenn man so startet.

Aber der Weg heutzutage ist doch eher umgekehrt. Die Leute kommen aus 
der PC-Software-Welt und kommen irgendwann auf die Idee, etwas reales zu 
basteln. Da macht es schon Sinn, mit High-Level einzusteigen und sich 
nach unten vor zu kämpfen.

Ich kenne den Weg so herum, als Kind habe ich mich mehr mit Software 
beschäftigt und bin erst durch die formale Ausbildung über Assembler, 
FPGA und Halbleitertechnik auch nach ganz unten durch gekommen. Für 
reale Anwendungen brauche ich das aber in der Regel nicht. Da kann ich 
zu 90% mit einem fertigen RTOS arbeiten.

von Claymore (Gast)


Lesenswert?

Stefan U. schrieb:
> "Die Takterzeugung ist aber für mich nicht überschaubar, da ich auch
> kein
> Programmierprofi bin"
>
> Das ist doch typisch. Hier hilft ihm weder die Programmiersprache noch
> das Arduino Framework. Spätestens jetzt muss sich der Kollege doch mit
> Registern auseinander setzen - unabhängig von der Programmiersprache.

Das ist eindeutig eine Schwäche des Frameworks und kein Problem der 
Methodik an sich.

von Rolf M. (rmagnus)


Lesenswert?

Claymore schrieb:
> Stefan U. schrieb:
>> Zwei Befehle, von denen einer eine 1:1 Beziehung zur
>> Hardware und dem Datenblatt hat. Was ist daran komliziert? Wo ist das
>> Problem?
>
> Dass man etwas mehr machen möchte als eine LED einschalten, sollte
> eigentlich logisch sein. Spätestens wenn man arithmetische Funktionen
> umsetzen will, muss man sich schon tiefer mit der Architektur
> beschäftigen.

Es geht ja nicht darum, dass ein Anfänger gleich eine Floatingpoint-Lib 
in Assembler implementieren soll. Und er soll auch nicht die ersten 10 
Jahre nur in Assembler programmieren.

> Dass Arbeit auf Registerebene für einen Einsteiger immer eine größere
> Hürde ist, habe ich ja schon mehrfach erwähnt.

Das ist einer der Gründe, aus denen ich die ersten Schritte der 
C-Programmierung auf dem PC empfehlen würde. Da kann man sich erstmal 
auf die Sprache selbst konzentrieren und muss nicht gleich noch nebenher 
den Umgang mit Registern und den dahinterstehenden Hardware-Einheiten 
lernen.

Ralph S. schrieb:
> endet immer in einem endlosen

Hm?

von ach ja doch (Gast)


Lesenswert?

Falk B. schrieb:
> @ ach ja doch (Gast)
>
>>> Arduino oder BASCOM sind für den Einstieg recht gut
>
>>Warum nicht LunaAVR?
>
> Meinetwegen auch das, ich kenn LunaAVR nicht wirklich, eigentlich nur
> den Namen. Was mir daran nicht gefällt ist, daß es das Rad "neu"
> erfindet. Eine Sprache, ähnlich C aber dennoch kein C. Das ist was für
> Liebhaber von Exoten. Die meisten sind mit C(C++) deutlich besser
> bedient, das ist Standard und dementsprechend verbreitet.

Ach was, wichtig ist nicht "dem Standard" hinterherzulaufen (das machen 
schließlich die gefühlten 2^10 anderen 
Programmier-Dialekte/Varianten/Derivate, die ständig entstshen, auch 
nicht. Oder warum gibt es ein C ähnliches gockel-go oder die zahlreichen 
BASIC-Dialekte, zu denen auch BASCOM sich gesellt?!

Entscheidend ist nach meinem Empfinden eine gut gepflegte Webseite mit 
zahlreichen Code-Beispielen und brauchbarer Dokumentation, nicht das 
formale, automatisiert-erzeugte Gedöns, was einem heutzutage so oft um 
die Ohren gehauen wird. Sondern eine Doku VOM Anwender FÜR den Anwender. 
Als Beispiel möchte ich hier mal die integrierte Hilfefunktion der alten 
DOS Borland Produkte Turbo Pascal und Turbo C++ anführen. Ein Blick und 
man wusste, wie etwas zu benutzen ist. Die Delhi-Webseiten 
beispielsweise sind diesbezüglich auch heute noch sehr gut gepflegt. Die 
LunaAVR Webseite erfüllt diese Anforderung ähnlich gut (jedenfalls auf 
den ersten Blick). Und wer sagt denn, dass man dabei bleiben MUSS und 
sich nicht gleichzeitig für alles andere offen halten kann? Sonst könnte 
man ja auch kein C# verwenden, aus Angst "dem Standard C/C++" abtrünnig 
zu werden. Das ist doch Unsinn.

Bitte keine Denkverbote und NoGo's aussprechen. Erlaubt ist was gefällt, 
funktioniert und nutzt. "Spiel nicht mit den Schmuddelkindern" (BASCOM, 
LunaAVR) "sing nicht ihre Lieder" ... ist doch nur die alte Angst vor 
Konkurrenz ..

Also keine Glaubenskriege befeuern, keinen Denkverboten nacheifern. 
Einfach vorurteilsfrei herangehen. Die Grundschule beginnt auch mit 
starken Vereinfachungen und nicht mit dem Stoff fürs Abitur.

von Stefan F. (Gast)


Lesenswert?

> Das ist eindeutig eine Schwäche des Frameworks und
> kein Problem der Methodik an sich.

Patryk möchte sich mit µC beschäftigen, nach Methodik und Frameworks hat 
er nicht gefragt.

Patryk, sag du uns doch mal, ob du dich eher mit der Hardware (Chips, 
Register, Bits) beschäftigen möchtest, oder mit High-Level 
Programmierung der Art 
loadFile("ftp://name:password@192.168.100.1/myFile.txt") ?

Wie du siehst können wir für beides viel helfen. Nun aber alle 
Möglichkeiten durchzudiskutieren ohne deine Meinung einzubeziehen, 
bringt dich nicht wirklich weiter. Es sei denn, du wolltest genau diese 
Diskussion.

von Claymore (Gast)


Lesenswert?

Rolf M. schrieb:
> Es geht ja nicht darum, dass ein Anfänger gleich eine Floatingpoint-Lib
> in Assembler implementieren soll. Und er soll auch nicht die ersten 10
> Jahre nur in Assembler programmieren.

Nein, aber für jedes reale Projekt, was etwas mehr als nur "eine LED 
blinken" ist, wird Assembler sehr schnell unnötig kompliziert. Gerade 
für Anfänger sind solche Anwendungen ohne realen Bezug eher 
frustrierend, weil kein spürbarer Fortschritt erreicht ist.

Unter einer realen Anwendung verstehe ich so etwas wie "einen 
Beschleunigungssensor über I2C auslesen, die Daten verarbeiten und die 
Ausgabe per USB/Ethernet/WLAN an den PC übertragen".

Rolf M. schrieb:
> Das ist einer der Gründe, aus denen ich die ersten Schritte der
> C-Programmierung auf dem PC empfehlen würde. Da kann man sich erstmal
> auf die Sprache selbst konzentrieren und muss nicht gleich noch nebenher
> den Umgang mit Registern und den dahinterstehenden Hardware-Einheiten
> lernen.

Das ist auf jeden Fall empfehlenswert. Aber man muss ja auch nicht 
gleich von PC-Programmierung auf die Registerebene springen, sondern 
kann noch die Zwischenebene mitnehmen. Bei größeren Projekten braucht 
man das dann sowieso.

von Stefan F. (Gast)


Lesenswert?

> Gerade für Anfänger sind solche Anwendungen ohne realen
> Bezug eher frustrierend, weil kein spürbarer Fortschritt
> erreicht ist.

Du hast übersehen, dass ich ganz weit oben auf ein Assembler Tutorial 
verlinkt habe, welches Schritt für Schritt mit einem popeligen ATtiny13 
ein elektronisches Spiel entwickelt. Jede einzelne Codezeile ist erklärt 
und immer wieder verweise ich auf das Datenblatt - damit man das 
Arbeiten mit Datenblättern lernt.

Fortschritt ist da alle paar Minuten spürbar und es ist auch eine reale 
Anwendung, die in den 80er Jahren sogar Millionenfach verkauft wurde und 
sogar heute noch als Handy-App wieder vermarketet wird.

Tu mal nicht so, als gäbe es keinen geeigneten Anwendungsfall, um 
frühzeitig ein bisschen Assembler zu lernen.

Ich rate ja auch keineswegs dazu, bei Assembler zu bleiben. Ich rate 
auch nicht dazu, mit Assembler anzufangen. Nur ein bisschen Assembler 
(nicht mehr) nebenbei zu lernen, kann nicht verkehrt sein.

von google (Gast)


Lesenswert?

Wolfgang schrieb:
> Schon wenn man einfach nur mal
> einen kurzen Puls auf einem Pin erzeugen will, ist man mit dem ach so
> tollen Abstraktionslevel am Ende. Da ist es schon sehr hilfreich, wenn
> nicht schon bei digitalWrite() der Horizont kommt, sondern man noch
> etwas mehr vom System weiß.

Es hindert Dich niemand daran, Deine Kenntnisse zu vertiefen und 
beispielsweise die Libs aufzubohren, abgesehen davon, dass es auch auf 
diesem level lösbar wäre.

Ihr solltet davon abkommen, dass die hier aufschlagenden Arduino-Frager 
den Durchschnitt der Arduinonutzer darstellen. Das sind sie eher nicht. 
Genausowenig wie die BASCOM, C, C++, ... Frager den Durchschnitt der 
Programmierer dieser Sprachen repräsentieren.

von Falk B. (falk)


Lesenswert?

@ ach ja doch (Gast)

>>>Warum nicht LunaAVR?
>> Liebhaber von Exoten. Die meisten sind mit C(C++) deutlich besser
>> bedient, das ist Standard und dementsprechend verbreitet.

>Ach was, wichtig ist nicht "dem Standard" hinterherzulaufen (das machen
>schließlich die gefühlten 2^10 anderen
>Programmier-Dialekte/Varianten/Derivate, die ständig entstshen, auch
>nicht.

Auch DU tust das, indem du DEUTSCH oder ENGLISCH sprichst! Das sprechen 
auch Millionen von Menschen. Und es hat so seine Vorteile, wenn man die 
gleich Sprache spricht.

> Oder warum gibt es ein C ähnliches gockel-go oder die zahlreichen
>BASIC-Dialekte, zu denen auch BASCOM sich gesellt?!

Weil es Leute gab, die mal ein wenig experimentieren wollen und ihre 
eigene Sprache/Dialekt kreieren wollten. Ist vollkommen OK und manchmal 
bekommt der Rest der Welt dadurch neue Erkenntnisse. Manchmal ensteht 
aber auch nur wieder der 1001. Dialekt. Willkommen in Babylon ;-)

>Entscheidend ist nach meinem Empfinden eine gut gepflegte Webseite mit
>zahlreichen Code-Beispielen und brauchbarer Dokumentation,

Sag doch einfach, daß du ein LunaAVR Fan bist, das verküzt die 
Diskussion ;-)

> nicht das
>formale, automatisiert-erzeugte Gedöns, was einem heutzutage so oft um
>die Ohren gehauen wird. Sondern eine Doku VOM Anwender FÜR den Anwender.

Dumm nur, wenn die meisten schreibenden Anwender kein besonders hohen 
Niveau bzw. Talent zum Doku-Schreiben haben.

>den ersten Blick). Und wer sagt denn, dass man dabei bleiben MUSS und
>sich nicht gleichzeitig für alles andere offen halten kann?

Ich lerne doch nicht Portugiesisch wenn die große Masse in Südamerika 
Spanisch spricht, auch wenn das recht ähnlich ist.

> Sonst könnte
>man ja auch kein C# verwenden, aus Angst "dem Standard C/C++" abtrünnig
>zu werden. Das ist doch Unsinn.

Von Angst sprach hier keiner. Aber die Grundlage von C# ist immer noch C 
(denke ich mal, hab C# nie angeschaut)

>Bitte keine Denkverbote und NoGo's aussprechen.

Bitte? Es war eine EMPFEHLUNG bzw. MEINUNG!

> Erlaubt ist was gefällt,
>funktioniert und nutzt. "Spiel nicht mit den Schmuddelkindern" (BASCOM,
>LunaAVR) "sing nicht ihre Lieder" ... ist doch nur die alte Angst vor
>Konkurrenz ..

Das mit dem sinnerfassenden Lesen solltest du noch mal üben.

>Einfach vorurteilsfrei herangehen. Die Grundschule beginnt auch mit
>starken Vereinfachungen und nicht mit dem Stoff fürs Abitur.

Eben, darum ist ASM kein sonderlich guter Einstieg in die 
Programmierung. Das war nur früher so, als das Thema nur von 
eingefleischten Freaks beackert wurde und C und höhere Sprachen kaum zur 
Verfügung standen, zumindest nicht kostenfrei.

von Stefan F. (Gast)


Lesenswert?

Langer Rede kurzer Sinn:

Da du bereits mit Logikgattern gearbeitet hast, kaufe Dir ein Arduino 
Nano Board und schau mal, was man damit so machen kann. Ein paar 
Bauteile für drumherum hast du sicher schon. Kannst ja mit einer LED 
anfangen.

Du kannst damit zahlreiche Programmiersprachen ausprobieren und musst 
nur Euro investieren.

Und wenn du merkst, dass du viel größeres Sachen machen willst, als 
dieser kleine µC kann, dann schmeiß ihn weg und hole Dir ein STM32 
Discovery Board oder irgendein anderes ARM basiertes Board mit 
integrierter USB Programmierschnittstelle. Denn auch die sind so billig, 
dass man da kaum etwas falsch machen kann.

von Claymore (Gast)


Lesenswert?

Stefan U. schrieb:
> Fortschritt ist da alle paar Minuten spürbar und es ist auch eine reale
> Anwendung, die in den 80er Jahren sogar Millionenfach verkauft wurde und
> sogar heute noch als Handy-App wieder vermarketet wird.

Etwas nachzubauen hat nichts mit Fortschritt zu tun. Klar kann man so 
lernen, aber da braucht man schon eine Menge Ausdauer, bis man in der 
Lage ist, selbst etwas eigenes zu entwickeln.

Das schnelle Erfolgserlebnis ist die Grundlage des Erfolgs von Arduino 
und hat sicherlich viele tausende zu Microcontrollern gebracht. Leute, 
die Assembler sofort abgeschreckt hätte.

Für den Möchtegern-Foren-Profi mag das frustrierend sein, weil sie nun 
nicht mehr zu einem exklusiven Club gehören und da muss man sich immer 
wieder mit Sätzen wie "ohne Assembler hat man keine Ahnung, was man 
wirklich tut" und ähnliches verteidigen. Das ist irgendwie schade.

Stefan U. schrieb:
> Ich rate ja auch keineswegs dazu, bei Assembler zu bleiben. Ich rate
> auch nicht dazu, mit Assembler anzufangen. Nur ein bisschen Assembler
> (nicht mehr) nebenbei zu lernen, kann nicht verkehrt sein.

Man braucht Assembler heute aber in aller Regel gar nicht mehr. Von 
daher ist der Vorschlag für einen Anfänger einfach sinnlos.

von Stefan F. (Gast)


Lesenswert?

>> ein bisschen Assembler nebenbei zu lernen, kann nicht verkehrt sein.

> Man braucht Assembler heute aber in aller Regel gar nicht mehr.
> Von daher ist der Vorschlag für einen Anfänger einfach sinnlos.

Aber mit STM32 anzufangen hälst du für Sinnvoll. Komische Welt das ist. 
Ich bin wohl zu alt.

> Etwas nachzubauen hat nichts mit Fortschritt zu tun.
Es ging um Lernfortschritt, nicht darum, die Menschheit weiter zu 
entwickeln. Es ging darum, dass man beim Lernen voran kommt und 
Zwischenergebnisse sehen kann.

von Claymore (Gast)


Lesenswert?

Stefan U. schrieb:
> Aber mit STM32 anzufangen hälst du für Sinnvoll. Komische Welt das ist.
> Ich bin wohl zu alt.

Ich schlage vor, mit High-Level anzufangen. Die darunter liegende 
Plattform spielt da keine größere Rolle.

Stefan U. schrieb:
> Es ging um Lernfortschritt, nicht darum, die Menschheit weiter zu
> entwickeln. Es ging darum, dass man beim Lernen voran kommt und
> Zwischenergebnisse sehen kann.

Den meisten Bastlern geht es aber eher um reale Ergebnisse als um den 
Lernerfolg.

von Bestromer (Gast)


Lesenswert?

@Claymore
...man könnte denken Du bist Politiker, versuchst auf biegen und brechen 
die Leute von Deiner Meinung zu überzeugen.
"Assembler braucht man in aller Regel garnicht mehr"....Du hast ja 
richtig Ahnung, eben wie ein Politiker mit seinen viel zitieren 
"Fachkräften und Spezialisten".

Solche Diskussionen gibt es zu Hauf und letztendlich enden sie mit der 
Erkenntnis das die Programmiersprache egal ist und eher der Zweck die 
Sprache bestimmt.
Auch als Anfänger bestimmt der Zweck die zu erlernende 
Programmiersprache, wobei der TO sich hier am wenigsten zu Wort meldet 
und sich nur berieseln lässt.
Spontan würde ich deshalb den TO auch zu der Arduino-Ecke mit samt 
seiner putzigen Programmierumgebung raten, da man dort mit super wenig 
Anstrengung relativ nette Ergebnisse erzielen kann, also genau ein 
passendes Ebenbild zu seinem Interesse :)

von Claymore (Gast)


Lesenswert?

Bestromer schrieb:
> @Claymore
> ...man könnte denken Du bist Politiker, versuchst auf biegen und brechen
> die Leute von Deiner Meinung zu überzeugen.
> "Assembler braucht man in aller Regel garnicht mehr"....Du hast ja
> richtig Ahnung, eben wie ein Politiker mit seinen viel zitieren
> "Fachkräften und Spezialisten".

Wenn die sachlichen Argumente ausgehen, wird es persönlich. Das ist die 
übliche Masche.

Bestromer schrieb:
> Spontan würde ich deshalb den TO auch zu der Arduino-Ecke mit samt
> seiner putzigen Programmierumgebung raten, da man dort mit super wenig
> Anstrengung relativ nette Ergebnisse erzielen kann, also genau ein
> passendes Ebenbild zu seinem Interesse :)

Das ist auch wieder typisch für solche Pseudo-Experten. Wer leicht 
Ergebnisse erreichen will ist ein Pfuscher, ein richtiger Experte müsse 
ja die höchst mögliche Anstrengung in Kauf nehmen, sonst könne man ja 
nichts. Und so weiter und so fort.

von Wolfgang (Gast)


Lesenswert?

google schrieb:
> Es hindert Dich niemand daran, Deine Kenntnisse zu vertiefen und
> beispielsweise die Libs aufzubohren, abgesehen davon, dass es auch auf
> diesem level lösbar wäre.

Genau dafür muss der Horizont über digitalWrite() hinaus reichen und es 
ist gut, sich im Controller Datenblatt mal anzusehen, was da alles an 
einem einzelnen Pin an Registern dran hängt. Sonst heißt es schnell, 
"der ... kann das nicht" oder - um bei dem Beispiel zu bleiben - man 
braucht einen 200MHz Prozessor, um einen 1µs Puls zu erzeugen.

von Bestromer (Gast)


Lesenswert?

Claymore schrieb:
> Wenn die sachlichen Argumente ausgehen, wird es persönlich. Das ist
> die übliche Masche.

...ja, ich hab die Dinge beim Namen genannt, allerdings gehen hier keine 
Argumente aus, es entwickelt sich eben nur in eine Richtung...Monologe 
braucht hier keiner....

> Bestromer schrieb:
>> Spontan würde ich deshalb den TO auch zu der Arduino-Ecke mit samt
>> seiner putzigen Programmierumgebung raten, da man dort mit super wenig
>> Anstrengung relativ nette Ergebnisse erzielen kann, also genau ein
>> passendes Ebenbild zu seinem Interesse :)
>
> Das ist auch wieder typisch für solche Pseudo-Experten.

Wie war das nochmal mit dem persönlich werden? Willkommen auf der selben 
Ebene....zudem pauschalisieren wir noch?

von Bestromer (Gast)


Lesenswert?

...all das hilft aber dem TO nicht weiter...

von google (Gast)


Lesenswert?

Bestromer schrieb:
> ...all das hilft aber dem TO nicht weiter...

Ich denke mal, der ist schon raus.

Patryk D. schrieb:
> So viele Antworten, das kann ich nichtmal lesen!

von Bestromer (Gast)


Lesenswert?

google schrieb:

> Ich denke mal, der ist schon raus.

...das denke ich auch :)

Schade das ein eigentlich so interessanter Thread immer in einem 
Glaubenskrieg enden muss...liegt aber wahrscheinlich in der Natur der 
Menschen :o)

von google (Gast)


Lesenswert?

Wolfgang schrieb:
> Genau dafür muss der Horizont über digitalWrite() hinaus reichen

Zunächst muss sein Interesse darüber hinaus reichen. Dann liest er nach 
oder fragt.

Wenn er hier fragt, wird es wohl etwas schwerer, denn er ist per 
ungeschriebener Foren-Definition ein Aussätziger, denn man beschimpft 
und auslacht. Nur die Harten (das sind meist eher die Lernresistenten) 
bleiben am Ball. Und nur wenige Leute mit Knowhow erbarmen sich zu einer 
vernünftigen Antwort, auch die nicht immer frei von Häme und Arroganz.

von ach ja doch (Gast)


Lesenswert?

Falk B. schrieb:
> @ ach ja doch (Gast)
>
>>>>Warum nicht LunaAVR?
>>> Liebhaber von Exoten. Die meisten sind mit C(C++) deutlich besser
>>> bedient, das ist Standard und dementsprechend verbreitet.
>
>>Ach was, wichtig ist nicht "dem Standard" hinterherzulaufen (das machen
>>schließlich die gefühlten 2^10 anderen
>>Programmier-Dialekte/Varianten/Derivate, die ständig entstshen, auch
>>nicht.
>
> Auch DU tust das, indem du DEUTSCH oder ENGLISCH sprichst! Das sprechen
> auch Millionen von Menschen. Und es hat so seine Vorteile, wenn man die
> gleich Sprache spricht.

Nicht Vergleichbar, weil Alltagskommunikation etwas ganz anderes 
darstellt als SPEZIALISIERTE Programmierdialekte. Mit der Alltagssprache 
werden Gefühle ausgetauscht. Mit ein paar Quellcodezeilen eher nicht 
(gar nicht).

>> Oder warum gibt es ein C ähnliches gockel-go oder die zahlreichen
>>BASIC-Dialekte, zu denen auch BASCOM sich gesellt?!
>
> Weil es Leute gab, die mal ein wenig experimentieren wollen und ihre
> eigene Sprache/Dialekt kreieren wollten. Ist vollkommen OK und manchmal
> bekommt der Rest der Welt dadurch neue Erkenntnisse. Manchmal ensteht
> aber auch nur wieder der 1001. Dialekt. Willkommen in Babylon ;-)

Dieses "Experimentieren" von "ein paar Leuten" gibt es. Das trifft aber 
auf große Neuentwicklungen der letzten Jahre wie C#, Google go, Rust und 
wie sie alle heißen bei weitem nicht mehr zu. Dahinter stehen 
Weltkonzerne und hunderttausende bzw. Millionen interessierte Nutzer. 
Warum ist das so, wenn doch alle mit C,C++ vorlieb nehmen könnten?! 
Anscheinend deckt C/C++ nicht (mehr) die Erwartungen ab, die man glaubt, 
in den Neuentwicklungen zu finden.

>>Entscheidend ist nach meinem Empfinden eine gut gepflegte Webseite mit
>>zahlreichen Code-Beispielen und brauchbarer Dokumentation,
>
> Sag doch einfach, daß du ein LunaAVR Fan bist, das verküzt die
> Diskussion ;-)

Ich muss bekennen, ich selber habe praktisch noch nichts mit LunaAVR 
gemacht (nur dort herumgestöbert). Ich brauche es auch nicht unbedingt, 
weil ich auch gut mit C zurechtkomme. Aber mir gefallen eben Webseiten 
wie die von LunaAVR, wo ich das Gefühl habe, hier steckt jemand richtig 
Arbeit hinein und kümmert sich. Mir gefallen diese "Old-School" 
Webseiten im Gegensatz zu denen, die zwar in font >96px in Riesenlettern 
Werbung betreiben, wo ich dann aber erst mal mühsam den Einstieg suchen 
muss, weil gerade mal 2 Beispiele vorhanden sind und mehr nicht. Was mir 
an LunaAVR übrigens weniger gut gefällt ist deren Lizenz Modell, also 
diese Monats oder Jahreslizenzen. Aber das muss einen beim Einstieg erst 
mal auch nicht unbedingt kümmern. Ist ja keine Ehe, die man da eingeht. 
;) Was mir auch nicht sonderlich gefällt ist die Zwangsanmeldung, um im 
Forum zu lesen. Das sollten sie dort mal ändern. Das wirkt zu abweisend.

>> nicht das
>>formale, automatisiert-erzeugte Gedöns, was einem heutzutage so oft um
>>die Ohren gehauen wird. Sondern eine Doku VOM Anwender FÜR den Anwender.
>
> Dumm nur, wenn die meisten schreibenden Anwender kein besonders hohen
> Niveau bzw. Talent zum Doku-Schreiben haben.

Es muss ja nicht in schönster Prosa verfasst sein. Einfach so, dass es 
einladend, animierend zum SOFORT anfangen wirkt. Mal als Beispiel so wie 
hier

http://www.delphi-treff.de/

Die Delphi-Treff Webseite ist diesbezüglich einfach schön gestaltet.

>> Sonst könnte
>>man ja auch kein C# verwenden, aus Angst "dem Standard C/C++" abtrünnig
>>zu werden. Das ist doch Unsinn.
>
> Von Angst sprach hier keiner. Aber die Grundlage von C# ist immer noch C
> (denke ich mal, hab C# nie angeschaut)

Ich bin nicht genug Experte oder "Erklärbar" für Details und 
Hintergründe der Entwicklung solcher Dialekte. In C# steckt C/C++, Java, 
Delphi drin (Anders Hejlsberg) und C# hat sich über die Jahre 
beträchtlich gemausert.

Für den Einsteiger ist nach meiner Auffassung wichtiger, ob er ein 
positives Gefühl beim Herantasten entwickelt oder ob's in Quälerei 
ausartet und damit abschreckend wirkt. Wie schnell stellen sich Erfolge 
ein? Das ist die entscheidende Frage (vorausgesetzt man kann selber 
entscheiden und muss nicht ..). Ohne Lust nur Frust und das gilt es zu 
vermeiden. Der eine ist Pragmatiker, will nur das es läuft. Der andere 
möchte allumfassendes Expertenwissen. Der eine akzeptiert nur 
OpenSource. Anderen ist nur wichtig, dass die Tools privat frei 
verwendbar sind. Manche geben auch gerne mal Geld für Software aus wie 
so was hier
http://shop.myavr.de/index.php?sp=artlist_kat.sp.php&katID=7
und werden damit glücklich. Jeder wie er kann und will.

>>Bitte keine Denkverbote und NoGo's aussprechen.
>
> Bitte? Es war eine EMPFEHLUNG bzw. MEINUNG!

Ich gab auch nur meine Meinung hinzu. Gerade bei LunaAVR kommt aber 
gerne der "warnende Reflex" von irgend jemand, der bei vielem anderen 
was so genannt wird komischerweise unterbleibt. Ist mir jedenfalls schon 
aufgefallen. Als C# aufkam waren die warnenden Reflexe ja auch nicht 
gerade selten. Du wirst es wissen. Wer will schon wissen, wie sich alles 
entwickelt. Wir wissen ja nicht mal wer uns am Jahresende 2016 noch 
regiert (kleine neckische Randbemerkung). ;-)

>>Einfach vorurteilsfrei herangehen. Die Grundschule beginnt auch mit
>>starken Vereinfachungen und nicht mit dem Stoff fürs Abitur.
>
> Eben, darum ist ASM kein sonderlich guter Einstieg in die
> Programmierung. Das war nur früher so, als das Thema nur von
> eingefleischten Freaks beackert wurde und C und höhere Sprachen kaum zur
> Verfügung standen, zumindest nicht kostenfrei.

Ich würde das nicht so verallgemeinern. Ich glaube da kommt man schon 
selber drauf was einem liegt oder auch nicht, einfach in dem man die 
Dinge mal "anfasst".

von Felix C. (felix_c13)


Lesenswert?

Vielleicht liest der TE das ja noch. Ich bin vor kurzem von Arduino auf 
STM32 umgestiegen. Mein Tipp an dich:

Lies dich erstmal ein wie uC funktionieren. Ich kann komplett verstehen, 
wie du gerade fühlst. Das Problem ist, dass die Frage nach einem uC von 
sehr vielen Sachen abhängt, die du logischerweise nicht wissen kannst.

Auch wenn hier viele raten Assembler, GCC etc. da denkst du jetzt sicher 
omg, wo soll ich da anfangen???

Folge meinem Tipp. Fange zB hier an:
http://www.eastaughs.fsnet.co.uk/cpu/structure-index.htm

Eigentlich funktionieren alle uC etwa gleich. Du wirst schnell selber 
merken, was du wissen musst und was am Anfang nicht so wichtig ist. Zu 
Beginn ist es einfach gut, über viele Begriffe ein Halbwissen zu haben. 
Ja ein Halbwissen!! Du willst ja nicht Professor an ner Uni werden.

Viel Glück und lass dich hier nicht runtermachen. Hier hat jeder mal 
klein angefangen.

Gruss

Felix

von Falk B. (falk)


Lesenswert?

@ ach ja doch (Gast)

>> Auch DU tust das, indem du DEUTSCH oder ENGLISCH sprichst! Das sprechen
>> auch Millionen von Menschen. Und es hat so seine Vorteile, wenn man die
>> gleich Sprache spricht.

>Nicht Vergleichbar,

Aber sicher!

>weil Alltagskommunikation etwas ganz anderes
>darstellt als SPEZIALISIERTE Programmierdialekte. Mit der Alltagssprache
>werden Gefühle ausgetauscht.

Bist du eine Frau? Nein, auch mit Alltagskommunikation werden harte 
FAKTEN und INFORMATIONEN ausgetauscht.

> Mit ein paar Quellcodezeilen eher nicht
>(gar nicht).

love_me(tender);

;-)

>Dieses "Experimentieren" von "ein paar Leuten" gibt es. Das trifft aber
>auf große Neuentwicklungen der letzten Jahre wie C#, Google go, Rust und
>wie sie alle heißen bei weitem nicht mehr zu. Dahinter stehen
>Weltkonzerne und hunderttausende bzw. Millionen interessierte Nutzer.

Die Millionen von Nutzern kommen erst danach.

>Warum ist das so, wenn doch alle mit C,C++ vorlieb nehmen könnten?!
>Anscheinend deckt C/C++ nicht (mehr) die Erwartungen ab, die man glaubt,
>in den Neuentwicklungen zu finden.

Niemand hat behauptet, daß C/C++ ALLES abdecken kann und für immer und 
ewig das Allein selig Machende ist! Aber es ist halt SEHR weit 
verbreitet und für viele (nicht alle!) Aufgaben nutzbar!

>Ich muss bekennen, ich selber habe praktisch noch nichts mit LunaAVR
>gemacht (nur dort herumgestöbert). Ich brauche es auch nicht unbedingt,
>weil ich auch gut mit C zurechtkomme. Aber mir gefallen eben Webseiten
>wie die von LunaAVR, wo ich das Gefühl habe, hier steckt jemand richtig
>Arbeit hinein und kümmert sich.

Also doch Frau. Denn das Gefühl kann schon mal täuschen, wenn sich 
jenseits der  netten Verpackung (schicke Website) in der Realität dann 
doch ein paar unschöne Dinge auftun. Ob das bei LunaAVR so ist weiß ich 
nicht!

>Mir gefallen diese "Old-School"
>Webseiten im Gegensatz zu denen, die zwar in font >96px in Riesenlettern
>Werbung betreiben, wo ich dann aber erst mal mühsam den Einstieg suchen
>muss, weil gerade mal 2 Beispiele vorhanden sind und mehr nicht.

Das ist nett, hat mit der Eignung der Programmiersprache aber recht 
wenig zu tun.

>> Dumm nur, wenn die meisten schreibenden Anwender kein besonders hohen
>> Niveau bzw. Talent zum Doku-Schreiben haben.

>Es muss ja nicht in schönster Prosa verfasst sein. Einfach so, dass es
>einladend, animierend zum SOFORT anfangen wirkt.

Auch das können eher weniger Leute.

>Für den Einsteiger ist nach meiner Auffassung wichtiger, ob er ein
>positives Gefühl beim Herantasten entwickelt oder ob's in Quälerei
>ausartet und damit abschreckend wirkt.

Stimmt! ;-)

>Wie schnell stellen sich Erfolge
>ein? Das ist die entscheidende Frage (vorausgesetzt man kann selber
>entscheiden und muss nicht ..). Ohne Lust nur Frust und das gilt es zu
>vermeiden. Der eine ist Pragmatiker, will nur das es läuft. Der andere
>möchte allumfassendes Expertenwissen.

Das will kein Anfänger.

> Der eine akzeptiert nur
>OpenSource.

Auch so eine Religion.

>>>Bitte keine Denkverbote und NoGo's aussprechen.

>> Bitte? Es war eine EMPFEHLUNG bzw. MEINUNG!

>Ich gab auch nur meine Meinung hinzu.

FALSCH! Du hast von Denkverboten gesprochen, die nie da waren!

> Gerade bei LunaAVR kommt aber
>gerne der "warnende Reflex" von irgend jemand, der bei vielem anderen
>was so genannt wird komischerweise unterbleibt.

Ich habe das begründet.

> Ist mir jedenfalls schon
>aufgefallen. Als C# aufkam waren die warnenden Reflexe ja auch nicht
>gerade selten.

Logisch, weil eine neue Sau durchs Dorf getrieben wurde. Hat jemand eine 
brauchbare Zusammenfassung/Bewertung der Vorteile von C#?

> Du wirst es wissen. Wer will schon wissen, wie sich alles
>entwickelt. Wir wissen ja nicht mal wer uns am Jahresende 2016 noch
>regiert (kleine neckische Randbemerkung). ;-)

Sehr schön! Dafür würde ich dir glatt 3 "sehr lesenswert" geben wollen!
(es kann nur besser werden!)

von Ulrich F. (Gast)


Lesenswert?

Falk B. schrieb:
> Bist du eine Frau?

Jetzt bin ich geschockt....
Obwohl männlich, tausche ich doch über die Sprache Gefühle und Emotionen 
aus.
Auch sehe ich das dieses hier im Forum dauernd passiert.

Jede Frage, jede Antwort, beinhaltet auch eine soziale Komponente.


Evtl. solltest du das nochmal überdenken....

von Lothar (Gast)


Lesenswert?

Lothar M. schrieb:
> Natürlich ist es unsinnig, auf einem ARM mit Assembler anzufangen

Warum? Zum Anfang ein Pin setzen oder löschen geht in ARM Assembler 
nicht schwieriger als in 8051 oder AVR Assembler, nur anders. Das hier 
ist für ARM11 aber Cortex M ist nicht anders:

http://kampis-elektroecke.de/?page_id=4620

Lothar M. schrieb:
> Beim ARM ist schon der Interruptcontroller komplexer als ein alter 8051
> oder ein kleiner AVR

Wie wäre dann ein Einstieg mit einem modernen 8051 z.B. EFM8BB31 
entspricht ATMEGA328 kostet aber nur 1/3 und Debugger kostet nur 25 EUR 
und Keil Compiler ist für umsonst.

von Falk B. (falk)


Lesenswert?

@Ulrich F. (combie)

>> Bist du eine Frau?

>Jetzt bin ich geschockt....

Wirklich?

>Obwohl männlich, tausche ich doch über die Sprache Gefühle und Emotionen
>aus.
>Auch sehe ich das dieses hier im Forum dauernd passiert.

Siccher, aber nicht NUR!

>Jede Frage, jede Antwort, beinhaltet auch eine soziale Komponente.

In der Tat.

>Evtl. solltest du das nochmal überdenken....

Nö. ;-)

von Hobbyfrickler (Gast)


Lesenswert?

Autor:  Bestromer (Gast)
Datum: 24.01.2016 13:56

Claymore schrieb:
>> Wenn die sachlichen Argumente ausgehen, wird es persönlich. Das ist
>> die übliche Masche.

>Wie war das nochmal mit dem persönlich werden? Willkommen auf der selben
>Ebene....zudem pauschalisieren wir noch?

Im A&B-Forum reitet Claymore auf ähnlich hohem Roß mit guten Ratschlägen 
daher.

Allerdings ist er dort noch zusätzlich Millionär, erfolgreicher 
Unternehmer und Börsenprofi.

von Norbert S. (norberts)


Lesenswert?

Hi,

Ihr seid doch alle nicht ganz dicht mit Eurer Diskussion.

Einem Anfänger ARM und Assembler zu empfehlen ist auch völlig 
durchgeknallt.

Ansonsten hab ich mir den ganzen Sermon ab der Hälfte gar nicht mehr 
durchgelesen.

Ich beschreibe mal, wie ich dazu gekommen bin und ich denke ich habe von 
geringen Bastlerkenntnissen (Schaltungen aus Zeitschriften nachbauen 
ohne sie zu verstehen) inzwischen zumindest sehr fortgeschrittenes 
Bastlerniveau erreicht.

Vorher nur Basic und Pascal irgendwann mal in der Schule gelernt, habe 
ich mit C-Control angefangen, als das noch recht neu war.
Simples Basic und man hat schnell viele lustige Dinge damit erreicht.
Daß das Ding damals alle 1-2ms einen Basic-Befehl abgearbeitet hat, war 
beeindruckend ;-) (Basic Interpreter auf dem antiken µC).
Das hat Lust auf mehr gemacht und ich bin auf AVR und Bascom 
umgestiegen.
Der Einstieg fällt sehr leicht und wenn man sich weiterentwickeln will 
geht das in Bascom sehr gut.
Zuerst kann man die eingebauten Goodies nutzen, also Config Timer, Input 
(serielles Byte einlesen) usw.
Da weiß man nicht unbedingt was im Hintergrund passiert aber für die 
meisten Dinge tut das durchaus. Input wartet eben, bis das Byte da ist 
und das Programm macht bis dahin nichts.
Will man mehr, geht man eben auf Register-Ebene und hat die volle 
Kontrolle.
Die Uart per Int auslesen ist dann auch kein Problem mehr, genauso wie 
alles Andere, was man auch in C oder Assembler machen könnte.
Dafür muß man aber eben das Datenblatt studieren (lesen ist nicht das 
richtige Wort) und verstehen.

Bei C hat man diese Einstiegshilfen nicht und muß bei viel mehr Dingen 
gleich ins kalte Wasser springen. Mal ganz abgesehen von der völlig 
kranken Syntax. Immer wieder diese Fragen zur Bytemanupilation.
Wenn ich in Bascom ein Bit in einem Register setzen will, dann schreibe 
ich "Register.Bit = 1". Bascom macht daraus genau das Gleiche wie das 
kryptische Kauderwelsch in C.

Wenn gewünscht, kann man dann immer noch auf C umsteigen, denn das 
Programmieren folgt der selben Logik. Die Syntax ist eben nur sehr 
anders und man muß eben C lernen. Bascom ist dagegen fast 
selbsterklärend und sehr intuitiv.

Es kommt aber auch sehr darauf an, was man vorhat und nicht zuletzt wie 
alt man ist.
Mit Anfang 20 würde ich tunlichst C lernen (und das sage ich als 
Bascom-Jünger). Das ist nunmal der Standard. Erst recht, wenn man es mal 
beruflich damit zu tun bekommen könnte.
Bascom ist dabei aber keine Zeitverschwendung denn wie gesagt, das 
Prinzip des µC-Programmierens ist letztendlich das Gleiche.
Mit mittlerweile Mitte 40 und nur Bastelambitionen kann man es aber auch 
bei Bascom belassen. Ich programmiere zwar beruflich noch etwas aber den 
Kollegen die in C schreiben kann ich sowieso nicht mehr das Wasser 
reichen wenn ich jetzt C lerne.
Da konzentriere ich mich lieber auf das, was ich besser kann.

Daß Bascom für mehr als ein paar blinkende LEDs oder einen Schrittmotor 
gut ist zeigt z.B. der Treiber, den ein Forumsmitglied im Bascom-Forum 
für ein 320x240 TFT mit 262k Farben und Touch geschrieben hat.
Der ATMega befeuert das Display mit 8MHz SPI.
Ich hab den Kram hier und das ist flott.
Da ist allerdings auch etwas Inline Assembler dabei.
In C wäre das aber vermutlich nicht anders. 8MHz SPI bei 16MHz Takt 
macht nur Sinn, wenn man sich ganz tief in den Maschinenraum begibt.
Das ist aber ein Level, das ich nicht mehr verstehen muß. Ich sehe nur 
nach, welche Ressourcen der Treiber belegt.

Gruß,
Norbert

von Lothar (Gast)


Lesenswert?

Norbert S. schrieb:
> Der ATMega befeuert das Display mit 8MHz SPI.
> Ich hab den Kram hier und das ist flott.
> Da ist allerdings auch etwas Inline Assembler dabei.

Ja und? Ich habe kürzlich den AVR Treiber für ein TFT mit ST7735R auf 
ARM "portiert": LPC810 DIP-8. War fast nichts zu tun, nur die wenigen 
Stellen Inline Assembler durch C ersetzen, lief sofort. Natürlich könnte 
man es nun schneller machen durch Ersetzen der ganzen chars und shorts 
durch longs und für die Bitmanipulationen könnte man mit ARM Inline 
Assembler anrücken, aber was solls.

von asdf (Gast)


Lesenswert?

Lothar schrieb:
> Norbert S. schrieb:
>> Der ATMega befeuert das Display mit 8MHz SPI.
>> Ich hab den Kram hier und das ist flott.
>> Da ist allerdings auch etwas Inline Assembler dabei.
>
> Ja und? Ich habe kürzlich den AVR Treiber für ein TFT mit ST7735R auf
> ARM "portiert": LPC810 DIP-8. War fast nichts zu tun, nur die wenigen
> Stellen Inline Assembler durch C ersetzen, lief sofort. Natürlich könnte
> man es nun schneller machen durch Ersetzen der ganzen chars und shorts
> durch longs und für die Bitmanipulationen könnte man mit ARM Inline
> Assembler anrücken, aber was solls.

Und du meinst im Ernst, daß das die geeignete Einstellung ist, einem 
Neueinsteiger die µC schmackhaft zu machen? Denn genau darum gehts in 
diesem Thread. Und nicht die Selbstbeweihräucherung, was man doch für 
ein toller Hecht ist...
Ein Anfänger will überhaupt erstmal die Grundlagen lernen! Das hast du 
scheinbar nicht bedacht!

von Norbert S. (norberts)


Lesenswert?

Lothar schrieb:
> Norbert S. schrieb:
>> Der ATMega befeuert das Display mit 8MHz SPI.
>> Ich hab den Kram hier und das ist flott.
>> Da ist allerdings auch etwas Inline Assembler dabei.
>
> Ja und? Ich habe kürzlich den AVR Treiber für ein TFT mit ST7735R auf
> ARM "portiert": LPC810 DIP-8. War fast nichts zu tun, nur die wenigen
> Stellen Inline Assembler durch C ersetzen, lief sofort. Natürlich könnte
> man es nun schneller machen durch Ersetzen der ganzen chars und shorts
> durch longs und für die Bitmanipulationen könnte man mit ARM Inline
> Assembler anrücken, aber was solls.

Hi,

Oho, ein ARM kann also so ein Display ansteuern. Wäre "ARM" wenn 
nicht...

Ich wollte damit doch nur zeigen, daß man mit Bascom einen AVR-8Bit 
durchaus bis an die Grenze der Hardware ausreizen kann.
Auf ARM potieren kann man die Software allerdings nicht so einfach - 
mangels Compiler...

Gruß,
Norbert

von Norbert S. (norberts)


Lesenswert?

asdf schrieb:
> Und du meinst im Ernst, daß das die geeignete Einstellung ist, einem
> Neueinsteiger die µC schmackhaft zu machen? Denn genau darum gehts in
> diesem Thread. Und nicht die Selbstbeweihräucherung, was man doch für
> ein toller Hecht ist...
> Ein Anfänger will überhaupt erstmal die Grundlagen lernen! Das hast du
> scheinbar nicht bedacht!

Danke! Das nützt dem n00b nämlich mal gar nichts.

Gruß,
Norbert

von asdf (Gast)


Lesenswert?

Norbert S. schrieb:
> asdf schrieb:
>> Und du meinst im Ernst, daß das die geeignete Einstellung ist, einem
>> Neueinsteiger die µC schmackhaft zu machen? Denn genau darum gehts in
>> diesem Thread. Und nicht die Selbstbeweihräucherung, was man doch für
>> ein toller Hecht ist...
>> Ein Anfänger will überhaupt erstmal die Grundlagen lernen! Das hast du
>> scheinbar nicht bedacht!
>
> Danke! Das nützt dem n00b nämlich mal gar nichts.
>
> Gruß,
> Norbert

Aber die Aussage von Lothar "Ätsch, ich kann einen AVR-Treiber auf ARM 
portieren" ist wohl viel nützlicher, oder?
;-)

von Lothar (Gast)


Lesenswert?

asdf schrieb:
> Und nicht die Selbstbeweihräucherung, was man doch für
> ein toller Hecht ist...

Hatte keine Ahnung was der AVR TFT Treiber genau macht und habe mich 
selbst gewundert, dass der fast ohne Änderungen auf einem LPC ARM lief.

> einem Neueinsteiger die µC schmackhaft zu machen

Wenn es wie ich ein Neueinsteiger ist der bereits auf dem PC in C 
programmiert hat ist es wohl anders als wenn jemand mit uC anfängt und 
zum ersten Mal programmiert.

Ich habe jedenfalls nicht mit uC angefangen indem ich Datenblätter und 
Tutorials durchgearbeitet habe, sondern habe Demos vom Hersteller 
auseinander genommen, in die Library Funktionen reingeschaut welche 
Register genutzt werden und erst dann im Datenblatt nachgesehen, was die 
Bits bedeuten.

von Lothar (Gast)


Lesenswert?

Norbert S. schrieb:
> Auf ARM potieren kann man die Software allerdings nicht so einfach -
> mangels Compiler...

http://hackaday.com/2012/09/20/programming-an-arm-with-basic/

https://www.riscosopen.org/content/sales/risc-os-pico

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


Lesenswert?

asdf schrieb:
> Das hast du scheinbar nicht bedacht!
Es können sich offenbar einige nicht mehr dran erinnern, wie sie 
angefangen haben. Wenn mir damals einer einen 32-Bit STM32 vor den 
Latz geknallt und gesagt hätte "Fang mit dem an. Das ist einfach!", dann 
würde ich heute was anderes machen...

von asdf (Gast)


Lesenswert?

Lothar schrieb:
> Ich habe jedenfalls nicht mit uC angefangen indem ich Datenblätter und
> Tutorials durchgearbeitet habe, sondern habe Demos vom Hersteller
> auseinander genommen, in die Library Funktionen reingeschaut welche
> Register genutzt werden und erst dann im Datenblatt nachgesehen, was die
> Bits bedeuten.

Das klingt doch schon ganz anders :-)

von Thomas E. (picalic)


Lesenswert?

Lothar schrieb:
> Hatte keine Ahnung was der AVR TFT Treiber genau macht und habe mich
> selbst gewundert, dass der fast ohne Änderungen auf einem LPC ARM lief.

Der schlimmste Zustand einer Entwicklung ist, wenn es funktioniert, aber 
der Entwickler selbst nicht weiß, warum es funktioniert... ;)

: Bearbeitet durch User
von Norbert S. (norberts)


Lesenswert?

Lothar M. schrieb:
> asdf schrieb:
>> Das hast du scheinbar nicht bedacht!
> Es können sich offenbar einige nicht mehr dran erinnern, wie sie
> angefangen haben. Wenn mir damals einer einen 32-Bit STM32 vor den
> Latz geknallt und gesagt hätte "Fang mit dem an. Das ist einfach!", dann
> würde ich heute was anderes machen...

Wohl wahr.
Bei mir war es C-Control, heute wäre das wohl Arduino.

Gruß,
Norbert

von Lothar (Gast)


Lesenswert?

Thomas E. schrieb:
> Der schlimmste Zustand einer Entwicklung ist, wenn es funktioniert, aber
> der Entwickler selbst nicht weiß, warum es funktioniert... ;)

Wenn Du in Windows oder Embedded Linux oder Arduino oder Atmel ASF oder 
CMSIS eine Funktion nutzt, weisst Du dann genau, was die tut, wie die 
Abhängigkeiten sind, und ob die angegebenen Wertebereiche wirklich 
stimmen?

Ich habe hier grade einen LPC ARM bei dem ging der externe Gruppen 
Interrupt nicht, und ich musste dann feststellen, dass im CMSIS Include 
die Enable Register Adresse falsch aus dem Manual abgeschrieben war.

von Prügelvereinsvorsitzender (Gast)


Lesenswert?

der arme nOOb, jetzt hat er den Durchblick..

von Norbert S. (norberts)


Lesenswert?

Prügelvereinsvorsitzender schrieb:
> der arme nOOb, jetzt hat er den Durchblick..

Jo, falsche Frage am falschen Ort gestellt.

n00b, nimm Arduino oder Bascom, mit entsprechendem Starterkit.
Kein Selbstgefrickel sondern eine Fertiglösung mit Programmer oder 
Bootloader.
Am Anfang muß man sich den Stress mit nicht funktionierendem 
Selbstbauprogrammer nicht antun.
Für Arduino und Bascom gibt es reichlich Hilfe und Tuts für Einsteiger.
Die entsprechenden Foren sind auch nicht so arrogant wie hier.

Viel Glück!

Gruß,
Norbert

von Rolf M. (rmagnus)


Lesenswert?

Thomas E. schrieb:
> Lothar schrieb:
>> Hatte keine Ahnung was der AVR TFT Treiber genau macht und habe mich
>> selbst gewundert, dass der fast ohne Änderungen auf einem LPC ARM lief.
>
> Der schlimmste Zustand einer Entwicklung ist, wenn es funktioniert, aber
> der Entwickler selbst nicht weiß, warum es funktioniert... ;)

Am interessantesten finde ich es immer, wenn nach Jahren der Code auf 
einmal nicht mehr funktioniert. Man schaut ihn sich an und stellt fest, 
dass das eigentlich nie hätte funktionieren dürfen.

von Patryk D. (pad_dy)


Lesenswert?

Norbert S. schrieb


> sehr langer text....

Endlich mal eine Antw, die mir doch etwas weiterhilft.

von vloki (Gast)


Lesenswert?

no Debugger schrieb:
> Naja Debugger hat's seit 30 Jahren bei mir nie gebraucht.
>
> Es geht auch ohne,

Aber mit geht es doch viel einfacher und schneller...

von Patryk D. (pad_dy)


Lesenswert?

Ebenfalls Norbert S. :

> Es kommt aber auch sehr darauf an, was man vorhat


Am Anfang die Basics, danach Timer, funk relaiskrte, selbstgebaute 
Lötstation etc.

> und nicht zuletzt wie alt man ist.

17.

von Patryk D. (pad_dy)


Lesenswert?

Prügelvereinsvorsitzender (hui den Namen musste ich kopieren ;D) 
schrieb:


> der arme nOOb, jetzt hat er den Durchblick..

Ohh ja, das tue ich....

von Patryk D. (pad_dy)


Lesenswert?

Um das Thema nochmal kurz anzusprechen:

Ich denke ich kaufe mir einfach ein Buch, nur welches?

Kann mir jemand was Empfehlen.

Sollte nicht mehr als 20€ kosten, kann auch gebraucht sein etc.

von Patryk D. (pad_dy)


Lesenswert?


von Patryk D. (pad_dy)


Lesenswert?


von Stefan F. (Gast)


Lesenswert?

Kostet gar nichts:
http://stefanfrings.de/mikrocontroller_buch/index.html

Dieses Buch vermittelt kein großartig fundiertes Wissen. Aber es 
ermöglicht einen Einstieg. Danach wirst du gezielt die Literatur finden, 
die du brauchst.

von Patryk D. (pad_dy)


Lesenswert?

@Stefan Us

naja da werden mehr die basics der Elektronichen bauteile, löten etc. 
beschrieben, aber wie du schreibst, für den Einstieg...

Ich lese mir mal mein verlinktes Teil durch, da gehts direkt los mit dem 
Programmieren.

von Putin (Gast)


Lesenswert?

Zum Reinspielen einfach mal bei halvar.at schauen, da steht ein sehr gut 
gemachtes Bascom-Tutorial.

Ja, es ist Bascom und ja, Bascom hat nicht den besten Ruf. Zum 
Einsteigen gibt es aber nichts besseres - einfach zu lernen und benutzt 
Ablaufstrukturen, die du auch anderswo finden wirst - Schleife, 
Interrupt und Timer ist jetzt nichts was es nur bei Bascom gäbe. Mit 
Bascom und einem einfachen ATmega 8 kann man sich schon eine ganze Weile 
beschäftigen.

von ach ja doch (Gast)


Lesenswert?

Putin schrieb:
> Zum Reinspielen einfach mal bei halvar.at schauen, da steht ein
> sehr gut
> gemachtes Bascom-Tutorial.
>
> Ja, es ist Bascom und ja, Bascom hat nicht den besten Ruf. Zum
> Einsteigen gibt es aber nichts besseres - einfach zu lernen und benutzt
> Ablaufstrukturen, die du auch anderswo finden wirst - Schleife,
> Interrupt und Timer ist jetzt nichts was es nur bei Bascom gäbe. Mit
> Bascom und einem einfachen ATmega 8 kann man sich schon eine ganze Weile
> beschäftigen.

Alles richtig, alles gut und schön. Es gibt nur einen kleinen 
Schönheitsfehler beim Einsteigen in BASCOM und das ist, man muss es (für 
privat) erst mal kaufen, sprich 89 Tacken abdrücken. Diese Hürde gibt es 
bei LunaAVR nicht.

von Patryk D. (pad_dy)


Lesenswert?

ach ja doch schrieb:


> Es gibt nur einen kleinen
> chönheitsfehler beim Einsteigen in BASCOM und das ist, man muss es (für
> privat) erst mal kaufen, sprich 89 Tacken abdrücken. Diese Hürde gibt es
> bei LunaAVR nicht.


Dann nehme ich halt in Zukunft die Arduino software oder den Arduino 
selber als ftdi.

von Paul B. (paul_baumann)


Lesenswert?

ach ja doch schrieb:
> s gibt nur einen kleinen
> Schönheitsfehler beim Einsteigen in BASCOM und das ist, man muss es (für
> privat) erst mal kaufen, sprich 89 Tacken abdrücken.

Das ist nicht wahr. Eine Testversion, die nur in der Codegröße auf 4KB 
begrenzt ist, kann man bei MCS (Hersteller) herunterladen.
http://www.mcselec.com/index.php?option=com_docman&task=cat_view&gid=99&Itemid=54

4KB muß man erst mal "füllen" -besonders als Anfänger.



mfG Paul

von ach ja doch (Gast)


Lesenswert?

Paul B. schrieb:
> ach ja doch schrieb:
>> s gibt nur einen kleinen
>> Schönheitsfehler beim Einsteigen in BASCOM und das ist, man muss es (für
>> privat) erst mal kaufen, sprich 89 Tacken abdrücken.
>
> Das ist nicht wahr. Eine Testversion, die nur in der Codegröße auf 4KB
> begrenzt ist, kann man bei MCS (Hersteller) herunterladen.
> http://www.mcselec.com/index.php?option=com_docman...
>
> 4KB muß man erst mal "füllen" -besonders als Anfänger.
>
> mfG Paul

Danke dir für den Hinweis. Irgendwie ist das auf deren Seite alles etwas 
unübersichtlich. Auch fehlen mir Versionshinweise. Die Dl-Version ist 
wohl bereits 4 Jahre alt. Mit den 4k gebe ich dir recht. Ich will auch 
beim Preis nicht grundsätzlich meckern. So eine Einmalzahlung ist mir 
persönlich sogar lieber als das Modell Jahreslizenzen. Das myAVR Workpad 
PLUS finde ich übrigens als Einstieg auch ganz interessant

http://shop.myavr.de/index.php?sp=download.sp.php&suchwort=dl62

von Heiner (Gast)


Lesenswert?

geh woanders trollen, n00b!

lg Heiner

von kopf->tisch (Gast)


Lesenswert?

Flamewars mal wieder m(
Es wurden ja einige vernünftige Varianten genannt.
Es gibt z.B. noch die 
http://www.mikrocontroller.net/articles/Infineon_XMC
Einfach an USB und IDE frei herunterladen und man kann auch debuggen.
Und zum drölfzten male Assembler ist heutzutage nur bei bestimmten 
Gegebenheiten notwendig/sinnvoll.
Jede Hochsprache wird vom Compiler idR in "besseren" Assembler übersetzt 
als man das per Hand machen kann.
Beim Arduino hat man auch gleich noch eine Bibliothek dabei so das man 
sehr schnell zu funtionierendem Timer&Co. kommen kann ohne Bitgefrickel 
zu müssen.

von Paul B. (paul_baumann)


Lesenswert?

kopf->tisch schrieb:
> Beim Arduino hat man auch gleich noch eine Bibliothek dabei so das man
> sehr schnell zu funtionierendem Timer&Co. kommen kann ohne Bitgefrickel
> zu müssen.

Das hat man bei Bascom auch. Trotzdem ist es mir lieber, Timer von 
"Hand" einzurichten -da weiß man, was man hat.
Solche fertigen Sachen sind ganz nützlich, z.B. bei der Ausgabe auf LCD 
oder über die serielle Schnittstelle. Trotzdem habe ich dabei manchmal 
das Gefühl, durch eine Milchglasscheibe auf das Geschehen zu gucken.

MfG Paul

von kopf->tisch (Gast)


Lesenswert?

Paul B. schrieb:
> kopf->tisch schrieb:
>> Beim Arduino hat man auch gleich noch eine Bibliothek dabei so das man
>> sehr schnell zu funtionierendem Timer&Co. kommen kann ohne Bitgefrickel
>> zu müssen.
>
> Das hat man bei Bascom auch. Trotzdem ist es mir lieber, Timer von
> "Hand" einzurichten -da weiß man, was man hat.
> Solche fertigen Sachen sind ganz nützlich, z.B. bei der Ausgabe auf LCD
> oder über die serielle Schnittstelle. Trotzdem habe ich dabei manchmal
> das Gefühl, durch eine Milchglasscheibe auf das Geschehen zu gucken.
>
> MfG Paul

Es geht hier ja nicht darum das man das Datenblatt auswendig kennt und 
sämtliche Register per Bitmasken am besten in HEX reinhackt.
Eine Bibliothek ist ja genau dafür da das Du Dir keine Gedanken machen 
mußt es aber geht ;-)
Wieviele hier nutzen z.B. PeDas Entprellung und wieviele haben 
verstanden wie das funktionert ?
Läuft trotzdem 1A ;-)

von Stefan F. (Gast)


Lesenswert?

> Wieviele hier nutzen z.B. PeDas Entprellung und wieviele
> haben verstanden wie das funktionert ?

Ich habe verstanden, wie sie funktioniert und nutze sie trotzdem nicht. 
Das soll aber bitte nicht als Abwertung aufgefasst werden. Man kann aus 
dem Code einiges Lernen.

von Sheeva P. (sheevaplug)


Lesenswert?

Claymore schrieb:
> Stefan U. schrieb:
>> Benutze stattdessen für den Anfang einen Texteditor und den avr-gcc
>> Compiler. Mit komplexeren Entwicklungsumgebungen beschäftigt man sich
>> später, wenn man die Grundlagen verstanden hat.
>
> Das kann ich so nicht unterschreiben. Besser gleich mit vernünftigen
> Werkzeugen arbeiten, und dazu gehört ein richtiger Debugger. Sonst
> besteht die Gefahr, dass man sich eine sehr umständliche Arbeitsweise
> bei der Fehlersuche angewöhnt.

Auch ich würde für den Anfang erst einmal zu einem ordentlichen Editor 
und dem avr-gcc raten. Bevor man einen Debugger sinnvoll einsetzen kann, 
muß man erst einmal die Grundlagen beherrschen. Außerdem braucht man 
auch keine IDE, um einen Debugger zu benutzen: avr-gdb existiert.

Der Vorteil einer klassischen CLI-Toolchain ist, daß man versteht, was 
im Hintergrund passiert. Das ist wertvolles Wissen auch dann, wenn man 
sich später für eine IDE entscheidet.

Außerdem läuft die klassische Toolchain nahezu überall und für beinahe 
jedes Target gleich. Gleichgültig, ob ich für Linux auf x86_64, auf ARM 
oder für AVR code: GNU Make, GCC-Compiler, GDB und die anderen Tools 
funktionieren immer nahezu gleich, was ich einmal gelernt habe kann ich 
überall nutzen.

von Stefan F. (Gast)


Lesenswert?

Die DIskussion könnte fast 1:10 auch für Java gelten. Ich bin Leuten 
begegnet, die entwickeln seit Jahren mit Maven, sind aber nicht 
imstande, ein simples Hello-World Programm (bestehend aus einer einzigen 
*.java Datei) zu starten. Da frage ich mich dann schon, ob sich die 
Methodik in die richtige oder falsche Richtung entwickelt.

Spätestens, wenn ein irrer Herrscher alle Computer durch einen EMP 
zerstört, müssen wir uns auf die Grundlagen besinnen und von neuem 
anfangen können.

Zumindest fühle ich mich wohler, wenn ich zumindest theoretisch weiss, 
wie man eine Glühlampe baut und nutzt, ohne dafür eine App herunter 
laden zu müssen.

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.