Workshop: Programmierung in Assembler (Atmel ATM8)
Verfasst: Sa 10. Sep 2011, 13:57
Hallo,
bei diesem Workshop geht es darum, Interessierte an die Programmierung von Mikrocontrollern in der hardwarenahen Programmiersprache "Assembler" heranzuführen.
Als Basis dient der AT Mega 8 aus dem Hause Atmel. Assembler und dessen Syntax ist im Prinzip bei allen Prozessortypen zumindest ähnlich, erworbene Kenntnisse können also mehr oder weniger auch bei anderen Typen verwendet werden, was natürlich auch von der Architektur des jeweiligen Prozessorts abhängt.
Ich werde diesen ersten Beitrag primär als Inhaltsverzeichnis nutzen, hier kann man dann zu den jeweiligen Beiträgen dieses Threads klicken... ich werde diesen Beitrag also stetig bearbeiten und ergänzen.
Inhaltsverzeichnis:
Grundlagen
- Was ist ein Mikrocontroller? Grundlegendes zum Aufbau und Programmierung eines ATM8
- Register und deren Funktionen
- Ein/Ausgabe, die IO-Ports und deren Steuerregister
- Installation und erste Schritte mit ATMEL Studio 4
- Grundlegendes zum Aufbau eines Programms
- Byteoperationen, Logik und Arithmetik
- Bedingte und unbedingte Sprünge
- Schleifen und verschachtelte Schleifen
- Kalibrieren des internen Oszillators
- Unterprogramme
- Interrupts allgemein
- Timer
- Retten von Registern
- SRAM adressieren, beschreiben, auslesen Teil 1 (reservierte Bytes)
- SRAM adressieren, beschreiben, auslesen Teil 2 (Pointer)
- EEPROM beschreiben und auslesen
- Tasten auswerten und Entprellen
- Analog-Digital-Converter
Projekt Ampel
- Grundüberlegungen
- Initialisierung und Hauptprogramm Teil 1
- Hauptprogramm Teil 2
- Modul Verkehrsampel
- Modul Fussgängerampel
- Variable Zeiten
Weiterführende Links, Dokumente:
- Übersicht über Atmel Mega 8
- AVR Instruction Set (PDF)
- Datenblatt AT Mega 8 Zusammenfassung (PDF)
- Datenblatt AT Mega 8 komplett (PDF)
- Mikrocontroller Tutorial
Als Basis dieses Workshops dient die Universallichtsteuerung "UL1" von Modellbau Schönwitz mit einem von mir ergänzten Adapter zum Programmiergerät.

Diese, von Hand erweiterte, Platine (Fertigbaustein, ich bezeichne ihn ab jetzt als "UL-E)) ist bei mir für 31,00€ + Versandkosten 6,00 (DHL Paket) erhältlich. Selbstverständlich kann die Platine auch anderswo beschafft und in Eigenregie um den Adapter erweitert werden (ist kein grosser Aufwand) und selbstverständlich kann auch ein beliebiges Evaluationsboard, z.B. von Pollin, verwendet werden.
Wir arbeiten mit folgenden Voraussetzungen:
- ATM8
- 2 Taster (möglichst entprellt) gegen Masse auf PD2 und PD3
- 1 Poti auf ADC0 (interne Referenz), idealerweise jeweils Poti auf ADC1 und ADC2
- 8 LEDs highaktiv an PB0-PB7
- Programmer AVRISP MKII, Atmel-Studio 4
Wer die von mir hier angebotenen UL-E bestellen möchte, den bitte ich, dies bis 19.9.11 zu tun. Bis dahin sollten die ersten Themen hier zu lesen sein, so dass die Entscheidung für oder auch gegen die Teilnahme, sowie die Entscheidung für oder gegen die Anschaffung einer UL-E oder einer anderen Experimentierumgebung erleichtert sein sollte.
Ich biete zudem an, die erforderlichen Programmer zu besorgen und zusammen mit den UL-E zu auszuliefern. Da ich die Programmer selbst nicht vertreibe und deshalb zum gewöhnlichen Endkundenpreis bei Reichelt beziehe, werde ich genau diesen Preis 1:1 weiterreichen, erspare dem Besteller jedoch damit die Versandkosten.
Den aktuellen Endkundenpreis erfahrt Ihr hier, sollte sich dieser zum Zeitpunkt der eigentlichen Bestellung ändern werde ich den evtl. Preisvorteil, sowie leider auch den evtl. Preisnachteil auch weitergeben, allerdings hat sich hier seit etwa 4 Jahren nichts geändert.
Der Workshop richtet sich an Interessierte und soll ihnen einen Einstieg in die Programmierung bieten und diesen erleichtern. Er richtet sich nicht an erfahrene Hobbyprogrammierer, die zum Profi werden wollen.
Der Ablauf sieht so aus, dass ich, wenn möglich, wöchentlich einen Beitrag zu einem bestimmten Thema verfasse, diesen mit Beispielen belege und den Teilnehmern Aufgaben stelle, die sie selbst und mit Hilfe ihrer Experimentierumgebung lösen sollen. Die Lösungen sollen dann an mich per Mail gesendet werden, ich werde diese dann alle zusammen in einem Beitrag kommentieren und veröffentlichen, damit wir darüber gemeinsam diskutieren können.
Wir werden so gemeinsam an einem Projekt arbeiten, am Ende sollte das eine Ampelsteuerung werden. Diese wird folgendes können:
- Umschaltung von automaticher Verkehrsampel und Anforderungsampel (Fussgängerampel)
- Einstellbare Rot-Phase (ggf. weitere Phasen einstellbar)
- diverse kleine Funktionen, vielleicht auch mit Wünschen und Eigenkreationen
Am Ende habt Ihr mit der UL-E eine Lichtsteuerung, die Ihr mit den erworbenen Kenntnissen selbst programmieren und anschliessend in Euere Anlage integrieren könnt oder zumindest die Kenntnisse und ein beliebiges Experimentierboard.
Die Bestellungen der UL-E und/oder Programmer sind nicht an die Teilnahme des Workshop gekoppelt! Fällt der Workshop aus oder muss dieser z.B. aus gesundheitlichen oder privaten Gründen verzögert oder gar eingestellt werden, ist die Rückgabe des Materials oder die Entschädigung irgendwelcher erbrachten Aufwände ausgeschlossen! Dies gilt auch dann, wenn ein Teilnehmer, aus welchen Gründen auch immer, nicht mehr weiter teilnehmen möchte.
Anregungen und Beschwerden
gerne hier, per PN oder Mail... dann lassen wirs mal krachen

bei diesem Workshop geht es darum, Interessierte an die Programmierung von Mikrocontrollern in der hardwarenahen Programmiersprache "Assembler" heranzuführen.
Als Basis dient der AT Mega 8 aus dem Hause Atmel. Assembler und dessen Syntax ist im Prinzip bei allen Prozessortypen zumindest ähnlich, erworbene Kenntnisse können also mehr oder weniger auch bei anderen Typen verwendet werden, was natürlich auch von der Architektur des jeweiligen Prozessorts abhängt.
Ich werde diesen ersten Beitrag primär als Inhaltsverzeichnis nutzen, hier kann man dann zu den jeweiligen Beiträgen dieses Threads klicken... ich werde diesen Beitrag also stetig bearbeiten und ergänzen.
Inhaltsverzeichnis:
Grundlagen
- Was ist ein Mikrocontroller? Grundlegendes zum Aufbau und Programmierung eines ATM8
- Register und deren Funktionen
- Ein/Ausgabe, die IO-Ports und deren Steuerregister
- Installation und erste Schritte mit ATMEL Studio 4
- Grundlegendes zum Aufbau eines Programms
- Byteoperationen, Logik und Arithmetik
- Bedingte und unbedingte Sprünge
- Schleifen und verschachtelte Schleifen
- Kalibrieren des internen Oszillators
- Unterprogramme
- Interrupts allgemein
- Timer
- Retten von Registern
- SRAM adressieren, beschreiben, auslesen Teil 1 (reservierte Bytes)
- SRAM adressieren, beschreiben, auslesen Teil 2 (Pointer)
- EEPROM beschreiben und auslesen
- Tasten auswerten und Entprellen
- Analog-Digital-Converter
Projekt Ampel
- Grundüberlegungen
- Initialisierung und Hauptprogramm Teil 1
- Hauptprogramm Teil 2
- Modul Verkehrsampel
- Modul Fussgängerampel
- Variable Zeiten
Weiterführende Links, Dokumente:
- Übersicht über Atmel Mega 8
- AVR Instruction Set (PDF)
- Datenblatt AT Mega 8 Zusammenfassung (PDF)
- Datenblatt AT Mega 8 komplett (PDF)
- Mikrocontroller Tutorial
Als Basis dieses Workshops dient die Universallichtsteuerung "UL1" von Modellbau Schönwitz mit einem von mir ergänzten Adapter zum Programmiergerät.

Diese, von Hand erweiterte, Platine (Fertigbaustein, ich bezeichne ihn ab jetzt als "UL-E)) ist bei mir für 31,00€ + Versandkosten 6,00 (DHL Paket) erhältlich. Selbstverständlich kann die Platine auch anderswo beschafft und in Eigenregie um den Adapter erweitert werden (ist kein grosser Aufwand) und selbstverständlich kann auch ein beliebiges Evaluationsboard, z.B. von Pollin, verwendet werden.
Wir arbeiten mit folgenden Voraussetzungen:
- ATM8
- 2 Taster (möglichst entprellt) gegen Masse auf PD2 und PD3
- 1 Poti auf ADC0 (interne Referenz), idealerweise jeweils Poti auf ADC1 und ADC2
- 8 LEDs highaktiv an PB0-PB7
- Programmer AVRISP MKII, Atmel-Studio 4
Wer die von mir hier angebotenen UL-E bestellen möchte, den bitte ich, dies bis 19.9.11 zu tun. Bis dahin sollten die ersten Themen hier zu lesen sein, so dass die Entscheidung für oder auch gegen die Teilnahme, sowie die Entscheidung für oder gegen die Anschaffung einer UL-E oder einer anderen Experimentierumgebung erleichtert sein sollte.
Ich biete zudem an, die erforderlichen Programmer zu besorgen und zusammen mit den UL-E zu auszuliefern. Da ich die Programmer selbst nicht vertreibe und deshalb zum gewöhnlichen Endkundenpreis bei Reichelt beziehe, werde ich genau diesen Preis 1:1 weiterreichen, erspare dem Besteller jedoch damit die Versandkosten.
Den aktuellen Endkundenpreis erfahrt Ihr hier, sollte sich dieser zum Zeitpunkt der eigentlichen Bestellung ändern werde ich den evtl. Preisvorteil, sowie leider auch den evtl. Preisnachteil auch weitergeben, allerdings hat sich hier seit etwa 4 Jahren nichts geändert.
Der Workshop richtet sich an Interessierte und soll ihnen einen Einstieg in die Programmierung bieten und diesen erleichtern. Er richtet sich nicht an erfahrene Hobbyprogrammierer, die zum Profi werden wollen.
Der Ablauf sieht so aus, dass ich, wenn möglich, wöchentlich einen Beitrag zu einem bestimmten Thema verfasse, diesen mit Beispielen belege und den Teilnehmern Aufgaben stelle, die sie selbst und mit Hilfe ihrer Experimentierumgebung lösen sollen. Die Lösungen sollen dann an mich per Mail gesendet werden, ich werde diese dann alle zusammen in einem Beitrag kommentieren und veröffentlichen, damit wir darüber gemeinsam diskutieren können.
Wir werden so gemeinsam an einem Projekt arbeiten, am Ende sollte das eine Ampelsteuerung werden. Diese wird folgendes können:
- Umschaltung von automaticher Verkehrsampel und Anforderungsampel (Fussgängerampel)
- Einstellbare Rot-Phase (ggf. weitere Phasen einstellbar)
- diverse kleine Funktionen, vielleicht auch mit Wünschen und Eigenkreationen

Am Ende habt Ihr mit der UL-E eine Lichtsteuerung, die Ihr mit den erworbenen Kenntnissen selbst programmieren und anschliessend in Euere Anlage integrieren könnt oder zumindest die Kenntnisse und ein beliebiges Experimentierboard.
Die Bestellungen der UL-E und/oder Programmer sind nicht an die Teilnahme des Workshop gekoppelt! Fällt der Workshop aus oder muss dieser z.B. aus gesundheitlichen oder privaten Gründen verzögert oder gar eingestellt werden, ist die Rückgabe des Materials oder die Entschädigung irgendwelcher erbrachten Aufwände ausgeschlossen! Dies gilt auch dann, wenn ein Teilnehmer, aus welchen Gründen auch immer, nicht mehr weiter teilnehmen möchte.
Anregungen und Beschwerden


