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_h9X5Z4Qhttps://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.
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
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.
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/ArduinoBoardLeonardohttp://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.
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.
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.