Forum: Mikrocontroller und Digitale Elektronik Einstieg in der MicroController Welt


von m.Kai (Gast)


Lesenswert?

Hallo zusammen,

ich habe eine Frage und zwar : Elektor bietet viele Bücher zum Thema 
Microcontroller. Ich weiss allerdings nicht wo ich am besten anfangen 
muss?
Es gibt viele Bücher über die Familie 8051er ( Atmel AT90S53 ..)
Es gibt aber auch ein Board von Reneseas RC8/13.

Andere hersteller wie Mikroe bietet unterschiedliche Boards für 
AVR-Atmel, PIC-Microchip. ARM, DsPIC etc..

Es ist mir auf einmal zuviel geworden und fühle mich überfordert schon 
nur vom Lesen!

Welche Sprache? das hat sich mittlerweile erledigt, ich habe mich für C 
entschieden, ich will mich mit Assembler nicht quälen. Aber auch kein 
BAsic oder Pascal.

Nun das problem bei vielen Evaluationsboard, dass man die passende 
Compiler dazu kaufen muss!! hier ist der Hacken, diese Compiler kosten 
sehr viel Geld.

An für sich ich habe damals mit dem PIC16F84A gearbeitet und fand ich 
cool.
Ich wollte ein PIC18f oder 16F877 testen. Die meisten 
Entwicklungsumgebung sind aber kostenpflichtig!

Bei AVR habe ich Interesse an dem Atmega 16 oder 32. Es gibt auch ein 
fertiges Board von Mikroe dafür. ich weiss allerdings nicht ob mit dem 
AVR-Studio den Atmega 32 programmieren kann!!

Kann mir jemanden irgendwie helfen zu erklären wie ich mich für eine 
Microcontroller-Familie entscheide und wo gibt es kostenlose tools 
dafür?
wie habt ihr angefangen? muss ich wirklich den 8051 erstmal beherrschen?

vielen dank

von Peter D. (peda)


Lesenswert?

m.Kai schrieb:
> ich weiss allerdings nicht ob mit dem
> AVR-Studio den Atmega 32 programmieren kann!!

Mit AVRStudio/WINAVR kannst Du alle 8Bit-AVRs programmieren:
- ATtiny
- ATmega
- AT90


Peter

von frankman (Gast)


Lesenswert?

Häh! Seit wann ist denn die Entwicklungsumgebung für PIC 
kostenpflichtig! Du kannst MPLAP von Microchip runterladen und auch die 
Kompiler dafür...kostenlos...
Und Du kannst jeden Pic in C programmieren...

von Tom M. (tomm) Benutzerseite


Lesenswert?

m.Kai schrieb:

> Welche Sprache? das hat sich mittlerweile erledigt, ich habe mich für C
> entschieden, ich will mich mit Assembler nicht quälen. Aber auch kein
> BAsic oder Pascal.

C ist sicher ne gute Wahl. Und da der Compiler auch ASM Listings 
erzeugen kann, kannst du lose mal in die ASM Welt reinschnuppern um die 
Zielmaschine besser zu verstehen.

> Nun das problem bei vielen Evaluationsboard, dass man die passende
> Compiler dazu kaufen muss!! hier ist der Hacken, diese Compiler kosten
> sehr viel Geld.

Es gibt auch viele Eval-Boards von Drittherstellern ohne "bundling" mit 
kostenpflichtiger SW. Für die gängigen Plattformen gibt es einen frei 
verfügbaren C Compiler/Crosscompiler (avr-gcc, arm-gcc), oder frei 
verfügbare IDEs wie das avrstudio für AVR Entwicklung unter Windows.

> An für sich ich habe damals mit dem PIC16F84A gearbeitet und fand ich
> cool.
> Ich wollte ein PIC18f oder 16F877 testen. Die meisten
> Entwicklungsumgebung sind aber kostenpflichtig!

Meine sehr subjektive Meinung: Mir gefallen die PICs nicht so gut, weil 
ich Mühe mit deren Assembler habe. Ist einfach anders als was ich sonst 
so kenne. 8051 ASM ist mein Albtraum. ;) Da bin ich wohl noch 65xx ASM 
verwöhnt. ;)

> Bei AVR habe ich Interesse an dem Atmega 16 oder 32. Es gibt auch ein
> fertiges Board von Mikroe dafür. ich weiss allerdings nicht ob mit dem
> AVR-Studio den Atmega 32 programmieren kann!!

Mit avrstudio kannste praktsich (für) alle 8bit AVR proggen.

> Kann mir jemanden irgendwie helfen zu erklären wie ich mich für eine
> Microcontroller-Familie entscheide und wo gibt es kostenlose tools
> dafür?

Meine sehr subjektive Empfehlung: AVR, solange 8 bit Power reicht. Für 
mehr Schub dann etwas mit ARM.

Wenn dir die PICs gefallen, bleib dabei. Was gefällt lernt sich 
leichter. :)

> wie habt ihr angefangen? muss ich wirklich den 8051 erstmal beherrschen?
Mein erster MC war der 8051. Den hab ich allerdings als Krampf in 
Erinnerung behalten... 8) Nicht totzukriegen diese Plattform hehe...


Viel Spass! :)

von Johann (Gast)


Lesenswert?

Hi,

ich würde mir das da besorgen:
http://processors.wiki.ti.com/index.php/MSP430_LaunchPad_%28MSP-EXP430G2%29

Konkurrenzlos billig und der MSP430 ist ein vernünftiger Controller mit 
von-Neumann-Architektur und orthogonalem Befehlssatz - sehr schön, wenn 
man mal in Assembler coden will. Nur braucht TI recht lange, bis sie 
liefern - offenbar ist die Nachfrage nach diesem Board recht hoch.

von Florian (Gast)


Lesenswert?


von Jax (Gast)


Lesenswert?

Wenn PIC, dann PIC32. Alles andere mit PIC im  Namen meiden.

Jax

von m.Kai (Gast)


Lesenswert?

danke schonmal :-)

@Jax (Gast) : warum PIC32?? ich weiss nicht mal wie die PICs 16Bit, 
24Bit aufgebaut sind!! ist es nicht zuviel aufeinmal mit dem 32Bit 
anzufangen?

Mein Plan wäre : mit PIC anfangen und irgendwann zu AVR und ARM 
umswitschen, aber ich weiss nicht ob ich dann direkt mit dem AVR 
anfangen soll!

von Karl H. (kbuchegg)


Lesenswert?

Was man IMHO auch nicht ausser acht lassen sollte:
Gibt es für den Zielprozessor eine Online-Community?

Hier im Forum dreht sich zu ca. 90% alles um die 8-Bit AVR. Du findest 
hier ein Tutorial und bei Fragen wird dir schnell geholfen.

Wenn du etwas ähnliches für die PIC an der Hand hast (ich kenne nur 
Sprut als Informationsquelle für die PIC), dann ist das durchaus ok. 
Aber als Einzelkämpfer im stillen Kämmerlein hat man es doppelt schwer.

von Olaf (Gast)


Lesenswert?

> Nun das problem bei vielen Evaluationsboard, dass man die passende
> Compiler dazu kaufen muss!! hier ist der Hacken, diese Compiler kosten
> sehr viel Geld.

Bei Renesas kannst du den gcc verwenden und er ist dann genauso 
kostenlos wie fuer andere Controller auch, oder du kannst den Compiler 
von Renesas verwenden. Er ist dann beschraenkt auf maximal 64kByte 
Codegroesse. Also mehr als die kleinen Controller ueberhaubt an Flash 
haben.

> warum PIC32?? ich weiss nicht mal wie die PICs 16Bit,
> 24Bit aufgebaut sind!! ist es nicht zuviel aufeinmal mit dem 32Bit
> anzufangen?

Du willst in C programmieren. Da merkst du normalerweise nicht wieviel 
Bit dein Prozessor hat. Es ist lediglich so das auf 8Bit Prozessoren 
dann Programme die 32Bit Variablen verwenden deutlich langsamer laufen.

Fuer dich als Anfaenger ist die Qualitaet des Buches (ja richtig, echtes 
Buch, echtes Papier, echter Lernerfolg) wichtig. Der Prozessor ist 
eigentlich relativ unwichtig. Solltest du noch kein C koennen waere es 
noch klueger die Sprache erstmal auf dem PC zu lernen.

Olaf

von Picler (Gast)


Lesenswert?

Mach keinen Quatsch !

Fang mit AVR an und bleibe dabei, bis Du irgendwann
einen ARM (ich weiss, wahrscheinlich hast Du zwei)
wirklich benötigst.

Das funktioniert auch mit Microchip - nur hier schlechter.

Auch das launchpad (TI)ist eine kostengünstige Schnuppermöglichkeit.

Die Frage ist wozu Du das möchtest.
Fröhliches LED-Blinken aus Interesse?
Studium? Beruf?

Im Beruf musst Du wechseln, wenn das gefordert wird.
Privat entscheidest Du.

Gruss
Dietmar

von A. N. (bastelmaniac)


Lesenswert?

Ich würde mich freuen wenn mein LaunchPad, welches ich vor ewigen Zeiten 
bei TI bestellt habe, endlich mal ankommen würde.

Ich halte den auch für eine super Einstiegsmöglichkeit, aber dazu muss 
das Ding endlich mal vernünftig verfügbar sein. Der Liefersupport bei TI 
selbst ist auch etwas undurchsichtig, wenn man nicht telefonieren kann.

Ansonsten, wer der englischen Sprache mächtig ist, kann sich mal in der 
Literatur z.B. zum MSP430 umschauen (z.B. John H. Davies). Ich finde 
diese Bücher zum Teil deutlich besser gestaltet und verständlicher um 
sich etwas Autodidaktisch anzueignen.

von Picler (Gast)


Lesenswert?

Bei uns ist das etwas anderes.
Wir sind Industriekunden und werden von TI
direkt unterstützt.
Die schmeissen uns mit den Dingern zu.
Gerade noch auf der electronica abgelehnt mit
so einem Karton duch die Gegend zu laufen.

Privat scheint es etwas schleppend zu laufen.

von A. N. (bastelmaniac)


Lesenswert?

Picler,

du meinst mit "den Dingern" die LaunchPads?

Ist ja mal extrem ätzend, wenn damit die LaunchPads gemeint sind, dann 
haben die also wohl doch genug auf Lager.

von Jax (Gast)


Lesenswert?

Hallo

m.Kai schrieb:
> danke schonmal :-)
>
> @Jax (Gast) : warum PIC32?? ich weiss nicht mal wie die PICs 16Bit,
> 24Bit aufgebaut sind!! ist es nicht zuviel aufeinmal mit dem 32Bit
> anzufangen?
>

PIC32 basiert auf der MIPS-Architektur, während die anderen
Popel-PICs nicht mal was haben, was man als Architektur
bezeichnen könnte... Und PIC<PIC32 Assembler machen nur Masochisten.
MIPS ist eine einfache und geradlinige Arch., ob 8 oder 32
Bit spielt da keine grosse Rolle. Bei Microchip gäbe es
auch ein Low-Cost-Board.

> Mein Plan wäre : mit PIC anfangen und irgendwann zu AVR und ARM
> umswitschen, aber ich weiss nicht ob ich dann direkt mit dem AVR
> anfangen soll!
>

Das halte ich für unnötig.
Wer AVR, MSP430 oder ARM kennt, lässt vom
PIC < PIC32 die Finger...

Ein Cortex wäre für den Einstieg sicher etwas zu komplex,
aber mit AVR oder 430 macht man nix falsch.

Aber nimm´was Dir gefällt.

Jax

von Picler (Gast)


Lesenswert?

@A.F.

Ja- meine ich.
TI benutzt die Teile als Kugelschreiberersatz für
seine Kunden. Finde ich auch besser.
Ich hatte früh so ein Teil in den Fingern und würde
die Mini-MSPs in der Serie einsetzen für kleine Dinge-
wenn sie denn nur lieferbar wären ; )

Die Verteilwege für Shop und interne Verwendung
ist wohl stark getrennt.
Herr Baumann kennt das noch, so ähnlich ; )

von Max H. (maxheadroom)


Lesenswert?

Also ich habe mit AVR angefangen. Nicht so lange her.
Gefällt mir gut und der Einstieg war nicht so schwer, zumal ich von der 
Elektrinikecke ja komme.
Ich stand vor der Wahl zwischen AVR und PIC.
Hier findet man sehr viele Hilfreiche Informationen und Tutorials zum 
AVR.
Von Kollegen habe ich gehört das sie eher zu PIC tendieren, weil Atmel 
Lieferprobleme mit den Controllern hat. Also nicht zuverlässig ist.
Kenne viele Freischaffende die PIC gegenüber den AVR aus diesem Grund 
verbauen.

von m.kai (Gast)


Lesenswert?

ich finde alle Tips wirklich lesenswert. Ich danke euch alle.
Ich habe noch eine Frag bezüglich gute Bücher.

Es wurde oben folgendes geschrieben : "Fuer dich als Anfaenger ist die 
Qualitaet des Buches (ja richtig, echtes
Buch, echtes Papier, echter Lernerfolg) wichtig."

Welche Bücher würdet ihr mir dann empfehlen?

Ich habe einige Bücher aufgeschrieben wie :

- I/O Projekte für den PC
- Basiskurs R8C/13
- Visual Basic ohne Stress

Mein Problem ist nämlich : ich weiss nicht wo ich anfangen soll!
OK AVR8 und C?

Ich will ein Home-Alarm Anlage bauen. da brauche ich schon einiges an 
I/O.
Sind die Tutorials vom Atmega8 auch auf dem Atmega16 oder 32 
übertragbar?
dann kann ich vielleicht direkt mit dem Atmega32 oder atmega644 
anfangen?

Dann kommt noch die andere Welt und zwar GUI!! ich will mein 
Microcontroller über ein GUI ansteuern und das ganze am besten übers 
Internet!

Ein Freund von mir meint : lass die Finger vom Visual Basic! ok aber 
warum?

soll ich dann lieber C++ lernen? oder Java?

Also wie ihr sieht, einerseits ist die Microcontroller Welt, andereseits 
ist die Steuerung und GUI Programmierung!

Was benutzt ihr konkret?

Vielen Dank für jeden Tips .

von A. N. (bastelmaniac)


Lesenswert?

@Picler

scheint so zu sein mit der Trennung. Der zahlende Privatkunde scheint 
bei TI trotz allen Beteuerungen sich gegenüber "Amateuren öffnen zu 
wollen"(siehe z.B. LaunchPad Wiki etc.) immer noch so eine Art 
notwendiges Übel zu sein. Kommt zumindest so rüber, wenn die tatsächlich 
LaunchPads kostenlos und gleich Kistenweise an Industriekunden verteilen 
sollten.

@m.Kai

Sachte, sachte. Fang erstmal klein an, bevor du solch recht große 
Projekte stemmen möchtest. So wie du dir es denkst funktioniert das 
nicht.

Ich neige sogar dazu dir zu Prophezeien, dass du dieses Projekt 
"Alarmanlage" nie durchführen wirst und irgendwann ein Fertigprodukt 
käufst.

Die Planlosigkeit die du an den Tag legst und die überschwengliche 
Ambitioniertheit des Projektvorhabens  lässt dies leider vermuten. Deine 
willkürliche Literaturauswahl stützt diese Vermutung zusätzlich.

Wenn du es aber wirklich ernst meinst. Dann bring dir erstmal C 
Grundlagen bei. So ganz abseits aller Mikrocontroller und GUIs. Wenn die 
da sind, kann man weiter denken und sich mit GUIs beschäftigen usw. usf.

von Wolfgang B. (et-tutorials) Benutzerseite


Lesenswert?

Vielleicht hast Du ja auch Lust mit meinem kostenlosen Video-Kurs 
anzufangen.
http://ET-Tutorials.de/Mikrocontroller

von m.kai (Gast)


Lesenswert?

@ Wolfgang Bengfort : vielen Dank . Ich habe mich abonniert und fange an 
direkt die ersten Lektionen zu lesen.

Und danke an alle, die auch Kritik geübt haben. Ja es ist Hart aber 
wahr! wenn man aber keine Ahnung hat, man versucht vieles zu probieren. 
Oft bringt das nicht! und das ist der Fall bei mir.

Jetzt habe ich mich für C entschieden und werde alles über C lernen und 
erfahren. Mit der Zeit weiss ich vielleicht welche Microcontroller für 
meine Bedürfnisse passt.

Ich habe nur von anderen Erfahrenen User gesagt bekommen :

1-Fang bloß nicht mit 8051er und Assembler an! das ist grausam.

2-Ein Freund von mir : Ich arbeite mit PICs, weil sie in der Industrie 
oft eingesetzt werden und man hat keine Lieferungsprobleme beim 
Hersteller.

3-Ein Freund : Ja ich habe mit Atmega angefangen(Atmega8), aber du 
kannst nehmen was du halt magst!

4-Noch ein Freund, der sich diplomatisch ausgedruckt hat : im Prinzip 
sind alle Microcontroller gleich ( vom Prinzip her), such dir ein 
MicroController, der dein Projekt mit minimalen Aufwand löst und der 
viele Schnittstelle und Features bietet!!

versteht ihr jetzt meine Problematik? ich habe keine klare Ansage 
bekommen nach dem Motto : Arbeiten Sie damit und schluß!! dann hätte ich 
mich in einem bestimmten Thema eingearbeitet und wäre ich glücklicher 
damit.

Ich fühle mich einfach allein in dieser MicroController Welt gelassen 
und nach Dem Motto : Alle wege führen nach ROM!!

von Max H. (maxheadroom)


Lesenswert?

Mein Tipp an dich:

Nimm dir einen Atmega8 mit einem EVAL-Board.
Dort fängst du mit den einfachsten Dingen wie LED ein/aus, Interrupt, 
Timer oder UART an. Mach am besten die Tutorials die du hier findest 
durch.
Die Sachen die du mit dem AVR lernst kannst du, wenn du eventuell später 
auf PIC umsteigst, wiederverwenden.

von m.kai (Gast)


Lesenswert?

@ Max Headroom : kannst du mir ein Eval-Board empfehlen?

ich habe eins von Mikroe gefunden : 
http://www.mikroe.com/eng/products/view/321/easyavr6-development-system/

Auch der ATmega8 wird unterstützt und andere AVR-MicroController. Der 
Preis ist ziemlich hoch!

Ich bin bereit mein Eval-Board sogar als Kit zu kaufen und es selber zu 
löten. kennst du so ein Bausatz wo möglich LEDs, Schnittstelle usw drauf 
sind?

von IsobarX (Gast)


Lesenswert?

Hallo Kai,

um Dir ein kleinen Überblick zu verschaffen, sollen einige Hinweise nur 
stichpunktartig wieder gegeben werden:

- Persönliches Ziel: Hobby und/oder Beruf (Anforderungen an den MCU,
  siehe  GUI, siehe Embedded OS)

- Communitygröße (Support): Microship, Atmel, LPC, TI, NXP, STM, etc.

- Verwendung von Libraries(vorhanden?): ja oder nein

- Entwicklungssoftware: Compiler, Linker, Editor
  und Hardwareunterstützung: Programer bzw. Debugger, evt. MCUs 
(Library)

- Wahl der Programer-Debugger-Hardware

- fundierte C-Prorammierkenntnisse: Programmstruktur, Variablen,
  Operatoren (z.B. Bitmanipulation, u.v.), Funktionen, Strukturen,
  Speicherklassen (Register, static, etc.), Pointer und Ablaufsteurung
  http://www.tu-chemnitz.de/urz/kurse/unterlagen/C/index.htm

- solide Grundkenntnisse in Analogtechnik und Digitaltechnik (berzüglich
  ihrer Anwendung):
  Bauteile: Kondensator (Filter,Stüzukondensatoren, etc.), Spulen,
  Widerstände, Dioden, Transistor (Beschaltung),
  Feldeffekttransistoren,   Schaltungen, Spannungsregler aller Art,
  Relais (elektomagnetisches Feld zur Erzeugung einer Bewegung)...
  Digitaltechnik: Logik,Binär, Hex, etc.

- Minimalwissen wie ein MCU funktioniert (Register,...)

- Viel Motivation und Zeit mitbringen

- Assembler-Programmierung dient nur dem Verständnis, wie ein  MCU
  funktioniert; hat seinen Platz im Bereich der Echtzeitanwendung.
  Aufgrund der besseren Verständlichkei und Wartbarkeit des Codes (macht
  den größten Zeil der Arbeit aus) sowie hohe Sicherheitsanforderungen,
  z.B. im Bereich der  Medizin- sowie Automobiltechnik 
(Programmiernormen
  IECxxx, MISRA),  sind Projekte meist in C bzw. (advanced)embedded C++
  geschrieben.
------------------------------------------------------------------------ 
---

MfG
IsobarX

von Max H. (maxheadroom)


Lesenswert?

Hier eine kleine Übersicht:
http://www.mikrocontroller.net/articles/AVR-Tutorial:_Equipment#Fertige_Evaluations-Boards_und_Starterkits

Ich habe mir das STK500 gekauft. Hat für den Anfang alles drauf was du 
brauchst. Ist halt nicht ganz billig aber mir war es Wert.
Nachteil ist das noch immer eine RS232 Schnittstelle verbaut wird, statt 
USB zum Programmieren.

von Wolfgang M. (womai)


Lesenswert?

Also soooo wichtig is die Wahl der Prozessorfamilie nicht, wenn Du eh in 
C programmierst. (IMHO Assembler macht man heutzutage nur als Masochist, 
egal fuer welchen uC - fuer viele uCs gibt es grats-C-Compiler - oder 
fuer kleine, zeitkritische Routinen). Die Architektur ist dann sehr 
zweitrangig - darum muss sich der Compiler kuemmern.

Ganz generell wuerde ich fuer den Einstieg eher einen 
8-bit-Mikrocontroller empfehlen. Die sind tendenziell leichter 
ueberschaubar und bringen daher schnelleres Erfolgserlebnis. Wenn man 
spaeter wirklich mehr Rechenleistung braucht (das ist seltener als man 
glaubt), ist der Aufstieg zu 16- oder 32-Bit-Typen auch nicht so schwer. 
Schau auch, dass der uC in DIP-Packung erhaeltlich ist (da sieht z.B. 
die TI MSP430-Serie ganz schlecht aus).

Zu PIC vs. Atmel kann ich nur sagen: Atmel ist in Westeuropa weiter 
verbreitet (vor allem im Hobbybereich), PIC dominiert ganz eindeutig 
hier in den USA (Atmel ist hier fast unbekannt und VIEL schwerer zu 
bekommen). Wenn Du also unbedingt Unterstuetzung auf Deutsch willst, ist 
Atmel eventuell besser. Wenn Du aber eh Englisch fliessend lesen kannst, 
gibt es fuer PIC mindestens(!) so viel Unterstuetzung und Literatur 
(oder eher mehr), auch fuer Hobby-Bastler.

Die Atmel 8-Bitter sind mehr oder weniger gleich leistungsfaehig wie die 
PIC18-Serie (PIC16-Serie ist eher veraltet). Fuer beide gibt es 
Gratis-C-Compiler. Mircochip hat u.a. auch die dsPIC-Serie (16-bitter), 
die sind ganz schoen leistungsfaehig. Lass Dich nicht von den 
Taktfrequenzen verwirren - AVR barucht fuer (die meisten?) Befehle bloss 
einen Takt, PIC16F un 18F vier Takte, dafuer kann man letztere aber viel 
hoeher takten, damit gleicht sich auch der Unterschied weitgehend aus.

Ich selber benutze hauptsaechlich PIC. Der PIC18F4520 (oder 18F2520) ist 
ein ziemlich gutes Einstiegsmodell. (Lass Dich nicht von den Unmengen an 
PIC-Modellen verwirren, viele sind bloss minimale Variationen; als 
Bastler, wo man bloss ein paar Stueck barucht, nimmt man dann meist 
einfach den besten einer Serie;). PIC18F4550 ist komplexer, aber sehr 
nett, weil er einen USB-Port bereits integriert hat.

Wolfgang

von m.kai (Gast)


Lesenswert?

@ IsobarX und MaxHeadroom : danke für die ausführliche Beschreibung. So 
was habe ich mir gewünscht. Eine grobe Übersicht damit ich Weiß was 
alles auf mich zukommt. Jetzt verstehe ich wie viel ich noch lernen muss 
und dass Microcontroller Lernen ist nicht mal eben so! aber ich frage 
mich: da brauche ich dann bestimmt 1Jahr oder mehr um mein Wissen in den 
oben beschriebenen Bereiche zu vertiefen. Das ist fast ein E-Technik 
Studium.

Jetzt verstehe ich  auch warum viele Anbieter Geld für ein Compiler 
verlangen! weil sie nämlich vieles als Librarys für den User geschrieben 
haben. Richtig? oder schreibt ihr wirklich alles allein?

taugen dann die kostenlose GCC, AVR-Studio was? ich will halt momentan 
nur Geld für ein Eval-Board ausgeben.

Ich muss auf jeden Fall dann ruhige Minute haben um ein die 
Zusammenhänge zwischen diesen Bereiche zu verstehen ( Microcontroller, 
Software, Digitaltechnik etc..)

@ ISOBAR X : wobei ich immer noch nicht verstanden habe was das ganze 
mit Embedded C++ zu tun hat?

Ich weiß nur dass man MicroController mit C oder Assembler programmiert 
werden. Die GUIs werden bei den meisten Firmen in der Industrie mit C++ 
programmiert.

außer bei der reine Anwendungssoftware Firmen, die bevorzugen lieber 
Java, Visual Basic etc...

Naja ich brauche dann viel Geduld, Kaffee, und Zeit.

Respekt echt für alle, die sich mit dem Thema auskennen. das ist echt 
die Königsdisciplin!

Ich bin weiterhin interessiert und dankbar für jeden Tipp, die ihr hier 
schreibt. Das wird bestimmt auch viele andere  Anfänger helfen.

Danke :-)

von Karl H. (kbuchegg)


Lesenswert?

m.kai schrieb:


Wenn ich nochmal meinen Senf dazugeben darf

> alles auf mich zukommt. Jetzt verstehe ich wie viel ich noch lernen muss
> und dass Microcontroller Lernen ist nicht mal eben so!

Ich glaube herausgelesen zu haben, dass du auch bei C noch mit Neuland 
anfängst.
In dem Fall würde ich dir raten, dieses Thema erst mal vorzuziehen. 
Besorg dir ein C-Buch und fang auf dem PC(!) an, deine ersten C Programm 
zu schreiben. Und wenn du dort dann ein wenig Sicherheit gewonnen hast, 
erst dann mach den Schritt zum µC. Für C-Programmierung auf dem PC 
findest du wesentlich besser geeignete Literatur, die dich an die Hand 
nimmt und dich Schritt für Schritt durch die C-Einstiegshürden führt.
Wenn du dann auf einen µC wechselst, kommen dann auch noch die 
µC-spezifischen C-Hürden dazu. Aber da du dann schon auf einen 
einigermassen soliden C-Grundstock zurückblicken kannst, schreckt dich 
das dann viel weniger, als wie wenn du jetzt einen n-Fronten Krieg 
führst. Im Endeffekt bist du schneller unterwegs, auch wenn die ersten 
Erfolgserlebnisse auf dem µC erst mal auf sich warten lassen.

> aber ich frage
> mich: da brauche ich dann bestimmt 1Jahr oder mehr um mein Wissen in den
> oben beschriebenen Bereiche zu vertiefen.

Du beliebst zu scherzen.
Nach 1 Jahr bist du bestenfalls fortgeschrittener Anfänger :-)
Na, so krass ist es nicht. Aber die Lernkurve ist schon steil. 1 Jahr 
ist nicht viel Zeit.

> Jetzt verstehe ich  auch warum viele Anbieter Geld für ein Compiler
> verlangen! weil sie nämlich vieles als Librarys für den User geschrieben
> haben. Richtig?

Du unterschätzt, wie viel Entwicklungszeit in die Entwicklung eines 
Compilers fliesst. Da kommen schnell mal ein paar zig Mannjahre 
zusammen. Die wollen bezahlt werden. Und natürlich auch das laufende 
Bug-fixing und die Weiterentwicklung.

> oder schreibt ihr wirklich alles allein?

In der µC-Szene, zumindest in der Größenklasse der µC von denen hier die 
Rede ist, wird eigentlich das meiste vom Anwendungsprogrammierer 
erledigt. Ist auch nicht weiter schwer, denn da kommen eher selten 
ausgefallene Dinge vor. Das meiste fällt in die Kategorie: 
Schnittstellen einlesen -> Daten bearbeiten -> auf Schnittstelle 
ausgeben.

> taugen dann die kostenlose GCC, AVR-Studio was?

natürlich

> ich will halt momentan
> nur Geld für ein Eval-Board ausgeben.
>
> Ich muss auf jeden Fall dann ruhige Minute haben um ein die
> Zusammenhänge zwischen diesen Bereiche zu verstehen ( Microcontroller,
> Software, Digitaltechnik etc..)

Ich hab das Gefühl, du hast noch nicht so recht eine Vorstellung davon, 
was auf dich zukommt. Mit einer ruhigen Minute ist es nicht getan.

> @ ISOBAR X : wobei ich immer noch nicht verstanden habe was das ganze
> mit Embedded C++ zu tun hat?

Ist auch nur eine Programmiersprache. Allerdings sind wir dann schon bei 
etwas leistungsfähigeren Prozessoren auf denen dann auch schon mal ein 
kleines Betriebssystem läuft.

> Ich weiß nur dass man MicroController mit C oder Assembler programmiert
> werden. Die GUIs werden bei den meisten Firmen in der Industrie mit C++
> programmiert.

Kann sein. Muss nicht sein.
C, C++, .... sind alles nur Programmiersprachen. Werkzeuge.

> Respekt echt für alle, die sich mit dem Thema auskennen. das ist
> echt die Königsdisciplin!

Übertreib nicht. Bis zu einem gewissen Level können das fast alle 
lernen. Manche kommen über diesen Level nie hinaus und mache schaffen 
auch diesen Mindestlevel nicht. Aber der Großteil packt das schon. 
Allerdings: Geschenkt wird einem nichts. Die Frusttoleranz sei besser 
sehr hoch. Dafür sind aber auch die Erfolgserlebnisse umso schöner. Du 
siehst dann plötzlich die popelig vor sich hinblinkende LED auf dem 
DVD-Player mit ganz anderen Augen.

von m.Kai (Gast)


Lesenswert?

hallo nochmal.

Ich habe ein Kurs bei der VHS gefunden, was c++ angeht.
Ich bin am überlegen ob ich so ein Kurs buche oder ob ihr sehr gute 
Bücher über C und C++ kennt.

https://dienste1.stadt-koeln.de/vhs/index.php?page=Kursinfo&kc=151083

von Karl H. (kbuchegg)


Lesenswert?

m.Kai schrieb:
> hallo nochmal.
>
> Ich habe ein Kurs bei der VHS gefunden, was c++ angeht.
> Ich bin am überlegen ob ich so ein Kurs buche oder ob ihr sehr gute
> Bücher über C und C++ kennt.
>
> https://dienste1.stadt-koeln.de/vhs/index.php?page=Kursinfo&kc=151083

Da ich selbst Einsteigerkurse gehalten habe:


Dieser Inhalt

> Variablentypen, Speicherklassen, Zeiger, Referenzen, Funktionen,
> Verzwei-gungen, Logische Operatoren, Schleifen, Fallunterscheidung,
> Arrays, Strukturen, Klassen, Zugriffsrechte, Konstruktoren,
> Destruktoren, Objektorientierte Programmierung, Vererbung, Polymorphie,
> Abstraktion, C-Strings, Dynamische Speicherverwaltung.

in 5 Tagen.
Das ist völlig unmöglich.
Mach eher 5 Monate draus, bis der Großteil dieser Inhalte sicher sitzt. 
Für einige wie zb. Objektorientierte Programmierung, Vererbung, 
Polymorphie, Abstraktion sind eher Jahre angesagt, bis das alles sicher 
sitzt und du in der praktischen Anwendung nicht mehr allzuviele Böcke 
schiesst.

Alleine über das Zusammenspiel
"Konstruktoren, Destruktoren, Dynamische Speicherverwaltung"
kann ich dir einen 7-Tage Kurs machen, bei dem du nachher ob der 
Informationsfülle mit den Ohren schlackerst. Und da setzt ich aber gute 
C++ Kentnisse voraus.

Spar dir das Geld für den Kurs und kauf dir lieber einen Stroustroup im 
Buchhandel. Um das Geld kannst du dir 3 oder 4 Bücher kaufen und beim 
jeweiligen Thema dann eine 2te, 3te oder gar 4te Meinung einholen und 
nachlesen, was ein anderer Autor zum selben Thema zu sagen weiß.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Picler schrieb:

> Privat scheint es etwas schleppend zu laufen.

Nee wirklich? Lieferzeit für meine erste und letzte TI Bestellung 11 
Monate. Ich hatte privat eine ez430 Chronos bestellt.

von Jay (Gast)


Lesenswert?

Hallo!

Ich bin auch erst vor kurzem angefangen, mich privat für Microkontroller 
zu interessieren. Eigentlich vor allem, weil ich neue Herausforderungen 
gesucht hab, also nur aus Spaß an der Freude.
Allerdings muss ich sagen, dass ich Programmierer von Beruf bin, 
allerdings auf dem PC und nicht mit Assembler oder C. Beides kannte ich 
also noch nicht (bzw. nur sehr rudimentär). Ich arbeite beruflich vor 
allem mit (im Moment) Delphi, hab aber früher auch schon mit anderen 
Sprachen gearbeitet (VB, 4GL, etc.)

Viele haben hier empfohlen, mit C statt mit Assembler anzufagen. Ich 
habe mich genau zu der anderen Richtung entschieden. Obwohl für mich 
klar war, dass ich mit C arbeiten möchte, hab ich erst mal das Tutorial 
hier auf diese Homepage durchgearbeitet, das in ASM geschrieben ist. 
Einfach aus dem Grund, um zu verstehen, wie der µC funktioniert. Und das 
hilft mir auch, C-Beispiele besser zu verstehen, weil ich weiß "was 
dahinter steckt".

Ich hab mir als Einstiegsprojekt übrigens einen Boardcomputer für mein 
Motorrad ausgesucht. Und ich bin auch guter Dinge, dass ich in diesem 
Winter eine vorzeigbare Version hinbekomme, da meine Teilkomponenten 
schon funktionieren. Dabei hab ich meine Aufgabe in Teilbereiche 
zerlegt:

- Abfrage von Tastern -> klappt
- Displaysteuerung -> klappt
- Abfrage der ADC-Ports -> klappt
- Umwandlung Drehzahl in Spannung -> klappt
Ich muss die Teilaufgaben also nur noch zusammenbringen.

Ich finde immer, wenn man sich in sowas einarbeitet, muss man sich 
kleine (Zwischen-) Ziele setzen, dann hat man mehr Erfolgsmomente. Und 
das würde ich Dir bei Deiner Alarmanlage auch raten. Erwarte nicht 
sofort in 2 Tagen ein fertiges perfektes Gerät.

Jens

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Wichtige Kriterien wären für mich als Hobbyist

1. Wo bekomme ich die µC her?

Preiswert um die Ecke oder wenigstens in einem Shop aus meinem 
Heimatland oder mit langen Lieferzeiten und -kosten aus Übersee. Neben 
dem Chip selbst, auch die Software (Toolchain) betrachten. Gibt es da 
was in Open Source, als Studentenversion o.ä. oder nur sauteures?

2. Wie komme ich mit der Doku zurecht?

Jeder µC Hersteller hat seinen eigenen Schreibstil. Der liegt einem mehr 
weniger. Dank Internet kann man sich vorher bei den meisten µC 
Herstellern die Datenblätter durchlesen.

3. Wer hilft mir?

Was Karl heinz schon zur Community geschrieben hat. Das kann man noch 
auf Projektseiten/Sammlungen/Wikis/Tutorials erweitern.

von Peter D. (peda)


Lesenswert?

Karl heinz Buchegger schrieb:
> Du
> siehst dann plötzlich die popelig vor sich hinblinkende LED auf dem
> DVD-Player mit ganz anderen Augen.

Stimmt.
Wenn man erstmal weiß, wie es richtig geht, ärgert man sich oft, wie 
stümperhaft manche kommerziellen Geräte programmiert sind.

Z.B. der Drehgeber bei meiner Kaffemaschine prellt jeden Tag mehr, 
schnelle Drehungen erkennt die Software garnicht mehr.
Ich bin schwer am überlegen, nen ATtiny13 zwischen zu schalten, der dann 
richtig entprellt und die Signale wieder ausgibt.


Peter

von m.Kai (Gast)


Lesenswert?

Obwohl ich mich für C entschieden habe, lese ich oft die Verwendung von 
C++ für leistungsfähigen Mikrocontroller oder GUI-Programmierung.

viele behaupten dass C++ sehr schwer zu erlernen.

Kann man C++ mit Visual C# vergleichen?

gibt es Visual C++ eigentlich?

Ab wann nutzt man solche Programmiersprache?

Bei mir macht noch kein Klick was diese Programmierung angeht!!

Deshalb beschränke ich mich auf C für MicroController und was später 
GUI-Programmierung betrifft ist ungewiss :-(

Ich wünsche mir eigentlich kein Tutorial über C oder Assembler, sondern 
ein Übersicht wofür und wann ich eine Programmiersprache benutze, wo 
sind die Stärken und Schwäschen.

Konkret zu meinem Projekt "Alarm-Anlage" : ich will schon irgendwann mal 
die Alarm über GSm oder Internet ein und ausschalten. Ein App fürs Handy 
wäre auch nicht schlecht, aber das sind viele Punkten,die ich abarbeiten 
muss!

Vielleicht habe ich ein großes Ziel gesetzt ? :-(

Ein Freund meint : wenn Sie über TCp-IP was steuern müssen, vergessen 
Sie schonmal Visual Basic 6!! mmhh ok kann C++ das? oder C#? muss ich 
Java fürs handy noch lernen??

Man man man, warum gibt kein Buch wo ein Projekt von A bis z beschrieben 
und realisiert ist? wer kann mein Projekt in eine logische Reihenfolge 
sortieren?

Ziel : Alarm Anlage einbauen und dies über TCP-IP steuern.

Ziel 1 : Controller suchen : Atmega8,16,32 oder PIC?

Ziel 2 : Programmiersprache : C und kein Assembler

Ziel 3 : welche Bibliotheken und Entwicklungsumgebung??? mmhh keine 
Ahnung!! AVR-Studio, AVR-Workpad, Gcc-win???

Ziel 4: Die Schaltung und Relais-Platine einbauen : OK das ist 
Elektronik, und kriege ich hin .

Ziel 5: Die Relais und Eingänge über Internet abfragen und steuern : 
mmmhh?? HTML, C++, Visual C# ???  muss ich hier schon ein 
GUI-Programmieren?

Ziel 6 : ein App entwickeln und die Software über Smartphone steuern! 
Android,iPhone?? etc...

was schlägt ihr vor? habe ich was vergessen? wäre das die logische 
reihenfolge für mein Projekt

Besten Dank für alle, die hier ausführliche Infos schreiben und Geduld 
haben mir mehr Licht in dunkel zu schenken.

WEIL ICH MOMENTAN EHER MEHR DUNKEL IM LICHT SEHE :-(

von Bastian F. (bastian_f)


Lesenswert?

Wenn du nur das eine Projekt realisieren willst, bezahl jemanden der das 
für dich macht.
Ansonsten ist das meiner Meinung nach verschwendete Zeit.

Falls nicht, wurde alles andere bzw die Reihenfolge hier schon erwähnt.

von m.kai (Gast)


Lesenswert?

Warum Zeitverschwendung? verstehe ich nicht! muss man sich nur mit einer 
Sache beschränken? Ich will auch keinem bezahlen und habe ganz brav mit 
C angefangen. Naja danke .. ich werde nicht aufgeben und weiter machen.

von Karl H. (kbuchegg)


Lesenswert?

m.kai schrieb:
> Warum Zeitverschwendung? verstehe ich nicht! muss man sich nur mit einer
> Sache beschränken? Ich will auch keinem bezahlen und habe ganz brav mit
> C angefangen. Naja danke .. ich werde nicht aufgeben und weiter machen.

Fang erst mal einfach nur an.
Und zwar am Anfang.

Und deine Alarmanlage. Stell sie zurück, bis du die Grundlagen intus 
hast. Sonst hat das nänmlich keinen Sinn. Dein Weg ist lang bis dorthin.


Und genau deswegen meint Bastian auch: such dir jemanden.

Wenn es dir nur darum geht eine Alarmanlage zu bauen, dann ist das 
overkill. Du musst viel lernen, viele Vorstudien machen, viel lesen und 
noch mehr üben üben üben, ehe du auch nur in die Nähe kommst deine 
Alarmanlage wie angedacht zu programmieren.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Karl heinz Buchegger schrieb:
> m.kai schrieb:
>> Warum Zeitverschwendung? verstehe ich nicht! muss man sich nur mit einer
>> Sache beschränken? Ich will auch keinem bezahlen und habe ganz brav mit
>> C angefangen. Naja danke .. ich werde nicht aufgeben und weiter machen.
>
> Fang erst mal einfach nur an.
> Und zwar am Anfang.

Muss ich zustimmen, was Du Dir vornimmst ist fuer den "Direkteinstieg" 
zu viel. Ich hab auch etliche Monate gebraucht, bis ich sinnvolle 
Projekte angehen konnte -- und ich hab mich rangehalten an die Materie.

Vor allem wenn Du noch nicht einmal C kannst(?) hast und auch sonst 
wenig Programmiererfahrung hatte ich Dir sicherlich einiges voraus.

Greets,
Michael

von oldmax (Gast)


Lesenswert?

Hi
Ich hab zwar nicht alles gelesen, aber allgemein scheint es dir u.a. um 
Hinweise zu Programmiersprachen zu gehen. Dein Projekt, eine Alarmanlage 
? Warum nicht. So lernst du es gleich mit der Analyse zu beginnen: "Was 
soll sie können." Erst danach ist doch die Frage nach: "Wie setze ich 
das um". Und nun sind wir bei µC und deren Programmierung. Also, hier 
mal einen Tip: warum nicht in den Tutorials lesen. Ich hab auch damit 
angefangen und muß sagen, sie sind gut. So lernst du den Einstieg. Und 
die Sprache? Es ist eigentlich egal auf welcher Ebene du anfängst, aber 
meine Meinung ist: "beginne mit Assembler im Bereich der Controller und 
mit einer Hochsprache wie Delphi, C++ oder Visual Basic bei 
PC-Programmen". Warum? Nun, bei einem PC machst du keine Hardware und 
bei Controllern keine Datenbank. Die Eigenheiten der Systeme wirt du 
dann wiederfinden, wenn du deine ersten Programme ausprobierst. Wenn im 
PC die Formel
x=  (1/(a/(C-B)))-y überhaupt keine Probleme bereitet, kann die gleiche 
Anweisung in BASCOM z. B. durchaus Schwierigkeiten machen. Zumindest bin 
ich bei ähnlichen Formeln jedesmal hängengeblieben und mußte ein par 
Klimmzüge einbauen. Dies ist für mich auch ein Grund, niht unbedingt 
einem µC mathematische Höchstleistungen abzufordern. Aber als 
Schnittstelle zur Außenwelt leistet er gute Arbeit. Oft besteht der 
Wunsch, mit einem PC irgendwas ein- oder auszuschalten, zu überwachen 
und zu protokollieren. Die notwendige Information einzulesen, da ist 
wiederum der Controller ideal. Er bedient die Hardware und kommuniziert 
mit übergeordneten Systemen. Also, wirf nicht die Programmierung von 
PC's und µC's durcheinander. Es sind völlig unterschiedliche Systeme mit 
entsprechenden Anforderungen an den Programmierer. Hier geht nix 
schnell, hier mußt du sehr viel lernen und verstehen, wie Programme 
arbeiten.
Gruß oldmax

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.