Hallo, nach mehr als 20 Jahren möchte ich wieder etwas Mikrocontroller know how aneignen. Ich hab damals noch mit sowas in der Ausbildung gebastelt: http://www.auram.de/pages/computer-sammlung/single-board/ecb85.php Etwas anderes als Assembler ging da nicht. Jetzt ist der Sohn alt genug und ich habe auch die nötige Zeit und Lust um mich mit dem Thema zu beschäftigen. Wenn ich hier die Forenbeiträge lese muss ich feststellen, dass sich die Welt in den letzten 20 Jahren doch gedreht haben muss. Soll heißen ich verstehe fast nichts von dem hier geschrieben wird. Bei der Auswahl der HW geht es leider schon los. Im Tutorial (wird das noch gepflegt?) unter AVR-Tutorial - Benötigte Ausrüstung kommt schon die erste Entscheidung Breadboard oder Starterkit/Evaluations-Board. Einige der Links funktionieren leider nicht. Ich denke der ATmega8 ist schon ausreichend. Ich würde gerne mit Assembler anfangen und auch die Möglichkeit haben den Mikrocontroller in C zu programmieren. Kurzfristige Ziele sind: - ein paar LEDs zum blinken bringen - Lichtschranke/Zeitmessung - Relais steuern um 220V zu schalten Mittelfristig wäre es schön ein LCD Display anzusteuern und das Thema BT und WLAN sind auch interessant. Welches HW würdet ihr da empfehlen (wäre super wenn die Erweiterbar ist (siehe Ziele))? Bitte mit aktuellen Links zum Board und ISP (falls separat notwendig) Ich denke das Breadboard ist zwar ganz nett aber viel Steckerei die Fehleranfällig ist. Danke STefan P.S: Wäre schön wenn es noch ein Unterforum geben würde wo wirklich nur die Anfängerfragen abgehandelt werden. P.S2: Und ja ich habe die suche bemüht.
Ich habe dazu vor einiger Zeit mal 2 Videos gemacht - vorsicht, die sind etwas lang. :) https://www.youtube.com/watch?v=GfZ_h9X5Z4Q https://www.youtube.com/watch?v=XSE0QfRYwFE Die Videos sind jetzt nicht speziell zu dem AVR-Tutorial hier, aber sie zeigen, womit man etwa ein halbes Jahr lang gut auskommt, wenn man vorhat, ATmegas auf Breadboards zu verbauen und hinterher Lochrasterkram zu verbrechen.
:
Bearbeitet durch User
Stefan schrieb: > Hallo, > > nach mehr als 20 Jahren möchte ich wieder etwas Mikrocontroller know how > aneignen. > Da habe ich Dir einen Vorschlag zu machen. Ich möchte mich nämlich nun auch wieder gewissenhafter mit den µC ( Mikrocontroller ) von ATMEL befassen und zwar in Assembler, da dies nun mal die beste Möglichkeit ist diese wirklich gut kennen zu lernen. Dazu gibt es einen Online Kursus ( völlig kostenlos ), den man nur durchzuarbeiten muß und dadurch schon viel lernt. Der Kurs baut auf den ATmega32A auf, ich benutzte jedoch den ATmega8, was für Anfänger vollkommen reicht. Leider habe ich heute keine weitere Zeit, deshalb nur in Kürze : 1. ATMEL-Studio 4.19 Build 730 herunterladen und installieren. 2. Prgrammer AVRISP mkII kaufen 3. Bauteile besorgen, die ich Dir hoffentlich morgen schreiben kann. 4. Die Zeit nutzen und sich mit ein paar Sachen befassen, die ich jetzt verlinke : https://www.youtube.com/watch?v=Q1rR1IgBgcU Hier Thema " Assembler " anklicken. Kann leider nicht direkt verlinken. http://www.avr-asm-tutorial.net/avr_de/beginner/ Und hier Mikrocontrollertechnik-Kursus MODUL_A herunterladen http://www.weigu.lu/a/ Und hier posten und " Thread beobachten " anklicken, dann kannst Du, wenn Du eingeloggt bist oben rechts durch anklicken sehen, ob sich was getan hat bzw. kriegst eine eMail-Benachritigung ( Beobachtete Threads & Thread mit meinen Beiträgen ). Beitrag "AVR-Mikrocontrollertechnik-Kursus in Assembler besprechung" Bernd_Stein
Stefan schrieb: > Jetzt ist der Sohn alt genug und ich habe auch die nötige Zeit und Lust > um mich mit dem Thema zu beschäftigen. Die Vorschläge hier sind aus meiner Sicht teilweise ein bißchen Old-School, obwohl ich selbst Baujahr 1968 und damit auch nicht mehr taufrisch bin. Gerade, weil Du Deinen Sohn erwähnst, würde ich die Arduino Boards und IDE zum Einstieg empfehlen. Nach ein paar Stunden Einarbeitung kann man von vielen Tutorials und Bibliotheken im Netz profitieren. Man kann darauf auch Assembler programmieren, denn es wird ein gcc benutzt, muß man aber nicht. Ich finde es wirklich sehr schön, daß ich z.B. ganz verschiedene Displays mit der gleichen C++-Bibliothek oder zumindest mit dem dem gleichen Quellkode ansprechen kann und nur den Konstruktoraufruf ändern muß (I2C, SPI oder direkter Anschluß, verschiedene Anzahl Spalten, Zeilen). Ein Arduino Uno/Mega/Due Board gibt es als legalen Klon (ist ja eine offene Plattform) vom deutschen Händler auf EBay für 10.- bis 15,- Euro. Ich habe damit einen µ-WebServer und einen kleinen wissenschaftlichen Taschenrechner mit 34-stelliger BCD-Arithmetik gebaut. Das hätte ich nicht geschafft, wenn ich das in Assembler hätte machen müssen.
Erstmal Danke! @zappes: Ich habe mir beide Video angeschaut. Das Breadboard kann dann doch mehr als erwartet. @bernd: In den Kurs bei weigula habe ich noch nicht geschaut. Das Video zeigt mir, dass das alles erstmal machbar ist in Assembler. Warum ATMEL-Studio 4.19 Build 730 und nicht 6.2? Baust du alles auf Breadboards? Ich wollte mir dann sowas zulegen http://www.watterott.com/de/StarterKit-for-Arduino-UNO hat dann aber schon einen ATmega328 Deinem Beitrag werden ich folgen. Bauteileliste wäre interessant @Fritz: Ich wollte erstmal unten anfangen. Bin auch mehr der Fan der prozeduralen Sprachen. Der OOA und OOP liegen mir nicht wirklich und ich muss mir nicht gleich zuviel Sachen auf einmal reinholen. Dein Ebay Link funktioniert leider nicht. Kannst du den nochmal posten? Stefan
oder das Ding: http://www.amazon.de/Arduino-Ultimate-Starter-Inklusiv-Benutzerhandbuch/dp/B00BT0NDB8/ref=pd_sim_ce_9?ie=UTF8&refRID=0581C0NJR464XGV8RHMA Stefan
Stefan schrieb: > @zappes: Ich habe mir beide Video angeschaut. Das Breadboard kann dann > doch mehr als erwartet. Jup, so ein Breadboard ist zum Experimentieren völlig super. Dauerhafte Schaltungen kann man damit natürlich nicht aufbauen, aber für das erste Prototyping gibt es kaum etwas besseres.
Hier zum Beispiel: http://www.ebay.de/itm/Neu-SunFounder-Lab-Mega-2560-R3-ATmega2560-16AU-Board-fur-Arduino-kompatibel-/151275549665?pt=Wissenschaftliche_Ger%C3%A4te&hash=item2338b9b3e1 Wichtig ist halt nicht "Ebay Deutschland", sondern Deutschland als Standort zu wählen, dann gibt es auch keine überraschenden Steuern oder Zollgebühren, wenn der Warenwert mal über 22,- € liegt. Hier gibt es auch unschlagbar günstigen Krams: miniinthebox.com, allerdings sind die Lieferzeiten manchml recht lang.
Wenn du neu einsteigen willst, ist als Hardwaregrundlage ein Arduino Leonardo (oder ein Arduino Mega 2560) gut geeignet. Die Arduino Lib und die Arduino IDE sind sehr stark auf Einsteiger ausgelegt. http://arduino.cc/de/pmwiki.php?n=Main/ArduinoBoardLeonardo http://arduino.cc/de/pmwiki.php?n=Main/ArduinoBoardMega2560 Die Arduino Lib ist eine Hardware-Abstraktionschicht hinter die ganze Hardwareansteuerung versteckt ist. Ich bin kein Freund von, sobald man sich ein bisschen mit der Materie beschäftigt hat, sollte man es mal ohne probieren und alles selbst machen. Die Arduino IDE ist grottenschlecht, die kann gar nichts. Besser, aber nicht viel ist das AVR-Studio. Es hat einen AVR-Simulator dabei (Meiner Meinung das einzige Pro-Argument für AVR-Studio) Ich benutze für die C-Programmierung Eclipse CDT mit AVR-Plugin. (Ist aber aufwendig einzurichten). Das Atmel-Studio hat das AVR-Studio abgelöst, es basiert auf Microsoft-Studio. Hat auch einen Simulator. Ist für alle Controller von Atmel gedacht, also auch für AVR. Ist aber ganz schön groß, man hat das Gefühl mit Kanonen auf Spaßen zu schießen, wenn man damit kleine Microkontroller programmiert. Arduino Hardware Top, Lib und IDE eher mau.
:
Bearbeitet durch User
Bernd Stein schrieb: > 1. ATMEL-Studio 4.19 sorry mit der Version hatte ich Probleme, schrieb auch ein Moderator hier, ich bin wieder zurück zum 4.18 Build 716 Fritz Katze schrieb: > Gerade, weil Du Deinen Sohn erwähnst, würde ich die Arduino Boards und > IDE zum Einstieg empfehlen. Ich mag auch nicht mehr Prototypen auf Lochraster zusammenlöten mit Quarz, Reset, ISP und Vogelfutter wenn es fertige nanosV3 328p für 5€ und mega2560 für 12€ in China gibt. Mit den Arduinos kann man gleich loslegen oder wer mag per ISP aus dem Atmelstudio arbeiten, Codes auch kombinieren, so bin ich von normalen Atmel LIBs langsam zu Arduino LIBs gewechselt, I2C LIB, ws2812 LIB z.B. Demnächst steht wohl der Wechsel der LCD LIB zu Arduino an.
Florian schrieb: > Ich würde kleiner anfangen: http://www.blafusel.de/misc/my_first_mc.html finde als Start auch sehr gut : http://halvar.at/elektronik/kleiner_bascom_avr_kurs
Stefan schrieb: > @bernd: In den Kurs bei weigula habe ich noch nicht geschaut. > Ist nicht schlimm, der läuft ja nicht weg ;-) Und ich weiß, das sind jetzt wieder einmal fürchterlich viel Informationen auf einmal, die hier in Deinem Thread von verschiedenen Leuten zusammengetragen werden. > Hallo, > > nach mehr als 20 Jahren möchte ich wieder etwas Mikrocontroller know how > aneignen. > > Das Video zeigt mir, dass das alles erstmal machbar ist in Assembler. > Eigentlich wollte ich nicht auf diesen Thread eingehen, da Du als Gast aufgetreten bist und es somit nicht möglich ist, Dir mal eine eMail zuschicken, denn bei solchen Sachen habe ich schon genug Zeit verschwendet. Beitrag "Re: asm optimierung" Ich bin jetzt mal anhand Deines Eröffnungs-Threads davon ausgegangen, das Du nicht mal eben schnell µC-Anwendungen erstellen möchtest, sondern die AVR-µC verstehen willst. Dazu denke ich ist Assembler die beste Wahl. Denn Du lernst genau, warum Du genau dies(e) Bit(s) in in diesem Register setzen oder löschen must. Und wenn man darin absolut Sattelfest ist, dann denke ich kann man sich daran setzen und eine " höhere " Programmiersprache zu erlernen. Falls Du auf die Arduino-Schiene aufspringen möchtest, bin ich schon mal nicht mit dabei, das ist mir zu weit von den Grundlagen entfernt bzw. nimmt einem ähnlich wie BASIC viel vom Detailwissen, das ich gerne erwerben möchte. > > Warum ATMEL-Studio 4.19 Build 730 und nicht 6.2? > Erstens, weil ich mal ein Problem mit einem "Uralt-AVR" ( Basic Line ) hatte und einem relativ neuem mit USB-Schnittstelle. Zweitens ich die Sachen in 6.2 zum Glück nicht brauche, sowie diese auch nicht verstanden habe ( siehe Video ). Drittens man hat die gleiche Grundlage und kann somit 1:1 die Sachen erklären. Beitrag "Re: AT90S2312 und Atmel Studio 6 ?" https://www.youtube.com/watch?v=buW8L62SXa8 > > Baust du alles auf Breadboards? > Davon bin ich damals abgekommen, da ich immer Kontaktschwierigkeiten hatte, deren Fehlersuche sehr langwierig waren. Kann natürlich sein, das ich im Elektronikladen was angedreht bekommen habe, wo die Kontakte schon korrodiert waren. Aber auch zeigte sich das der Platz schnell eng wurde, da viele Bauteile zwischen den Beinen eine Unterbrechung brauchten oder die Strombelastung die Kontakte ausglühen ließ. Außerdem ging mir das Kabelgewirr und die vielen Brücken auf den Zeiger. Bin jetzt über Streifenraster zu Lochpunktraster gekommen und finde dies am flexibelsten. > > Deinem Beitrag werden ich folgen. > Bauteileliste wäre interessant > In dem Beitrag, werde ich mal ein paar Fotos von meinem Aufbau machen und einen Warenkorb hinterlegen. Bernd_Stein
Bernd Stein schrieb: > Ich bin jetzt mal anhand Deines Eröffnungs-Threads davon ausgegangen, > das Du nicht mal eben schnell µC-Anwendungen erstellen möchtest, > sondern die AVR-µC verstehen willst. Dazu denke ich ist Assembler die > beste Wahl. > Denn Du lernst genau, warum Du genau dies(e) Bit(s) in in diesem > Register setzen oder löschen must. Und wenn man darin absolut Sattelfest > ist, dann denke ich kann man sich daran setzen und eine " höhere " > Programmiersprache zu erlernen. > > Falls Du auf die Arduino-Schiene aufspringen möchtest, bin ich schon mal > nicht mit dabei, das ist mir zu weit von den Grundlagen entfernt bzw. > nimmt einem ähnlich wie BASIC viel vom Detailwissen, das ich gerne > erwerben möchte. Das würde ich nicht so schwarz oder weiß sehen. Die Interrupt-Behandlung zum Auslesen einer Tastaturmatrix konnte ich z.B. nicht mit der Arduino-Bibliothek erledigen. Das hat mich nicht daran gehindert, mir die Dokumentation zu den Interrupt-Control-Registern durchzulesen und diese zu benutzen. Als ich wegen des Speicherplatzebedarfs der BCD-Arithmetik (sowohl Flash als auch SRAM) von einem Arduino Uno (328P) zu einem Arduino Mega (Mega 2560) wechseln mußte, konnte ich den Kode zu 100% übernehmen, weil ich mir das Pin-Out der beiden Chips und der Boards angesehen habe und die "passenden" Anschlüsse verwendet habe. Aber welche Pins auf dem Board völlig willkürlich zu welchen Anschlüssen am MC und wiederum zu welchen Bits in welchen Registern gehören, das kann man in Tabellen nachschlagen. Wenn ich jahrelang mit dem gleichen Chip arbeite, dann weiß ich das vielleicht auch auswendig, aber das ist doch nicht Zweck der Übung! Ich würde es auch begrüßen, wenn jeder Programmierer mal irgendeinen Assembler benutzt hätte. Heutzutage könnte das auch Byte-Code für die JVM oder MS-IL für die CLR sein, zumindest letzteres fühlt sich ganz ähnlich an. Ich habe ganz wenig Assembler für 6502, x86 und DirectX-Shader programmiert, wenn es nicht zu vermeiden war, bzw. gelesen, um zu lernen, wie z.B. SIMD funktioniert und ob der Compiler gemacht hat was ich wollte. Man muß die Waffen halt immer passend zum Gegner wählen.
Der Zusammenhang: ASM - Datenblatt/Registerzugriffe - µC-Verständnis erschließt sich mir nicht. Die Atmel-Datenblätter für die AVRs sind grade mal 200 Seiten stark und erklären eigentlich jedes Register. Da kann man fast Assembler-gleich in C mit arbeiten. Sogar in der Arduino-GUI, wobei ich da Eclipse+AVR-GCC vorziehe. Das Verständnis kommt aus der Kombination Datenblatt lesen - kleines Projekt programmieren. Da ist weder Assembler nötig, noch hindert die Verwendung von C das Verstehen.
Fritz Katze schrieb: > Das würde ich nicht so schwarz oder weiß sehen. Die Interrupt-Behandlung > zum Auslesen einer Tastaturmatrix konnte ich z.B. nicht mit der > Arduino-Bibliothek erledigen. wieso, man kann auch die Danneggerentprellroutine in Arduino übernehmen, ich sogar in i2c mit Arduino Bibliothek
Joachim B. schrieb: > Fritz Katze schrieb: >> Das würde ich nicht so schwarz oder weiß sehen. Die Interrupt-Behandlung >> zum Auslesen einer Tastaturmatrix konnte ich z.B. nicht mit der >> Arduino-Bibliothek erledigen. > > wieso, man kann auch die Danneggerentprellroutine in Arduino übernehmen, > ich sogar in i2c mit Arduino Bibliothek Ich glaube, wir meinen beide das Gleiche: dort, wo die Arduino-Bibiothek nicht hinreicht, kann man selbst in die Register greifen.
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.