| Both sides previous revision Previous revision Next revision | Previous revision |
| microcontrollertechnik:start [2020/09/20 10:10] – [Links] tfischer | microcontrollertechnik:start [2026/03/08 21:59] (current) – mexleadmin |
|---|
| ====== Mikrocontroller-Technik ====== | ====== Microcontroller Programming ====== |
| | |
| | ===== Introduction and Context ===== |
| |
| <WRAP right> | <WRAP right> |
| {{::codeoflife.jpg?200|}} | {{codeoflife.jpg?200|}} |
| \\ <fs 70%>Source: eigenes Foto ([[https://creativecommons.org/publicdomain/zero/1.0/deed.en|CC0 1.0]])</fs> | \\ <fs 70%>Source: own photo ([[https://creativecommons.org/publicdomain/zero/1.0/deed.en|CC0 1.0]])</fs> |
| </WRAP> | </WRAP> |
| |
| Die Mikrocontroller-Technik befasst sich damit, wie man einem programmierbaren Bauteil ("Mikrocontroller") Leben einhaucht. Dabei wird die Software im Folgenden in der Programmiersprache C programmiert. Im Gegensatz zu der im 1. und 2. Semester im Kurs Informatik dargestellten Sprachkomponenten und Algorithmen wird hier Wert auf die Eigenheiten durch die Hardware-nähe gelegt. | Microcontroller technology deals with how to bring a programmable component ("microcontroller") to life. In the following, the software is programmed in the C programming language. In contrast to the language components and algorithms presented in the Computer Science course in the 1st and 2nd semester, the focus here is on the special characteristics resulting from the close connection to hardware. |
| | The course builds on knowledge from the following subjects: |
| | |
| | * Computer Science I and II (Informatik I und II) |
| | |
| | **Important:** |
| | |
| | * Stay in contact with us! Even though there may be weeks of independent work, communication is important so that a meaningful result can be submitted for the respective deadlines. |
| | * Exchange ideas with the other students. In most cases, you have the solution to someone else's problem, and vice versa. |
| | * If you only start programming one week before the submission deadline, things will usually get tight. Especially if there are uncertainties and questions. Start early. |
| | * Try to find enjoyment in programming. It is like doing a puzzle, except that you decide what the picture looks like! |
| |
| ~~PAGEBREAK~~ ~~CLEARFIX~~ | ~~PAGEBREAK~~ ~~CLEARFIX~~ |
| <panel type="warning" title="Achtung"> | |
| Die Veranstaltung ist dieses Semester __nicht__ mit dem Elektronik-Labor kombiniert. | |
| <wrap hide>Details zum Ablauf finden Sie beim [[elektronik_labor:start|EST Labor]].</wrap> | |
| </panel> | |
| |
| ===== Zeitplan ===== | |
| |
| * **__03.07__** Abgabe der ersten Software-Version: | ===== Links to the Lecture ===== |
| * Diese Software soll bereits lauffähig sein. | |
| * Die Software darf auskommentierte, nicht lauffähige Komponenten enthalten | |
| * **__24.07__** Abgabe der finalen Software-Version \\ Diese Software soll den Anforderungen (siehe [[Tipps fürs Programmieren]]) genügen | |
| * **__31.07__** Abgabe der (finalen) Präsentation \\ Für die Präsentation sind weitere Tipps unter [[Präsentation]] zu finden | |
| |
| ===== Abgabe ===== | ^ Topic ^ Description ^ Language ^ |
| * Zur Abgabe der Softwarekomponenten: | | Tutorial | A good introduction to embedded software development can be found in the book "Sensor Networks in Theory and Practice - Successfully Realizing Embedded Systems Projects" by Prof. Meroth and Mr. Sora. It explains how to get started in the field of software development embedded in hardware. From within the university network or via VPN, you can access it directly on [[https://link.springer.com/book/10.1007/978-3-658-31709-6|Springer Link]]. |German| |
| * Bitte geben Sie folgenden Komponenten ab: | |:::| The above-mentioned book is also available in English as "Sensor Networks in Theory and Practice". It is the accompanying book by Prof. Meroth and Mr. Sora. It explains how to get started in the field of embedded software development for hardware systems. From the university network or via VPN, you can access it directly on [[https://link.springer.com/content/pdf/10.1007/978-3-658-39576-6.pdf|Springer Link]].|English| |
| * Projektordner aus ATMEL Studio | | Tutorial | Recommended tutorial from [[https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial|mikrocontroller.net]] |German| |
| * Eine Simulide Datei | | Tutorial | The AVR itself also provides a good introduction to C programming on the AVR platform as a [[https://www.youtube.com/watch?v=UMi6lg563BA&index=3&list=PLtQdQmNK_0DRhBWYZ32BEILOykXLpJ8tP|video]] and as [[https://developerhelp.microchip.com/xwiki/bin/view/products/mcu-mpu/8-bit-avr/|textual Developer Help]] |English| |
| * Bitte entfernen Sie nicht notwendige Files, d.h. lassen Sie alte, nicht eingebundene Files und alte Versionen weg, sofern Sie solche angelegt haben | | Datasheet | The [[https://ww1.microchip.com/downloads/en/DeviceDoc/ATmega48_88_168_megaAVR-Data-Sheet-40002074.pdf|data sheet]] of the ATmega88 is also a good reference work |English| |
| * Die Abgabe erfolgt per Mail. Bitte nutzen Sie ein Kompressions-Tool um ein zip/rar-File zu erstellen, welches alle Dateien enthält. \\ **wichtig:** Schützen Sie die Datei per Passwort und geben Sie dieses in der Mail an. | | Datasheet | The data sheet of the ATmega88 has also been translated into German: [[https://www-user.tu-chemnitz.de/~heha/viewchm.php/hs/ATmegaX8.chm/|Online data sheet ATmega88]] |English| |
| * Zur Abgabe der Präsentation | | C Support | A [[http://www.8bit-era.cz/arduino-timer-interrupts-calculator.html|calculator for interrupt timers and prescalers]] |English| |
| * Diese erfolgt über einen Link, welcher in [[https://ilias.hs-heilbronn.de/goto.php?target=frm_229245_6864&client_id=iliashhn|ILIAS]] zu finden ist | | C Support | [[https://www.nongnu.org/avr-libc/user-manual/modules.html|Documentation of the AVR compiler libraries]] (e.g. stdlib) |English| |
| * Gerne können Sie auch Ihr Video per digitale (soziale) Medien teilen. Es schadet nie etwas Werbung für interessante Themen und für Ihre Hochschule zu machen. Falls das Medium öffentlich zugänglich ist, ist es ausreichend eine Textdatei mit Link abzugeben. | |
| |
| ===== Links ===== | |
| |
| === Resourcen für embedded Programmierung === | ===== Further Links ===== |
| * Sehr zu empfehlen ist das [[https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial| AVR-C-Tutorial]] auf mikrocontroller.net | |
| * There is also a nice introduction into C programming on the AVR plattform with [[https://www.youtube.com/watch?v=UMi6lg563BA&index=3&list=PLtQdQmNK_0DRhBWYZ32BEILOykXLpJ8tP|multiple videos from ATMEL]] | |
| * Eine schöne Einführung in die Embedded Softwareentwicklung ist im Buch [[https://link.springer.com/content/pdf/10.1007%2F978-3-658-18386-8.pdf|Sensornetzwerke in Theorie und Praxis - Embedded Systems-Projekte erfolgreich realisieren]] von Kollegen Meroth und Sora zu finden. Dort wird der Einstieg in das Feld die (in Hardware) eingebettete Softwareentwicklung erklärt. Aus dem Hochschulnetz bzw. mit VPN können Sie dieses direkt bei Springer Link betrachten. Eine andere schöne Einführung findet sich auf [[https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial|Mikrocontroller.net]]. | |
| * [[https://www-user.tu-chemnitz.de/~heha/viewchm.php/hs/ATmegaX8.chm/|deutsche Übersetzung der ATmega88 Anleitung]] | |
| * [[http://www.8bit-era.cz/arduino-timer-interrupts-calculator.html|Rechner für Interrupt Timer und PreScaler]] | |
| |
| === C Programmierung === | === C Programming === |
| * schönes Online [[https://de.wikibooks.org/wiki/C-Programmierung|Open Source Buch]] zum Erlernen der Programmiersprache C | * Nice online [[https://de.wikibooks.org/wiki/C-Programmierung|open source book]] for learning the C programming language |
| * [[https://www.math.brown.edu/~jhs/ReferenceCards/CRefCard.v2.2.pdf|C Code Referenz Card]] ("C Cheatsheet") | * [[https://www.math.brown.edu/~jhs/ReferenceCards/CRefCard.v2.2.pdf|C Code Reference Card]] ("C cheatsheet") |
| |
| === Embedde Systems Engineering und Hardware/Software Co-Design=== | === Embedded Systems Engineering and Hardware/Software Co-Design === |
| * [[https://www.in.tu-clausthal.de/uploads/media/Embedded_Systems_Engineering_Handbuch_V0_61a.pdf| Handbuch Embedded Systems Engineering]] der TU Clausthal / FH Nordhausen: Sehr ausführliches und tiefgehendes Buch | * [[https://www.ifi.tu-clausthal.de/fileadmin/IFI/Abteilungen/Energieinformationsnetze_und_Systeme/Embedded_Systems_Engineering_Handbuch_V0_61a.pdf|Embedded Systems Engineering Handbook]] from TU Clausthal / FH Nordhausen: very detailed and in-depth book |
| | * The book [[https://sourceforge.net/projects/qpc/files/doc/PSiCC2.pdf/download|Practical UML Statecharts in C/C++, 2nd Edition: Event-Driven Programming for Embedded Systems]] is also suitable as a detailed reference work \\ [[http://sourceforge.net/projects/qpc/files/doc/PSiCC2-CN.pdf/download|Chinese translation]] |
| |
| === sonstiges === | === Miscellaneous === |
| * [[https://de.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange#Zusammensetzung|Tabelle der ASCII Zeichen]] | * [[https://de.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange#Zusammensetzung|Table of ASCII characters]] |
| * [[https://www.mikrocontroller.net/attachment/74100/Bauanleitung_AVR-USB-PROGI.pdf|Bauanleitung des Mexle AVR-Proggis]] | * [[https://www.mikrocontroller.net/attachment/74100/Bauanleitung_AVR-USB-PROGI.pdf|Assembly instructions for the Mexle AVR programmer]] |