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
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
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...
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! :)
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.
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!
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.
> 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
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
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.
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.
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.
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
@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 ; )
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.
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 .
@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.
@ 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!!
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.
@ 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?
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
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
@ 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 :-)
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.
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ß.
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.
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
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.
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
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 :-(
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.
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.
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.
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
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