Inhalt. Übungen zu Systemnahe Programmierung in C (SPiC) Tafelübungen. Inhalt. Organisatorisches. Entwicklungsumgebung

Ähnliche Dokumente
Übungen zu Systemnahe Programmierung in C (SPiC) Inhalt. Sebastian Maier, Heiko Janker (Lehrstuhl Informatik 4) Übung 1. Wintersemester 2015/2016

Inhalt Übungen zu Systemnahe Programmierung in C (SPiC) Inhalt. Tafelübungen. Organisatorisches. Entwicklungsumgebung

Inhalt. Übungen zu Systemnahe Programmierung in C (SPiC) Rechnerübungen. Tafelübungen

Inhalt Übungen zu Systemnahe Programmierung in C (SPiC) Prolog: Windows-Login. Organisatorisches: Tafelübungen

Übungen zu Systemnahe Programmierung in C (SPiC) Inhalt. Moritz Strübe, Rainer Müller (Lehrstuhl Informatik 4) Sommersemester 2013

Übungen zu Grundlagen der Systemnahen Programmierung in C (GSPiC)

Übungen zu Grundlagen der Systemnahen Programmierung in C (GSPiC)

Prolog: Windows-Login Übungen zu Grundlagen der Systemnahen Programmierung in C (GSPiC)

Rainer Müller, Moritz Strübe (Lehrstuhl Informatik 4) Sommersemester 2014

Rainer Müller (Lehrstuhl Informatik 4) Sommersemester Zur Bearbeitung der Übungen ist ein Windows-Login nötig Jetzt Passwort setzen:

Prolog: Windows-Login Übungen zu Grundlagen der Systemnahen Programmierung in C (GSPiC)

Wer möchte, kann sein Programm auch auf echter Hardware testen

Makros sind Textersetzungen, welche vom Präprozessor aufgelöst werden. Dies Passiert bevor der Compiler die Datein verarbeitet.

Rechnerübung: Versuchen Sie (1) und (2) auf den Linux-Systemen. Zur Nutzung der Windows-PCs zunächst mit dem Kommando

Systemnahe Programmierung in C Übungen Moritz Strübe Universität Erlangen-Nürnberg Informatik 4, 2010 U1.fm

U1-1 Login in die Windows-Umgebung. U1 1. Übung. U1-2 Organisatorisches. U1-2 Rechnerübungen. Zur Nutzung der Windows-PCs zunächst mit dem Kommando

Selbstbau-USB-Programmiergerät für AVR

Erster Schritt Vom Herunterladen bis zum Programmieren

Programmierung Nibo 2 Teil 1 ATmel AVR Studio 6. * by nicaisystems. Programmierung Nibo 2 Teil 1 - AVR Studio 6 1

U4 Grundlagen der C-Programmierung

Inhalt. Übungen zu Systemnahe Programmierung in C (SPiC) Interrupts. Inhalt. Interrupts. Synchronisation

Software-Update zum Buch 3D-Spieleprogrammierung mit DirectX 9 und C++

D i g i t a l l a b o r

USB-AVR-Programmer (USB-AVR-Mini, AVRISP mk II-Clone)

Unter Project New µvision Project kann ein neues Projekt angelegt werden.

b) Gegeben sei folgende Enumeration: enum SPRACHE {Deutsch, Englisch, Russisch};

Board 1 - Teil 2. by AS. Prozessor Board 1 mit dem AT 1284 P, 3 x Ports, ISP und 2 x I 2 C Bus = Teil 2 Der erste Start =

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Die Entwicklungsumgebung. Labor Technische Informatik. Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) A. Reber

Hex Datei mit Atmel Studio 6 erstellen

Einführung in MS Visual Studio 2008

Ein erster Blick. Eclipse und Debugging. Anlegen von Projekten. Wissenswertes...

Erste Schritte mit Lejos unter Linux

Einführung in die C-Programmierung

Software-Engineering Grundlagen des Software-Engineering

Aufsetzen und Debuggen eines CCSv5.5-Projektes für D.module.C6713 DSP mit CODEC D.module.ADDA16

Prof. Dr. Pollakowski

Produktinformationen. Basis Set Atmel Atmega8 & ISP Programmer. Lieferumfang :

PICkit 2 / 3. Programmierung mit dem USB-Programmer PICkit2 bzw. PICkit3 (Microchip) AB

Enigma2 Plugin Entwicklung mit Eclipse

Kurzanleitung zur Benutzung der Entwicklungsumgebung Code::Blocks für die Übung aus Programmieren 1 und 2

Erste Schritte mit Eclipse

Eine Einführung in. für mathematisch- technische Assistenten / Informatik (IHK)

Anleitung zum Arbeiten mit Microsoft Visual Studio 2008 im Softwarepraktikum ET/IT

1. Vorbereiten das Host, folgende Software Pakete müssen installiert werden: gnome-devel bison flex texinfo libncurses5-dev git codeblocks putty

Einführung zum Arbeiten mit Microsoft Visual C Express Edition

Prof. Dr. Heinrich Müller. Informatik VII Universität Dortmund. Organisatorisches zum Vorkurs Informatik

PG5 Starter Training PG5 Core und Webeditor 8 Daniel Ernst DE

Programmieren in C Teil 3: Mikrocontrollerprogrammierung

Windows XP & DNS-323: Zugriff auf die Netzfreigaben 1. Über dieses Dokument

1. Allgemeine Hinweise

Software mit Tests & Beispielen

EIBPORT INBETRIEBNAHME MIT DEM BROWSER / JAVA EINSTELLUNGEN / VORBEREITUNGEN AM CLIENT PC

Apps-Entwicklung mit Eclipse

Zentraler Speicherplatz

Anleitung Firmware-Update testo 380 und testo 330

Einheit 06: Debugging in Eclipse

Einrichten einer Toolchain zur Programmierung des Nibo 2 Roboters mit Atmel Studio 6

Nachklausur Programmieren / Algorithmen und Datenstrukturen 1

Für den Zugriff vom PC aus die TCP/IP Netzwerkeinstellung des PC auf DHCP bzw. automatisch stellen,

Anleitung. Integration von Kentix Geräten in den OpManager

B4 Viper Connector Service Installationsanleitung Stand:

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

How to Public key authentication with freesshd

FAQ: G DATA EU Ransomware Cleaner

SCHNELLEINSTIEG ZUM TOOL NODEBUILDER

Anleitung Canton musicbox XS/S Firmware-Update

JDroidLib mit Eclipse (Mac/Linux/Windows)

Passwortwechsel mit Windows

myavr Klassendiagramm der UML mit SiSy-AVR Schnelleinstieg für myavr Board MK3

Anleitung für Kaufkunden, bei denen der CLIQ Web Manager nicht permanent mit dem CLIQ Data Center (DCS) verbunden sind

Programmierung Tiny45 für DCC Lokdecoder

AVR-Programmierung unter Mac OSX

Handbuch B4000+ Preset Manager

Android DER SCHNELLE UND EINFACHE EINSTIEG IN DIE PROGRAMMIERUNG UND ENTWICKLUNGSUMGEBUNG. EXTRA: E-Book inside. dirk LOUIS peter MÜLLER. 2.

Anleitung Canton musicbox XS/S Firmware-Update

UART-Kommunikation mit dem Atmel AVR

Anleitung für Vorlesungsaufzeichnungen mit Lecturnity. (im ZHG und diversen anderen Räumen der Universität Göttingen)

3 Der Debugger. 3.1 Überblick. 3.2 Einschränkungen

CLIQ Manager als Standard Benutzer starten

Java Programmierung auf der Konsole / unter Eclipse

Installations-Dokumentation, YALG Team

iphone-kontakte zu Exchange übertragen

Installation & Anwendung Xdebug für Eclipse

Installation der Entwicklungswerkzeuge

Installationsanleitung bootfähiger USB-Stick PSKmail v

Übung zur Vorlesung Strukturiertes Programmieren WS 2014/15. Übungsblatt 1: JAVA - Erste Schritte Abgabe: Besprechung:

Einführung in Automation Studio

Web Order Entry (WOE)

KOMPRIMIERUNGS & VERSCHLÜSSELUNGS- TOOL

Kompatibilitätsupdate Gigaset SL910/SL910A/SL910H

OpenSSH installieren (Windows) Was ist OpenSSH?

ecampus elearning Initiative der HTW Dresden

Anleitung zur Prüfung der digitalen Signatur mit Adobe Reader XI (bzw. X)

Benutzen Sie bitte den Front-USB-Slot für Ihre Sticks. Warten Sie ca. 15 Sekunden. Doppelklicken Sie das Icon 'USB- Stick aktivieren'.

:: Anleitung Migration Outlook 2010/2013/2016 ::

Pascal-Compiler für den Attiny

HorstBox (DVA-G3342SD)

Anleitung für die Firmware-Aktualisierung

Python macht Embedded Linux angenehmer

Transkript:

Übungen zu Systemnahe Programmierung in C (SPiC) Sebastian Maier, Heiko Janker (Lehrstuhl Informatik 4) Übung 1 Inhalt Organisatorisches Entwicklungsumgebung Anleitung Aufgabe 1 und Hands-on Wintersemester 2015/2016 Lehrstuhl Informatik 4 Übungen zu SPiC (WS 2015/16) 2 34 Inhalt Organisatorisches Tafelübungen Aufgaben Rechnerübungen Bei Problemen Entwicklungsumgebung Anleitung Aufgabe 1 und Hands-on Tafelübungen Tafelübung Do 10:15 11:45 (im Raum 01.153-113) Ablauf der Tafelübungen: 1. Besprechung der alten Aufgabe 2. Praxisnahe Vertiefung des Vorlesungsstoffes 3. Vorstellung der neuen Aufgabe 4. ggf. Entwicklung einer Lösungsskizze der neuen Aufgabe 5. Hands-on: gemeinsames Programmieren Folien nicht unbedingt zum Selbststudium geeignet Anwesenheit, Mitschrift Übersicht aller SPiC-Termine: https://www4.cs.fau.de/lehre/ws15/v_spic/#woch Semesterplan: https://www4.cs.fau.de/lehre/ws15/v_spic/#sem Lehrstuhl Informatik 4 Übungen zu SPiC (WS 2015/16) 2 34 Lehrstuhl Informatik 4 Übungen zu SPiC (WS 2015/16) 3 34

Aufgaben Bonuspunkte 8 Aufgaben: 4 x Mikrocontroller (SPiCboard) 4 x Linux Lösungen: Abgabe unter Linux Lösung wird automatisch auf Ähnlichkeit mit allen anderen, auch älteren Lösungen verglichen abgeschriebene Lösungen bekommen 0 Punkte Im Zweifelsfall bei einem Übungsleiter melden Programm nicht übersetzbar: -50% der möglichen Punkte Bei Warnungen des Compilers: Je Warnung -2 Punkte Kommentare im Code helfen euch und dem Korrektor Nur die Aufgabenstellung lösen Code auskommentieren Lieber Teilaufgaben richtig, als alles, aber falsch lösen Abgegebene Aufgaben werden mit Übungspunkten bewertet Umrechnung in Bonuspunkte für die Klausur (bis zu 10% der Punkte) Bestehen der Klausur durch Bonuspunkte nicht möglich Bonuspunkte für die Klausur ab 50% der erreichbaren Übungspunkte Bonuspunkte können nicht in nächste Semester übernommen werden Lehrstuhl Informatik 4 Übungen zu SPiC (WS 2015/16) 4 34 Rechnerübungen Rechnerübung Fr 14:15 15:45 (im Raum 01.153-113) Unterstützung durch Übungsleiter bei der Aufgabenbearbeitung Falls 30 Minuten nach Beginn der Rechnerübung (also um 14:45) niemand anwesend ist, kann der Übungsleiter gehen Lehrstuhl Informatik 4 Übungen zu SPiC (WS 2015/16) 5 34 Bei Problemen Diese Folien konsultieren Häufig gestellte Fragen (FAQ) und Antworten: https://www4.cs.fau.de/lehre/ws15/v_spic/uebung/faq.shtml Fragen zu Übungsaufgaben im EEI-Forum posten (darf auch von anderen Studienrichtungen verwendet werden!): https://eei.fsi.uni-erlangen.de/forum/forum/16 Bei speziellen Fragen Mail an Mailingliste, die alle Übungsleiter erreicht: i4spic@cs.fau.de Zum Beispiel auch, wenn kein Übungsleiter auftauchen sollte Lehrstuhl Informatik 4 Übungen zu SPiC (WS 2015/16) 6 34 Lehrstuhl Informatik 4 Übungen zu SPiC (WS 2015/16) 7 34

Inhalt Hardware: SPiCboard v1 Organisatorisches Speziell für (G)SPiC angefertigte SPiCboards mit AVR-ATmega32-Mikrocontroller SPiCboard Version 1: Entwicklungsumgebung Hardware Funktionsbibliothek Wichtige Verzeichnisse Atmel Studio LED Reihe (active low) LED 0 (Red 0, PD7) T (e ast nt er pr 0 el lt, PD 2) T (p ast re er llt 1,P D 3) JTAG Anschluss LED 1 (Yellow 0, PC0) Stromversorgung LED 2 (Green 0, PC1) LED 3 (Blue 0, PC6) Anleitung LED 4 (Red 1, PC7) LED 5 (Yellow 1, PA7) 7 Segment Anzeigen LED 6 (Green 1, PA6) Einer (Connector PD1) Aufgabe 1 und Hands-on LED 7 (Blue 1, PA5) Zehner (Connector PD0) PB4 PB3 ISP Anschluss Übungen zu SPiC (WS 2015/16) 7 34 Lehrstuhl Informatik 4 Übungen zu SPiC (WS 2015/16) (active low) PB2 PB1 PB6 Fotowiderstand an ADC0 Lehrstuhl Informatik 4 PB5 Potentiometer (POTI) an ADC1 PB0 8 34 Hardware: SPiCboard v2 Hardware: Werkzeuge SPiCboard Version 2: JTAG-Debugger (links) zur Überwachung der Programmausführung direkt auf dem Board (z. B. Schritt-für-Schritt-Ausführung, Untersuchung von Variablenwerten, etc.) ISP-Programmierer (rechts) zur Übertragung des eigenen Programms auf den Mikrocontroller Lehrstuhl Informatik 4 Übungen zu SPiC (WS 2015/16) 9 34 Lehrstuhl Informatik 4 Übungen zu SPiC (WS 2015/16) 10 34

Aufgabenbearbeitung Funktionsbibliothek Betreute Bearbeitung der Aufgaben während der Rechnerübungen Hardware wird zur Verfügung gestellt Selbständige Bearbeitung teilweise nötig Ausleihe von SPiCboard, Kabeln und Programmierer/Debugger tagsüber möglich: Bei Harald Junggunst, Büro 0.046 (Erdgeschoss RRZE-Gebäude) Übliche Bürozeiten: von 8:00 bis 15:00 https://www4.cs.fau.de/~jungguns/ In 01.155N befinden sich weitere Windows-Rechner libspicboard: Funktionsbibliothek zur Ansteuerung der Hardware Beispiel: sb_led_on(green0); schaltet 1. grüne LED an Direkte Konfiguration der Hardware durch Anwendungsprogrammierer nicht nötig Verwendung vor allem bei den ersten Aufgaben, später muss libspicboard teils selbst implementiert werden Dokumentation online: https://www4.cs.fau.de/lehre/ws15/v_spic/uebung/doc Lehrstuhl Informatik 4 Übungen zu SPiC (WS 2015/16) 11 34 Wichtige Verzeichnisse (1) Heimverzeichnis: Linux: Windows: Z:\ Projektverzeichnis: Linux: /proj/i4spic/loginname/ Windows: P:\ Die Lösungen müssen im Unterordner aufgabex gespeichert werden Das Abgabeprogramm sucht dort Ist durch andere nicht lesbar Wird automatisch erstellt Lehrstuhl Informatik 4 Übungen zu SPiC (WS 2015/16) 12 34 Wichtige Verzeichnisse (2) Vorgabeverzeichnis: Linux: /proj/i4spic/pub/ Windows: Q:\ Aufgabenstellungen unter aufgaben/ Hilfsmaterial und Binärmusterlösungen zu einzelnen Übungsaufgaben unter aufgabex/ Programm zum Testen der Einheiten auf den Boards unter boardtest/ libspicboard-bibliothek und -Dokumentation unter i4/ Kleine Hilfsprogramme unter tools/ Falls eines der Verzeichnisse Z:\, P:\, Q:\ nicht angezeigt wird: Windows Explorer Computer Netzlaufwerk verbinden Z:\ unter \\faui03\loginname P:\ unter \\faui03\i4spichome Q:\ unter \\faui03\i4spicpub Lehrstuhl Informatik 4 Übungen zu SPiC (WS 2015/16) 13 34 Lehrstuhl Informatik 4 Übungen zu SPiC (WS 2015/16) 14 34

Entwicklungsumgebung: Atmel Studio Inhalt Programmentwicklung mit Atmel Studio 6 unter Windows Vereint Editor, Compiler und Debugger in einer Umgebung Cross-Compiler zur Erzeugung von Programmen für unterschiedliche Architekturen Wirtssystem (engl. host): Intel-PC Zielsystem (engl. target): AVR-Mikrocontroller Organisatorisches Entwicklungsumgebung Anleitung CIP Login Atmel Studio Einrichtung Projekt anlegen Flashen Debuggen Abgabe Aufgabe 1 und Hands-on Lehrstuhl Informatik 4 Übungen zu SPiC (WS 2015/16) 15 34 Windows-Login Zur Bearbeitung der Übungen ist ein Windows-Login nötig Auf einem CIP-Rechner mit Linux-Passwort einloggen Ein Terminalprogramm öffnen und dort folgendes Kommando ausführen: /local/ciptools/bin/setsambapw (hängt auch auf einem Zettel an der Wand zum Raum 01.155-N) Kriterien für sicheres Passwort: Mindestens 8 Zeichen, besser 10 Mindestens 3 Zeichensorten, besser 4 (Groß-, Kleinbuchstaben, Zahlen, Sonderzeichen) Keine Wörterbuchwörter, Namen, Login, etc. Passwort-Generierung zum Aussuchen mit folgendem Kommando: pwgen -s 12 Lehrstuhl Informatik 4 Übungen zu SPiC (WS 2015/16) 15 34 Atmel Studio Einrichtung Achtung: Die Anleitung muss genau beachtet werden Start von Atmel Studio über: Start Alle Programme Atmel Atmel Studio 6.2 Falls Windows-Firewall einige Funktionen blockiert, auf Abbrechen klicken Importieren der Projektvorlage (einmalig): 1. File Import Project Template... 2. Q:\tools\SPiC_Template6.zip 3. Add to folder: <Root> 4. OK Meldung: Project Template has been successfully imported. Lehrstuhl Informatik 4 Übungen zu SPiC (WS 2015/16) 16 34 Lehrstuhl Informatik 4 Übungen zu SPiC (WS 2015/16) 17 34

Atmel-Studio-Projekt Programmieren (1) Pro Übungsaufgabe ein neues Projekt anlegen: 1. File New Project... 2. Projekttyp: (G)SPiC-Projekt 3. Name: aufgabex, zum Beispiel aufgabe0 (Achtung: Kleinschreibung!) 4. Location: P:\ 5. Wichtig: Kein Häkchen bei Create directory for solution 6. OK Initiale C-Datei zu Projekt hinzufügen: 1. Rechts Solution Explorer auswählen 2. Orangefarbenes Projekt auswählen 3. Project Add New Item... 4. Dateityp: C File 5. Name: siehe Aufgabenstellung, jetzt test.c (Achtung: Kleinschreibung!) 6. Add Beispielprogramm, um erste grüne LED einzuschalten: 1 #include <led.h> 2 3 void main(void) { 4 sb_led_on(green0); 5 while(1) { 6 /* Endlosschleife: 7 Mikrocontrollerprogramm darf nie terminieren */ 8 } 9 } Programm kompilieren mit Build Build Solution Programm wurde nur erfolgreich übersetzt, wenn unten steht: Build succeeded. Fehlermeldungen erscheinen ggf. unten Lehrstuhl Informatik 4 Übungen zu SPiC (WS 2015/16) 18 34 Programmieren (2) Achtung: Zwei verschiedene Compiler-Profile: Debug: Ohne Optimierung Build: Mit Optimierung Optimierung macht den Code sehr viel schneller, kann aber den Debugger verwirren Umstellung des Profils in Drop-Down-Box rechts neben dem Play-Button in der Werkzeugleiste Lehrstuhl Informatik 4 Übungen zu SPiC (WS 2015/16) 19 34 Flashen mit Programmierer Flashen: Kompiliertes Programm in den Speicher des Mikrocontrollers kopieren Programmierer auswählen: Project aufgabex Properties Tool Selected Debugger AVRISP mkii ISP Clock: 150,00 khz File Save Selected Items (CTRL-S) Schnellauswahl das Werkzeugs: Letztendlich soll jede Aufgabe mit Build kompiliert und getestet werden Die Build-Konfiguration wird von uns bewertet! Übersetzen, in den Speicher kopieren und laufen lassen: Debug Continue (F5) Beim ersten Mal ggf. Firmware-Upgrade durchführen Lehrstuhl Informatik 4 Übungen zu SPiC (WS 2015/16) 20 34 Lehrstuhl Informatik 4 Übungen zu SPiC (WS 2015/16) 21 34

Debuggen (1) Debuggen (2) JTAG-Debugger zum Untersuchen des Programmablaufs live auf dem Board Debugger auswählen: Project aufgabex Properties Tool Selected Debugger JTAGICE mkii JTAG Clock: 200,00 khz File Save Selected Items Direkt in den Speicher kopieren und laufen lassen: Debug Continue (F5) Beim ersten Mal ggf. Firmware-Upgrade durchführen Sollte sich der Debugger eigenartig verhalten ist wahrscheinlich die Clock verstellt Programm laden und beim Betreten von main() anhalten: Debug Start Debugging and Break Schrittweise abarbeiten mit F10 (Step Over): Funktionsaufrufe werden in einem Schritt bearbeitet F11 (Step Into): Bei Funktionsaufrufen wird die Funktion betreten Debug Windows I/O View: I/O-Ansicht gibt Einblick in die Zustände der I/O-Register; die Werte können dort auch direkt geändert werden Breakpoints unterbrechen das Programm an einer bestimmen Stelle Setzen durch Codezeile anklicken, dann F9 oder Debug Toggle Breakpoint Programm laufen lassen (F5 oder Debug Continue): stoppt, wenn ein Breakpoint erreicht wird Lehrstuhl Informatik 4 Übungen zu SPiC (WS 2015/16) 22 34 Binärabbild flashen Nötig, um vorgefertigte Binärabbilder (.hex-images) zu testen, z. B. Binärmusterlösungen unter Q:\aufgabeX Möglich mit Debugger (ICE) oder Programmierer (ISP) Tools Device Programming Tool: JTAGICE mkii bzw. AVRISP mkii Device: ATmega32 Interface: JTAG bzw. ISP Apply Verbindung überprüfen mit Device Signature Read Ergebnis: 0x1E9502 Eignet sich gut um die Verbindung zwischen PC und µc zu testen Memories Flash:.hex-Datei auswählen Program Nach erfolgreichem Flashen führt das Board das Programm direkt aus Ein Neustart des Programms ist durch Trennung und Wiederherstellung der USB-Spannungsversorgung möglich Lehrstuhl Informatik 4 Übungen zu SPiC (WS 2015/16) 23 34 Abgabe (1) Nach erfolgreichem Testen des Programms müssen Übungslösungen zur Bewertung abgegeben werden Wichtig: Bei Zweiergruppen darf nur ein Partner abgeben! Die Abgabe erfolgt unter einer Linux-Umgebung per Remote Login: Start Alle Programme PuTTY PuTTY Host Name: faui0sr0 bzw. von Zuhause faui0sr0.cs.fau.de Open PuTTY Security Alert mit Ja bestätigen Login mit Benutzername und Linux-Passwort Im erscheinenden Terminal-Fenster folgendes Kommando ausführen, dabei aufgabe0 entsprechend ersetzen: /proj/i4spic/bin/submit aufgabe0 Wichtig: Grüner Text signalisiert erfolgreiche Abgabe, roter Text einen Fehler! Lehrstuhl Informatik 4 Übungen zu SPiC (WS 2015/16) 24 34 Lehrstuhl Informatik 4 Übungen zu SPiC (WS 2015/16) 25 34

Abgabe (2) Inhalt Fehlerursachen aufgabex muss klein geschrieben sein Häkchen bei Create directory for solution nicht entfernt: Dateien sind im Ordner aufgabex/aufgabex.c-datei falsch benannt Anzeigen der abgegebenen Aufgabe /proj/i4spic/bin/show-submission aufgabe0 Zeigt abgegebene Version an Zeigt ggf. Unterschied zwischen abgegebener Version und Version im Projektverzeichnis P:\aufgabeX an Organisatorisches Entwicklungsumgebung Anleitung Aufgabe 1 und Hands-on Aufgabenbeschreibung: Zähler Flankendetektion ohne Interrupts Verwendung von int Sichtbarkeit & Lebensdauer Typdefs & Enums Verwendung von Modulo Hands-on: Signallampe Lehrstuhl Informatik 4 Übungen zu SPiC (WS 2015/16) 26 34 Aufgabenbeschreibung: Zähler Zählen der Tastendrücke an Taster 1 (fallende Flanke) Aktualisieren der Anzeige durch Taster 0 möglich (fallende Flanke) Anzeige erfolgt über 7-Segmentanzeige und LEDs (zu Beginn aus) Hunderterstelle durch LED visualisieren: LED0 = 100, LED1 = 200, etc. Bei Verlassen des anzeigbaren Wertebereichs Zähler zurücksetzen Nutzung der Bibliothesfunktionen für Button, Display und LED Dokumentation der Bibliothek: https://www4.cs.fau.de/lehre/ws15/v_spic/uebung/doc Implementierung durch Polling keine Interrupts erforderlich Lehrstuhl Informatik 4 Übungen zu SPiC (WS 2015/16) 26 34 Flankendetektion ohne Interrupts Detektion der Flanke durch aktives, zyklisches Abfragen (engl. Polling) eines Pegels Unterscheidung zwischen active-high & active-low notwendig Später: Realisierung durch Interrupts Lehrstuhl Informatik 4 Übungen zu SPiC (WS 2015/16) 27 34 Lehrstuhl Informatik 4 Übungen zu SPiC (WS 2015/16) 28 34

Verwendung von int Übersicht: Sichtbarkeit & Lebensdauer Die Größe von int ist nicht genau definiert (ATmega32: 16 bit) Gerade auf µc führt dies zu Fehlern und/oder langsameren Code Für die Übung: Verwendung von int ist ein Fehler Stattdessen: Verwendung der in der stdint.h definierten Typen: int8_t, uint8_t, int16_t, uint16_t, etc. Wertebereich: limits.h: INT8_MAX, INT8_MIN,... Speicherplatz ist sehr teuer auf µc Nur so viel Speicher verwenden, wie tatsächlich benötigt wird! Lokale Variable, nicht static = auto Variable automatisch allokiert & freigegeben Funktionen als static, wenn kein Export notwendig Lehrstuhl Informatik 4 Übungen zu SPiC (WS 2015/16) 29 34 Globale Variablen Lehrstuhl Informatik 4 Übungen zu SPiC (WS 2015/16) 30 34 Typdefs & Enums 1 static uint8_t state; // global static 2 uint8_t event_counter; // global 3 4 void main(void) { 5... 6 } 7 8 static void f(uint8_t a) { 9 static uint8_t call_counter = 0; // local static 10 uint8_t num_leds; // local (auto) 11... 12 } Sichtbarkeit/Gültigkeit möglichst weit einschränken Globale Variable lokale Variable in f() Globale static Variablen: Sichtbarkeit auf Modul beschränken static bei Funktionen und globalen Variablen verwenden, wo möglich 1 #define PD3 3 2 typedef enum { BUTTON0 = 4, BUTTON1 = 8 3 } BUTTON; 4 #define MAX_COUNTER 900 5... 6 void main(void) { 7... 8 PORTB = (1 << PB3); // nicht (1 << 3) 9... 10 BUTTONEVENT old, new; // nicht uint8_t old, new; 11... 12 // Deklaration: BUTTONEVENT sb_button_getstate(button btn); 13 old = sb_button_getstate(button0);//nicht sb_button_getstate(4) 14... 15 } Vordefinierte Typen verwenden Explizite Zahlenwerte nur verwenden, wenn notwendig Lehrstuhl Informatik 4 Übungen zu SPiC (WS 2015/16) 31 34 Lehrstuhl Informatik 4 Übungen zu SPiC (WS 2015/16) 32 34

Verwendung von Modulo Hands-on: Signallampe Modulo ist der Divisionsrest einer Ganzzahldivision Achtung: In C ist das Ergebnis im negativen Bereich auch negativ Beispiel: b = a % 4; a: -5-4 -3-2 -1 0 1 2 3 4 5 6 b: -1 0-3 -2-1 0 1 2 3 0 1 2 Morsesignale über LED 0 ausgeben Steuerung über Taster 1 Nutzung der Bibliothesfunktionen für Button und LED Dokumentation der Bibliothek: https://www4.cs.fau.de/lehre/ws15/v_spic/uebung/doc Lehrstuhl Informatik 4 Übungen zu SPiC (WS 2015/16) 33 34 Lehrstuhl Informatik 4 Übungen zu SPiC (WS 2015/16) 34 34