<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>
<document>
<title>Microcontroller-Programmierung</title>
<cid>E2509</cid>
<sapsubmodule>P211-0112</sapsubmodule>
<bkey>ei</bkey>
<ctypes>
<hours>4</hours>
<type>V</type>
</ctypes>
<cp>5</cp>
<semester>5</semester>
<mandatory>ja</mandatory>
<language>Deutsch</language>
<exam>Klausur</exam>
<curriculum>
<curriculum_entry>
<cid>E2509</cid>
<branch>Elektro- und Informationstechnik</branch>
<semester>5</semester>
<mandatory_tag>Pflichtfach</mandatory_tag>
</curriculum_entry>
</curriculum>
<workload>
Die Präsenzzeit dieses Moduls umfasst bei 15 Semesterwochen 60 Veranstaltungsstunden (= 45 Zeitstunden). Der Gesamtaufwand des Moduls beträgt bei 5 Creditpoints 150 Stunden (30 Stunden/ECTS Punkt). Daher stehen für die Vor- und Nachbereitung der Veranstaltung zusammen mit der Prüfungsvorbereitung 105 Stunden zur Verfügung.
</workload>
<prerequisites>
</prerequisites>
<prerequisitesfor>
</prerequisitesfor>
<convenor>Prof. Dr.-Ing. Jürgen Schäfer</convenor>
<convenor-person-key>jus</convenor-person-key>
<lecturers>
<lecturer>Prof. Dr.-Ing. Jürgen Schäfer</lecturer>
<lecturer-person-key>jus</lecturer-person-key>
</lecturers>
<objectives>Kenntnisse: Aufbau von Komponenten eingebetteter Systeme, System-on-chip, Besonderheiten bei der Programmierung eingebetteter Systeme (Cross-Compiler, Programmierung, Debugging; Schnittstellen GPIO, ADC, DAC, SPI, I2C, USART; Interrupts und Exceptions) 
 
Fertigkeiten: Umgang mit einem Entwicklungswerkzeug für eingebettete Systeme, Arbeiten mit der Dokumentation eines modernen RISC-Mikrocontrollers und, Konfigurieren von GPIOs, UASRT-Schnittstellen und Timern, Erstellen von Interrupt-
Programmen, Fehlersuche in eingebetteten Systemen. 
 
Kompetenzen: Programmierung von Mikrocontroller-basierten eingebetteten Systemen mit eingeschränkten Ressourcen unter Echtzeitbedingungen ohne Betriebssystem. Implementierung einfacher Hardware-Abstraktionsschichten sowie die Realisierung einfacher Steuerungen durch Zustandsmaschinen. Erkennung möglicher Race-conditions.</objectives>
<content>1. Werkzeuge der Softwareerstellung
- Entwicklungsumgebung µVison (MDK-ARM)
-- Projekteinstellungen
-- Compiler, Linker
-- Debugging
- Wichtige Unterstützungsprogramme
-- TortoiseSVN
-- Doxygen
2. Wichtige Entwurfsmuster
3. Nebenläufigkeit
- Problematik
- Lösungsmöglichkeiten
4. Abstraktion der Hardware (HAL)
5. Anwendungen aus der Praxis
- IO-Pins: Eingabe und Ausgabe 
- Abstrakte Implementierung einer Kommunikationsschnittstelle am Beispiel eines Interfaces zum Empfang und Senden 
von Daten über eine asynchrone (USART) und synchrone (SPI oder I2C) serielle Schnittstelle
- Verwendung von Rückruf-Methoden in Verbindung mit Interrupts (Inversion of Control)
- Zeitsteuerung via Timer, PWM-Erzeugung und -Analys</content>
<media>PC, Tafel, Beamer, Microcontroller Evaluationsboards</media>
<literature>Douglass, B. P.: Design patterns for embedded systems in C, Elsevier Newnes, Amsterdam, 2011, ISBN 978-1-85617-707-8
Eißenlöffel, Thomas: Embedded-Software entwickeln: Grundlagen der Programmierung eingebetteter Systeme - Eine Einführung für Anwendungsentwickler, dpunkt.verlag, 2012, ISBN 978-3-89864-727-4
Hohl, William: ARM assembly language - fundamentals and techniques, CRC Press, 2009, ISBN 978-1-439-80610-4
Langbridge, James A.: Professional embedded ARM development, Wiliy, 2014, ISBN 978-1-118-78894-3
Lewis, Daniel W.: Fundamentals of embedded software with the ARM Cortex-M3, Pearson, Upper Saddle River, 2013, 2. Aufl., ISBN 978-0-13-335722-6
Yiu, J.: The Definite Guide to the ARM Cortex-M3, Newnes, Oxford, 2010, ISBN 978-1-85617-963-8</literature>
<offered>
</offered>
<moduldb-query>Sun Mar 15 21:03:54 CET 2026, CKEY=e3E2509, BKEY=ei, CID=[?], LANGUAGE=de, DATE=15.03.2026</moduldb-query>
</document>
