Guten Tag, ich bin E-Technikstudent und komme bald in das Semester, in dem µCs behandelt werden. Ich habe mir schonmal die Skripte besorgt und muss sagen, dass es Lust auf mehr macht. Soweit ich das beurteilen kann, gehts um Grundlagen in Assembler. Doch ich würde von euch gerne wissen, wie man sich auf das Arbeiten mit µC vorbereitet. Assembler ist ja schön und gut, aber doch etwas zu anstrengend für einen Einsteiger. Als Programmiersprachen habe ich bisher mit Java und C++ zu tun gehabt, und wie ich das sehe ist C verbreitet, was µCs angeht. Wird man da große Probleme haben von C++ zu C, gesetzt dem Fall, man ist gut lernfähig, oder ist der Beginn von 0 bez. C besser? An µC habe ich mich mal umgeschaut, und interessiere mich in erster Linie für die Cortex-M3 von ST (der Peripherie wegen), und evtl noch die MSP430 von TI. Doch wie gesagt, weiss ich nicht, ob es für den Start nicht besser wäre, mit was Anderem anzufangen, z.B. mit einem AVR oder so. Denn für die STM32 habe ich kein Tutorial gesehen, dass wirklich von 0 oder nahe 0 anfängt. Ich habe bei den STM32 Tuts, die ich gefunden habe Probleme damit, wie Ein- und Ausgänge konfiguriert und angesprochen bzw. abgefragt werden. Zum AVR gibts hier ja eins, wo ich mit meinen C++-Kenntnissen gut mitkomme. Kann man die Erfahrungen, die man beim AVR gesammelt hat, bei STM32 gut gebrauchen, oder ist das unnötig, und sollte direkt ins kalte Wasser springen? Was meint ihr? Welche Schritte würdet ihr einem absoluten Anfänger empfehlen, der sich für die Materie interessiert und demnächst viel mit STM32 µCs arbeiten möchte.
"Assembler ist ja schön und gut, aber doch etwas zu anstrengend für einen Einsteiger." Ne, eben nicht. Ist genau das richtige weil du immer genau weißt was du eigentlich treibst und wie dein Controller funktioniert. Um einen guten Einstieg zu kriegen der dich nicht überforder ist das Launchpad super. Es ist billig und von TI gibts massig Material zum lernen. PDFs Videos usw. Außerdem kannst du in Assembler und C Programmieren. Die Entwicklungsumgebung ist kostenlos und die Controller sind nicht fest auf dem Board. Soll heißen du kannst sie reinstecken, Programmieren und dann in weitere Projekte einbauen. Du kriegst halt ein kleines Packet in dem alles drin ist was du brauchst. Und der Preis ist unschlagbar ;)
Ich würde das STM32F4Discovery-Board für ca. 15-25€ kaufen. Dann die IAR Workbench. Die geht zwar nur bis 32k. Aber nach der Installation funktioniert alles. (Falls Du Windows hast). Du kannst gleich mit Beispielprojekten loslegen und diese ausprobieren. Das Konfigurieren der Peripherie ist beim STM32 etwas komplizierter als bei einem AVR, weil man halt sehr viel einstellen kann. Das kann anfangs verwirren. Assembler: NEIN! Wenn Du den Führerschein machen willst, dann lerne fahren. Und wenn Du das mal kannst, dann kannst Du immer noch lernen, wie man die Zylinderkopfdichtung wechselt, falls es dich interessiert. Ich hab viele Jahre PICs und 6502 in Assembler programmiert. Über diese Phase bin ich raus.
Äh, nein. Um die Funktionsweisen von MCs zu verstehen, ist der Beginn mit Assembler genau richtig ( zumindest sollte das der Anspruch eines Studiums sein, die Grundlagen zu verstehen ). Ich würde sogar sagen, es lohnt sich verschiedene Assembler und Prozessorarchitekturen gleichzeitig anzuschauen: - 8051 - AVR - ARM - Parallax Propeller Man muss ja nicht alle Befehle jedes Prozessors ganz durcharbeiten, sondern nur die Prinzipien dahinter verstehen.
Hi! Was sich außerdem anbietet sind boards in der Uni. So hab ich das gemacht für den twi einstieg. Da hatte ich dann verschiedene Bauteile zur Verfügung und konnte dann gut testen. So musste ich mir weniger kaufen und konnte auf Hilfe durch den Labor Leiter hoffen :-) Der war auch so freundlich mir einige Dinge wie Displays usw mit zugeben. Programmiert habe ich auch direkt in C. Der Umstieg von c++ auf c ist recht einfach wenn man einige Kleinigkeiten beachtet. Würde dir empfehlen doch mal in deiner Uni nach so etwas zu erkundigen. Meistens sind die profs usw hilfsbereit wenn man. Interesse zeigt.
Bin übrigens mit avr angefangen. Ein wenig Assembler macht schon Sinn auch wenn man es für einen schnellen einstieg nicht unbedingt braucht. ( hilft halt einfach ein paar Sachen besser zu verstehen)
H.Bertholds schrieb: > Assembler ist ja schön und gut, aber doch etwas zu anstrengend für einen > Einsteiger. Ähemm, willst du Überflieger werden, dann schau dir niemals Assembler an. Ansonsten ist Assembler genau das Richtige, um dir ne gründliche Basis zu schaffen. Mein Rat: Beschaffe dir den "Lampe,Jorke,Wengel" und studier den. Die CPU's, die dort behandelt werden, sind zwar alt, aber die Prinzipien und Herangehensweisen sind es, auf die es ankommt. In den Physik-Vorlesungen siehst du ja auch ältere Versuchsaufbauten, an denen das Prinzip erklärt wird. > Als Programmiersprachen habe ich bisher mit Java und C++ zu tun gehabt, Das sind keine guten Sprachen für das Einsteigen in die uC-Programmierung. > und wie ich das sehe ist C verbreitet, was µCs angeht. Wird man da große > Probleme haben von C++ zu C, gesetzt dem Fall, man ist gut lernfähig, > oder ist der Beginn von 0 bez. C besser? Von was bitte? Also, meine mentale Regel ist: Bei ganz kleinen uC's nimm Assembler, bei größeren plain C. Jaja, ich könnte mir auch wünschen, daß es mehr Pascal-Compiler für uC gäbe, denn Pascal ist systematischer als C und hat viel weniger Fallstricke, aber C ist weiter verbreitet. Aber abgesehen davon gibt es Pascal für PIC's, AVR, 8051 und ARM (http://www.mikroe.com/eng/categories/view/2/compilers/). Abschließender Rat: Versteife dich nicht auf eine Programmiersprache, sondern praktiziere in mehreren, damit du keine Scheuklappen bekommst. Das ist nicht flapsig gemeint. W.S.
Nimm Bascom und ein Arduino Board. Dann läuft recht schnell was. Für Assembler würd ich mir die Befehle mal anschauen und die Funktionsweise nachvollziehen (der AVR hat nicht viele). Programmieren und Simulieren kannst du das mit fast allen (kostenlosen)Entwicklungsumgebungen. Danach AVR Studio 4/5/6 installieren und mit C starten. Beispiele gibt es genug. Von den ARMs würde ich noch die Finger lassen, weil da viel Frust für Anfänger drinnen steckt. Hier ist der STM32F407, wie schon genannt, ein Traumteil. Das Basic Tutorial hat aber schon über 1350 Seiten ohne ARM Kern Beschreibung. Dazu hunderte Seiten mit genauerer Beschreibung von RTC usw. Das kann heftig und frustig werden. Viel Glück!
Das da die Meinungen teilweise so weit auseinander gehen hätte ich nicht erwartet. Mit Assembler werde ich mich in der FH sowieso beschäftigen. Doch für denn Alltag denke, bzw. dachte ich, dass ich mit C besser dran bin. Ich denke, ich werde mir erstmal das Launchpad bestellen, dann noch das eine oder andere Discovery-Board. Bei dem AVR bin ich mir noch nicht so sicher, womit ich anfange, aber ein kleines werde ich mitbestellen. Sehe ich das richtig, dass bei wirklich allen Discovery-Boards schon ein JTAG-Adapter mit drauf ist? Wo ist da der Haken bei den Preisen? Ich nehme an, wenn ich jetzt nach einer guten Ressource für Tutorials, bzw Lektüre für den Start frage, bekomme ich wieder weit auseinander gehende Meinungen, oder?
Die Discovery Teile sind auch wirklich gut, vielleicht erschlagen sie dich nur etwas. Deshalb hatte ich halt das Launchpad vorgeschlagen weil die Tutorials von TI ganz am Anfang anfangen. Also wie nehme ich das Ding in Betrieb, wie brenne ich ein Programm in den Controller. Dann fängt das Programmieren an: Wie setzte ich einen Ausgang auf 0 oder 1, wie lese ich Eingänge ein uws. halt Schritt für Schritt. Außerdem kannst du dir als Student von TI kostenslose Muster schicken lassen, bei dem Launchpad sind zwar schon 2 Controller bei aber die hat man ja schnell in irgendwas reingebaut. Dann ist TI so nett und schickt dir neue.
Danke Eumel, das Launchpad hab ich mitbestellt. Sollte übermorgen eintrudeln. Kann man das Wissen, welches man sich mit dem Launchpad erarbeitet hat, auch auf die STM32 übertragen? Oder ist das ein Äpfel und Birnen-Problem?
Zu 100% natürlich nicht. Aber grundlegende Dinge auf die man der Programmierung achten sollte und elementare Bestandteile der Controller (Timer, Interrupts) schon. Dabei werden die natürlich mit anderem Code angesprochen funktionieren aber sehr ähnlich. Wenn du die Funktionsprinzipien erlernt hast kannst du die relativ schnell übertragen. Du lernst dann ja nicht mehr "Was ist ein Timerinterrupt" sonder nur noch "Wie programmiere ich einen Timerinterrupt auf einem STM32" Da schaut man dann halt ins Datenblatt oder die Beispielbibliotheken und weiß bescheid.
Hallo zusammen, ich versuche mich gerade auch mit dem Einstieg in die µC-Programmierung. Hab's zwar im Studium einmal gelernt, aber nie gelebt...deshalb ist da auch nicht mehr viel vorhanden :( Jetzt haben wir uns in unserer Firma ein Infineon Easy Kit besorgt. (Entwicklungskit EK-XC164CS Easy) Dieses wollte ich mir im Privaten mal anschauen, aber ich hänge schon bei der grundlegenden Installation der Treiber... für den USB-Wiggler liegen keine Treiber vor und ich bin mir jetzt auch nicht sicher ob ich da die richtigen Installiert habe (USB-Wiggler ist überhaupt nicht beschriftet). Meine Frage ist jetzt: Stell ich mich dazu einfach zu blöde an, oder haben wir da einfach ein schwieriges Entwicklungskit erwischt? Wir haben Infineon µC's in Benutzung (nicht von uns programmiert!!) deshalb, haben wir ein Toolkit von Infineon bestellt... Internette Grüße Vincenzo
H.Bertholds schrieb: > Soweit ich das beurteilen kann, gehts um Grundlagen in Assembler. > Doch ich würde von euch gerne wissen, wie man sich auf das Arbeiten mit > µC vorbereitet. Assembler ist immer an ein bestimmtes Target gebunden. Damit Du den richtigen Assembler lernst, mußt Du also wissen, welcher MC-Typ in dem Seminar behandelt wird. Und auch die Toolchain und das Entwicklungskit. Einen anderen Assembler zu lernen, bringt nicht viel. H.Bertholds schrieb: > Denn für die > STM32 habe ich kein Tutorial gesehen, dass wirklich von 0 oder nahe 0 > anfängt. Vermutlich wird vorausgesetzt, daß man schon mit einem kleinen, einfachen und übersichtlichen 8-Bitter die Grundlagen gelernt hat. Man springt ja auch nicht sofort vom 10m-Turm ins Wasser, sondern erstmal vom Einer. Peter
Für den Anfang könntest Du etwas kleines in Assembler versuchen. Zum Beispiel das hier kostet keine 10 Euro (sofern man schon einen Programmieradapter hat oder ausleihen kann): http://stefanfrings.de/avr_workshop/index.html Dort geht es um einen AVR. Was Du da lernst, kannst Du natürlich nicht auf einen ARM übertragen, aber Du lernst dennoch die Grundlagen. In der Praxis wirst Du sicher nur selten in Assembler programmieren, insofern würde ich mich in Assembler auch nicht allzu sehr herein steigern. Ein gewisses Grundwissen hilft allerdings ab und zu, insbesondere bei der Analyse des von C Compiler erzugten Codes, wenn er mal etwas macht, was man nicht erwartet hat. Auch bei der Programmierung von Interrupt Routinen hilft es sehr, ein wenig Erfahrung mit der direkten Nutzung von CPU Registern und Stack zu haben. Du kannst auch mit C anfangen, wirst aber irgednwann nicht drum herum kommen, die Grundlagen von Assembler zu lernen. Immerhin erzeugt der C Compiler zunächst ein Assembler Programm, welches dann in den Binärcode des Mikrocontrollers übersetzt wird. Wenn man die Eigenarten des Compilers verstehen will, kommt man um Assembler niht ganz herum - leider.
Vielen dank für den Link, sieht recht überschaubar aus. Muss mal genauer reinschauen. Einen AVR im Teensy-Format habe ich noch mitbestellt, und den Programmierer baue ich selbst. Das sollte machbar sein.
H.Bertholds schrieb: > ich bin E-Technikstudent und komme bald in das Semester, in dem µCs > behandelt werden. Hi. Ich bin auch E-Technik Student. Und auch ich bekomme nächstes oder spätestens übernächstes Semester die µC beigebracht. Bei der Beschreibung für die Vorlesungen steht auch drin, welche Controller benutzt werden. Das sind 8085 und PIC18. PICs hab ich schon in der Ausbildung kennengelernt und hab mich mit denen auch weiter beschäftigt. Wenn das in deinem Fall auch so ist, würde ich dir einen von denen Empfehlen. Als Anfänger kann man eigentlich mit jedem µC etwas zaubern (AVR, ARM, PIC, MSP, usw...), doch du hättest dann halt den Vorteil, dass dir das alles nicht soo neu ist und du leichter und weniger lernen kannst/musst. Es bleibt natürlich dir überlassen noch andere µCs zu benutzen oder zu studieren, doch meine erste Wahl wäre die Familie, die danach auch wirklich benutzt wird. Und von C++ zu C ist nich soo schwer. Doch C für den PC und C für den µC (gerade 8bitter) sind schon in manchen dingen unterschiedlich. Zumindest haben die C-Compiler für die µC die µC-Spezifischen Funktionen und Regelungen (int hat meist 16 bit statt 32, usw...)
Erwarte dir nicht zuviel von deiner FH Uni Ausbildung in Sachen MC. MC Programmierung muß man leben und (Hass ?)lieben ;-) Die paar Stündchen auf der Uni sind gar nichts in der MC Entwicklung. Aber ich glaube, du bist auf einem guten Weg mit deinem Enthusiasmus. Halt uns auf dem Laufenden, was bei dir abgeht! Gruß
So, die Boards (DiscoveryVL,Launchpad und Atmega32u Breakoutboard) sind gestern eingetroffen. Ich habe den Sprung ins kalte Wasser gewagt, und komme bisher ganz gut mit dem STM32 zurecht. Als IDE verwende ich CoIDE. Ein- und Ausgänge abfragen und steuern geht schonmal ganz gut. Ich habe noch einen DS18B20 1Wire-Sensor bestellt. Mal sehen, ob ich dem was entlocken kann als Noob, denn der sieht schon etwas kompliziert aus. Dann noch mein altes Nokia demontieren fürs Display...das wird ein Spass - oder Frust. Mal schauen. Falls es Probleme gibt, kann ich ja hier auf eine nette Community vertrauen. Ihr seid spitze.
Hans schrieb: > Erwarte dir nicht zuviel von deiner FH Uni Ausbildung in Sachen MC. MC > Programmierung muß man leben und (Hass ?)lieben ;-) Die paar Stündchen > auf der Uni sind gar nichts in der MC Entwicklung. Aber ich glaube, du > bist auf einem guten Weg mit deinem Enthusiasmus. > Halt uns auf dem Laufenden, was bei dir abgeht! Das kann ich nur unterschreiben. Man lernt höchstens die Grundlagen der Grundlagen in dem Zeitraum. Man lernt fast so wenig darüber, dass es nicht mal reicht um über die Schwelle zu kommen, dass es einem Spaß macht ;-) Habe hobbymäßig schon seit ca. 7 Jahren mit AVRs zu tun und im letzten Semester ein Seminar über den TI MSP430 gehabt. Da hat man sich sehr schnell eingefunden. Aber das Seminar war von den Aufgaben her auch nur alleroberste Oberfläche. Da ich relativ schnell die Aufgaben absolviert hatte, habe ich dann noch so ein wenig damit rumgespielt. Sehr interessantes Teil, wie ich finde.
Ohne dieses Posting: > die Boards (DiscoveryVL,Launchpad und Atmega32u Breakoutboard) sind > gestern eingetroffen. > Ich habe den Sprung ins kalte Wasser gewagt, und komme bisher ganz gut > mit dem STM32 zurecht. > Als IDE verwende ich CoIDE. Ein- und Ausgänge abfragen und steuern geht > schonmal ganz gut. hätte ich den Einstieg mit dem TI MSP430 Launchpad und C++ empfohlen - mit der Begründung "wenig Geld", "Tool chain" und "kein PROGMEM". Wenn nun aber der STM32 keine wirklichen Einstiegsprobleme gemacht hat, dann würde ich sagen, schicke den atmega32u und das Launchpad zurück, und konzentriere Dich auf C++ und den Cortex-M3. Mit der "gekauften" Kombination hast Du 32-, 16- und 8-Bitter, dazu noch das mit und ohne PROGMEM. Das macht die Portabilität unnötig schwierig. Es macht aber durchaus Sinn, sich mehr als eine Architektur anzusehen. Dann würde ich den AVR und den MSP430 gegen PIC32 und/oder Renesas RX eintauschen. Das sind dann alles 32-Bitter, den PIC32 gibt es auch in DIP. A propos Tutorial: Beitrag "STM32 Tutorial"
Danke für den Tipp, aber das Launchpad behalte ich auf jeden Fall. Mir gefällt das ganz gut, was ich bisher darüber gelesen habe. Den PIC im DIP Package würde ich dann aber auch mal gern anschauen. Hoffe die externen Komponenten halten sich in Grenzen (Breadboard zu klein bestellt!) Gibts da einen Bestimmten, den du da im Sinn hast? Wäre für einen konkreten Namen dankbar.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.