Übungen zu Systemnahe Programmierung in C (SPiC)
|
|
- Bärbel Heidrich
- vor 6 Jahren
- Abrufe
Transkript
1 Übungen zu Systemnahe Programmierung in C (SPiC) Sebastian Maier (Lehrstuhl Informatik 4) Übung 4 Sommersemester 2016
2 Inhalt Module Schnittstellenbeschreibung Ablauf vom Quellcode zum laufenden Programm Initialisierung eines Moduls Ein- & Ausgabe über Pins Active-high & Active-low Konfiguration der Pins Aufgabe 4: LED-Modul Hinweise Testen des Moduls Hands-on: Module, Felder & Zeiger Lehrstuhl Informatik 4 Übungen zu SPiC (SS 2016) 2 17
3 Inhalt Module Schnittstellenbeschreibung Ablauf vom Quellcode zum laufenden Programm Initialisierung eines Moduls Ein- & Ausgabe über Pins Aufgabe 4: LED-Modul Hands-on: Module, Felder & Zeiger Lehrstuhl Informatik 4 Übungen zu SPiC (SS 2016) 2 17
4 Schnittstellenbeschreibung Erstellen einer.h-datei (Konvention: gleicher Name wie.c-datei) 1 #ifndef LED_H 2 #define LED_H 3 /* fixed-width Datentypen einbinden (im Header verwendet) */ 4 #include <stdint.h> 5 /* LED-Typ */ 6 typedef enum { RED0=0, YELLOW0=1, GREEN0=2,... } LED; 7 /* Funktion zum Aktivieren einer bestimmten LED */ 8 uint8_t sb_led_on(led led); #endif Mehrfachinkludierung (evtl. Zyklen!) vermeiden Include-Guard durch Definition und Abfrage eines Präprozessormakros Konvention: das Makro hat den Namen der.h-datei,. ersetzt durch _ Der Inhalt wird nur eingebunden, wenn das Makro noch nicht definiert ist Vorsicht: flacher Namensraum Wahl möglichst eindeutiger Namen Lehrstuhl Informatik 4 Übungen zu SPiC (SS 2016) 3 17
5 Ablauf vom Quellcode zum laufenden Programm test.c gcc test.o ld aufgabe4.elf 7seg.c gcc 7seg.o libspicboard 7seg.h adc.h timer.h libspicboard.a 7seg.o adc.o led.o button.o timer.o 1. Präprozessor 2. Compiler 3. Linker 4. Programmer/Flasher Lehrstuhl Informatik 4 Übungen zu SPiC (SS 2016) 4 17
6 Initialisierung eines Moduls Module müssen Initialisierung durchführen (z.b. Portkonfiguration) z.b. in Java mit Klassenkonstruktoren möglich C kennt kein solches Konzept Workaround: Modul muss bei erstem Aufruf einer seiner Funktionen ggf. die Initialisierung durchführen muss sich merken, ob die Initialisierung schon erfolgt ist Mehrfachinitialisierung vermeiden 1 static uint8_t initdone = 0; 2 // alternativ: lokale static Variable in init() 3 4 static void init(void) {... } 5 void mod_func(void) { 6 if(initdone == 0) { 7 initdone = 1; 8 init(); 9 } Initialisierung darf nicht mit anderen Modulen in Konflikt stehen! Lehrstuhl Informatik 4 Übungen zu SPiC (SS 2016) 5 17
7 Inhalt Module Ein- & Ausgabe über Pins Active-high & Active-low Konfiguration der Pins Aufgabe 4: LED-Modul Hands-on: Module, Felder & Zeiger Lehrstuhl Informatik 4 Übungen zu SPiC (SS 2016) 5 17
8 Ausgang: active-high & active-low Ausgang je nach Beschaltung: active-high: high-pegel (logisch 1; V cc am Pin) LED leuchtet active-low: low-pegel (logisch 0; GND am Pin) LED leuchtet Lehrstuhl Informatik 4 Übungen zu SPiC (SS 2016) 6 17
9 Eingang: active-high & active-low Eingang je nach Beschaltung: active-high: Button gedrückt high-pegel (logisch 1; V cc am Pin) active-low: Button gedrückt low-pegel (logisch 0; GND am Pin) interner pull-up-widerstand (im ATmega32) konfigurierbar Lehrstuhl Informatik 4 Übungen zu SPiC (SS 2016) 7 17
10 !513-())*+6!513-())*+6!5-31())*+7!5-31())*+7!3#$())*+8!3#$())*+8 9:3:& 9:3:& *04))!0=#4( *04))!0=#4( *06))!0=#6( *06))!0=#6( *07))!0=#7( *07))!0=#7( *08))!0=#8( *08))!0=#8( Konfiguration der Pins *+4))!33( *+2))!0-.,%1#'( *+/))!0-.'%-.&/( *+,))!&,( *+4))!33( *+'))!"#$%&'( *+2))!0-.,%1#'( <.= *+/))!0-.'%-.&/( ;## *+,))!&,( *0'))!0=#'( *+'))!"#$%&'( *0,))!0=#,( <.= *0/))!0=#/( ;## *02))!0=#2( *0'))!0=#'( *0,))!0=#,( *0/))!0=#/( *02))!0=#2( TQFP/MLF TQFP/MLF!"#$%&'())*+'!"#$%&'())*+'!&,())*+,!&,())*+,!-.&/%0-.'())*+/!-.&/%0-.'())*+/!1#'%0-.,())*+2!1#'%0-.,())*+2!33())*+4!33())*+4!513-())*+6!513-())*+6!5-31())*+7!5-31())*+7!3#$())*+8!3#$())*+8 9:3:& 9:3:& ;## ;## <.= <.= "&0>/ "&0>/ "&0>, "&0>,!9"=())*='!9"=())*='!&"=())*=,!&"=())*=,!-.&'())*=/!-.&'())*=/!-.&,())*=2!-.&,())*=2!1#,+())*=4!1#,+())*=4!1#,0())*=6!1#,0())*=6!-#*,())*=7!-#*,())*=7 *#8) *#7) *#6) *#4) *#2) *#/) *#,) *#') *=8) ATmega32A!0=#'!0=#,!0=#/!0=#2!0=#4!0=#6!0=#7!0=#8? 09:? *0'))!0=#'( *0'))!0=#'( *0,))!0=#,( *0,))!0=#,( *0/))!0=#/( *0/))!0=#/( *02))!0=#2( *02))!0=#2( *04))!0=#4( *04))!0=#4( *06))!0=#6( *06))!0=#6( *07))!0=#7( *07))!0=#7( *08))!0=#8( *08))!0=#8( 09:? 09:? <.= <.= 0;## 0;## *#8))!&13#/( *#8))!&13#/( *#7))!&13#,( *#7))!&13#,( *#6))!&=-( *#6))!&=-( *#4))!&=1( *#4))!&=1( *#2))!&53( *#2))!&53( *#/))!&#$( *#/))!&#$( *#,))!3=0( *#,))!3=0( *#'))!3#>( *#'))!3#>( *=8))!1#/( *=8))!1#/( Jeder I/O-Port des AVR-µC wird durch drei 8-bit Register gesteuert: Datenrichtungsregister (DDRx = data direction register) Datenregister (PORTx = port output register) Port Eingabe Register (PINx = port input register, nur-lesbar) Jedem Anschluss-Pin ist ein Bit in jedem der 3 Register zugeordnet PDIP PDIP t Pinout ATmega32A ATmega32A Lehrstuhl Informatik 4 Übungen zu SPiC (SS 2016) 8 17
11 I/O-Port-Register DDRx: hier konfiguriert man Pin i von Port x als Ein- oder Ausgang Bit i = 1 Pin i als Ausgang verwenden Bit i = 0 Pin i als Eingang verwenden PORTx: Auswirkung abhängig von DDRx: ist Pin i als Ausgang konfiguriert, so steuert Bit i im PORTx Register ob am Pin i ein high- oder ein low-pegel erzeugt werden soll Bit i = 1 high-pegel an Pin i Bit i = 0 low-pegel an Pin i ist Pin i als Eingang konfiguriert, so kann man einen internen pull-up-widerstand aktivieren Bit i = 1 pull-up-widerstand an Pin i (Pegel wird auf high gezogen) Bit i = 0 Pin i als tri-state konfiguriert PINx: Bit i gibt aktuellen Wert des Pin i von Port x an (nur lesbar) Lehrstuhl Informatik 4 Übungen zu SPiC (SS 2016) 9 17
12 Beispiel: Initialisierung eines Ports Pin 3 von Port B (PB3) als Ausgang konfigurieren und PB3 auf Vcc schalten: 1 DDRB = (1 << PB3); /* =0x08; PB3 als Ausgang nutzen... */ 2 PORTB = (1 << PB3); /*...und auf 1 (=high) setzen */ Pin 2 von Port D (PD2) als Eingang nutzen, pull-up-widerstand aktivieren und prüfen ob ein low-pegel anliegt: 1 DDRD &= ~(1 << PD2); /* PD2 als Eingang nutzen... */ 2 PORTD = (1 << PD2); /* pull-up-widerstand aktivieren */ 3 if ( (PIND & (1 << PD2)) == 0) { /* den Zustand auslesen */ 4 /* ein low Pegel liegt an, der Taster ist gedrückt */ 5 } Die Initialisierung der Hardware wird in der Regel einmalig zum Programmstart durchgeführt Lehrstuhl Informatik 4 Übungen zu SPiC (SS 2016) 10 17
13 Inhalt Module Ein- & Ausgabe über Pins Aufgabe 4: LED-Modul Hinweise Testen des Moduls Hands-on: Module, Felder & Zeiger Lehrstuhl Informatik 4 Übungen zu SPiC (SS 2016) 10 17
14 LED-Modul Übersicht LED 0 (PD7) Port D, Pin 7 Bit 7 in PORTD und DDRD LED 1 (PC0) Port C, Pin 0 Bit 0 in PORTC und DDRC... Lehrstuhl Informatik 4 Übungen zu SPiC (SS 2016) 11 17
15 LED-Modul Aufgabe LED-Modul der SPiCboard-Bibliothek selbst implementieren Gleiches Verhalten wie das Original Beschreibung: Testen des Moduls Eigenes Modul mit einem Testprogramm (test.c) linken Andere Teile der Bibliothek können für den Test benutzt werden LEDs des SPiCboards Anschlüsse und Namen der einzelnen LEDs können dem Übersichtsbildchen entnommen werden Alle LEDs sind active-low, d.h. leuchten wenn ein low-pegel auf dem Pin angelegt wird PD7 = Port D, Pin 7 Lehrstuhl Informatik 4 Übungen zu SPiC (SS 2016) 12 17
16 Exkurs: const uint8_t* vs. uint8_t* const const uint8_t* ein Pointer auf einen uint8_t-wert, der konstant ist Wert nicht über den Pointer veränderbar uint8_t* const ein konstanter Pointer auf einen (beliebigen) uint8_t-wert Pointer darf nicht mehr auf eine andere Speicheradresse zeigen Lehrstuhl Informatik 4 Übungen zu SPiC (SS 2016) 13 17
17 Port- und Pin-Array Port und Pin Definitionen (in avr/io.h) 1 #define PORTD (* (volatile uint8_t*)0x2b) #define PD Adressoperator: & Dereferenzierungsoperator: Port Array: 1 static volatile uint8_t * const ports[] = { &PORTD, 2 &PORTC, 3... }; Pin Array: 1 static uint8_t const pins[] = { PD7, PC0,... }; Lehrstuhl Informatik 4 Übungen zu SPiC (SS 2016) 14 17
18 AVR-Studio Projekteinstellungen Projekt wie gehabt anlegen Initiale Quelldatei: test.c Dann weitere Quelldatei led.c hinzufügen Wenn nun übersetzt wird, werden die Funktionen aus dem eigenen LED-Modul verwendet Andere Teile der Bibliothek werden nach Bedarf hinzugebunden Temporäres deaktivieren zum Test der Originalfunktiononen: 1 #if #endif Sieht der Compiler diese Kommentare? Lehrstuhl Informatik 4 Übungen zu SPiC (SS 2016) 15 17
19 Testen des Moduls 1 void main(void){ // 1.) Testen bei korrekter LED-ID 4 int8_t result = sb_led_on(red0); 5 if(result!= 0){ 6 // Test fehlgeschlagen 7 // Ausgabe z.b. auf 7-Segment-Anzeige 8 } 9 10 // 2.) Testen bei ungueltiger LED-ID } Schnittstellenbeschreibung genau beachten (inkl. Rückgabewerte) Testen aller möglichen Rückgabewerte Fehler wenn Rückgabewert nicht der Spezifikation entspricht Lehrstuhl Informatik 4 Übungen zu SPiC (SS 2016) 16 17
20 Inhalt Module Ein- & Ausgabe über Pins Aufgabe 4: LED-Modul Hands-on: Module, Felder & Zeiger Lehrstuhl Informatik 4 Übungen zu SPiC (SS 2016) 16 17
21 Hands-on: Module, Felder & Zeiger Statistikmodul und Testprogramm Funktionalität des Moduls: Mittelwertbildung uint8_t avgarray(uint16_t *a, size_t s, uint16_t *avg); Minimal- und Maximalwertermittlung uint8_t minarray(uint16_t *a, size_t s, uint16_t *min); uint8_t maxarray(uint16_t *a, size_t s, uint16_t *max); Rückgabewert: 0: OK; 1: Fehler Interne Hilfsfunktionen: uint16_t getmin(uint16_t a, uint16_t b); uint16_t getmax(uint16_t a, uint16_t b); Vorgehen: Header-Datei mit Modulschnittstelle (und Include-Guards) Implementierung des Moduls (Sichtbarkeit beachten) Testen des Moduls im Hauptprogramm (inkl. Fehlerfälle) Lehrstuhl Informatik 4 Übungen zu SPiC (SS 2016) 17 17
Makros sind Textersetzungen, welche vom Präprozessor aufgelöst werden. Dies Passiert bevor der Compiler die Datein verarbeitet.
U4 4. Übung U4 4. Übung Besprechung Aufgabe 2 Makros Register I/O-Ports U4.1 U4-1 Makros U4-1 Makros Makros sind Textersetzungen, welche vom Präprozessor aufgelöst werden. Dies Passiert bevor der Compiler
MehrWer möchte, kann sein Programm auch auf echter Hardware testen
U4 3. Übungsaufgabe U4 3. Übungsaufgabe Grundlegendes zur Übung mit dem AVR-μC Register I/O-Ports AVR-Umgebung Peripherie U4.1 U4-1 Grundlegendes zur Übung mit dem AVR-mC U4-1 Grundlegendes zur Übung mit
MehrParallel-IO. Ports am ATmega128
Parallel-IO Ansteuerung Miniprojekt Lauflicht Ports am ATmega128 PortE (PE7...PE0) alternativ, z.b. USART0 (RS232) 1 Pin von PortC Port C (PC7...PC0) 1 Parallel-IO-Port "Sammelsurium" verschiedener Speicher
MehrMicrocontroller Kurs Programmieren. 09.10.11 Microcontroller Kurs/Johannes Fuchs 1
Microcontroller Kurs Programmieren 9.1.11 Microcontroller Kurs/Johannes Fuchs 1 General Purpose Input Output (GPIO) Jeder der Pins der vier I/O Ports kann als Eingabe- oder Ausgabe-leitung benutzt werden.
MehrEinführung in die Programmierung von Mikrocontrollern mit C/C++
Einführung in die Programmierung von Mikrocontrollern mit C/C++ Vorlesung Prof. Dr.-Ing. habil. G.-P. Ostermeyer Rechenleistung/Speicher Systemintegration Grundlagen der Mikrocontrollertechnik (Wiederholung)
MehrInhalt. Übungen zu Systemnahe Programmierung in C (SPiC) Interrupts. Inhalt. Interrupts. Synchronisation
Übungen zu Systemnahe Programmierung in C (SPiC) Peter Wägemann, Sebastian Maier, Heiko Janker (Lehrstuhl Informatik 4) Übung 5 Inhalt Synchronisation Stromsparmodi Aufgabe 5: Ampel Hands-on: & Sleep Sommersemester
MehrZahlendarstellung Logikfunktionen Register Eingänge Infrarot senden TSOP-Effekte Weiterführendes U23 2008. Abend 3:
#2 Abend 3: Alexander Neumann e.v. http://koeln.ccc.de Köln, 3.11.2008 Gliederung 1 Zahlendarstellung n-adische Darstellung natürlicher Zahlen negative Zahlen 2 Logikfunktionen 3 Register
Mehrb) Gegeben sei folgende Enumeration: enum SPRACHE {Deutsch, Englisch, Russisch};
Aufgabe 1: (15 Punkte) Bei den Multiple-Choice-Fragen ist jeweils nur eine richtige Antwort eindeutig anzukreuzen. Auf die richtige Antwort gibt es die angegebene Punktzahl. Wollen Sie eine Multiple-Choice-Antwort
MehrProduktinformationen. Basis Set Atmel Atmega8 & ISP Programmer. Lieferumfang :
Produktinformationen Basis Set Atmel Atmega8 & ISP Programmer Lieferumfang : 1 Steckboard 840 Pin 1 USB ISP Programmer mit Kabel 1 Kabelsatz 32-teilig 1 Atmega8L 5 LED 3mm Klar Rot/Gelb/Grün/Blau/Weiss
MehrMikrocontroller - Schnelleinstieg
Mikrocontroller - Schnelleinstieg Am Beispiel des Atmel Mega8 Philipp Fabian Benedikt Maier Mikrocontroller Schnelleinstieg Seite 1 Mikrocontroller - Schnelleinstieg: - Was ist ein Mikrokontroller? - Welche
MehrRN-Control ARDUINO Bibliothek ATMEL 32 Version 0.2
RN-Control ARDUINO Bibliothek ATMEL 32 Version 0.2 Bernd Klein 23. Mai 2011 Inhaltsverzeichnis 1 ARDUINO - RN-Control Library 3 1.1 Bibliothek RNControl...................... 3 1.2 Einführung............................
MehrEinführung in AVR-Assembler
Einführung in AVR-Assembler Easterhack 2008 Chaos Computer Club Cologne Stefan Schürmans, BlinkenArea stefan@blinkenarea.org Version 1.0.4 Easterhack 2008 Einführung in AVR-Assembler 1 Inhalt Vorstellung
MehrProgrammieren in C Teil 3: Mikrocontrollerprogrammierung
Programmieren in C Teil 3: Mikrocontrollerprogrammierung 08/30/10 Fachbereich Physik Institut für Kernphysik Bastian Löher, Martin Konrad 1 Tag 1 Hello World 08/30/10 Fachbereich Physik Institut für Kernphysik
MehrDokumentation Metronom
Beuth Hochschule für Technik Berlin Fachbereich VII Elektrotechnik Mechatronik Optometrie Studiengang Bachelor Elektrotechnik Dokumentation Metronom Projekt im Labor Mikrocomputertechnik Teilnehmer: Benjamin
MehrProjektarbeit: Roulette Spiel
Projektarbeit: Roulette Spiel auf dem Atmega162 Im Fach Datenverarbeitungstechnik 1. Aufgabestellung Die Aufgabe verlangte es ein Reaktionsspiel auf einem Olimex AVR USB 162 zu entwerfen. Auf dem Entwicklerboard
MehrAddieren und Subtrahieren mit Mikrocontroller Atmega AT90162USB
Addieren und Subtrahieren mit Mikrocontroller Atmega AT90162USB Projekt: Markus Sellner Hardware: AT90USB162 auf Entwicklerplatine AVR-USB-162 von Olimex erweitert um zwei 7-Segment-Anzeigen Aufgabe: Mit
MehrPraxisorientierte Einführung in C++ Lektion: "Die Compiler-Chain (Vom Quellcode zum ausführbaren Programm)"
Praxisorientierte Einführung in C++ Lektion: "Die Compiler-Chain (Vom Quellcode zum ausführbaren Programm)" Christof Elbrechter Neuroinformatics Group, CITEC April 24, 2014 Christof Elbrechter Praxisorientierte
MehrInstallation & Verwendung. Version 1.0. WinAVR
Installation & Verwendung Version 1.0 WinAVR Allgemeines Der estick ist ein USB basiertes Entwicklungs-Board für Atmel AT90USB162 Mikrocontroller. Einfache, anschauliche Anwendungen und Beispiele basierend
MehrSerie 8: Microcontroller 17./18.07.2014
Serie 8: Microcontroller 17./18.07.2014 I. Ziel der Versuche Erster Erfahrungen mit einem Microcontroller sollen gesammelt werden, die grundlegenden Ein- Ausgabe-Operationen werden realisiert. II. Vorkenntnisse
MehrTag 2 Eingabe und Interrupts
Tag 2 Eingabe und Interrupts 08/30/10 Fachbereich Physik Institut für Kernphysik Bastian Löher, Martin Konrad 1 Taster Direkt an Portpin angeschlossen (etwa PINB0, PIND3) Pull-Up-Widerstände einschalten!
MehrProgrammierung Nibo 2 Teil 3 Display. * by nicaisystems
by HJS Programmierung Nibo 2 Teil 3 Display * by nicaisystems Nibo 2 Programmierung Teil 3 Display Notwendige Programme: AVR Studio 4 ( mit den aktuellen Versionen und Updates ) WinAVR ( in der aktuellen
MehrAtmel AVR für Dummies
Atmel AVR für Dummies fd0@koeln.ccc.de 29.12.2005 Übersicht 1 Hardware Kurzvorstellung Atmega8 Programmierkabel (Eigenbau vs. Kommerzlösung) Alternative: Bootloader (Programmieren via rs232) Software Speicher
MehrTutorium Rechnerorganisation
Woche 2 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu
MehrGrundlagen. Die Komponenten eines C Programms. Das erste Programm
Grundlagen 1. Die Komponenten eines C Programms 2. Ein Programm erzeugen und übersetzen 3. Variablen Deklarieren und Werte zuweisen 4. Zahlen eingeben mit der Tastatur 5. Arithmetische Ausdrücke und Berechnungen
MehrAssembler in der Arduino-IDE: ein Einblick
Skript Assembler in der Arduino-IDE: ein Einblick C-Code Die Arduino-IDE baut auf dem GNU-Assembler auf. Daher ist es möglich, mit der avr-gcc den µc über die ISP-Schnittstelle in Assembler programmieren.
MehrEinführung in die C-Programmierung
Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).
MehrDAP2-Programmierpraktikum Einführung in C++ (Teil 1)
DAP2-Programmierpraktikum Einführung in C++ (Teil 1) Carsten Gutwenger 11. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Mein erstes C++-Programm Namensräume
MehrInstallation & Verwendung. Version 1.0. WinAVR & AVR Studio 4
Installation & Verwendung Version 1.0 WinAVR & AVR Studio 4 Allgemeines Der estick ist ein USB basiertes Entwicklungs-Board für Atmel AT90USB162 Mikrocontroller. Einfache, anschauliche Anwendungen und
MehrÜbungen zu Systemnahe Programmierung in C (SPiC) Inhalt. Sebastian Maier, Heiko Janker (Lehrstuhl Informatik 4) Übung 1. Wintersemester 2015/2016
Übungen zu Systemnahe Programmierung in C (SPiC) Sebastian Maier, Heiko Janker (Lehrstuhl Informatik 4) Übung 1 Wintersemester 2015/2016 Inhalt Organisatorisches Entwicklungsumgebung Anleitung Aufgabe
MehrAVR-Mikrocontrollertechnik
1/31 Ziele der Weiterbildung Vermitteln von Grundlagen zu den AVR Controllern Vermitteln von Assembler Grundlagen Vorstellen der benötigten Hard und Software Eigenständiges Programmieren der Controller
MehrModulare Programmierung und Bibliotheken
Modulare Programmierung und Bibliotheken Proseminar-Vortrag am 24.06.2011 von Ludwig Eisenblätter Ludwig Eisenblätter 1 von 25 Modulare Programmierung und Bibliotheken Inhaltsübersicht Motivation / Einleitung
MehrARDUINO Übung. Inhalt:
ARDUINO Übung Diese Übung ermöglicht einen kurzen Einblick in die Welt der Mikrokontrollerprogrammierung. Es sollen im Folgenden die Anleitungen befolgt werden und die entsprechenden elektrotechnischen
MehrDeklarationen in C. Prof. Dr. Margarita Esponda
Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.
MehrÜbungen zu Systemnahe Programmierung in C (SPiC) Inhalt. Moritz Strübe, Rainer Müller (Lehrstuhl Informatik 4) Sommersemester 2013
Übungen zu Systemnahe Programmierung in C (SPiC) Moritz Strübe, Rainer Müller (Lehrstuhl Informatik 4) Sommersemester 2013 Inhalt Organisatorisches Tafelübungen Reine Rechnerübungen Bonuspunkte Bei Problemen
MehrAVR Web Server. Version 1.1. erstellt von. Ulrich Radig
AVR Web Server Version 1.1 erstellt von Ulrich Radig 1 Vorwort: Der von mir aufgebaute AVR Webserver dient zum Steuern Messen und Regeln von diversen Gerätschaften genannt seien Garagentor, Lampen, Heizung
MehrAVR-GCC-Tutorial. www.mikrocontroller.net
www.mikrocontroller.net AVR-GCC-Tutorial Inhaltsverzeichnis [Verbergen] 1 Vorwort 2 Benötigte Werkzeuge 3 Was tun, wenn's nicht "klappt"? 4 Exkurs: makefiles 4.1 Controllertyp setzen 4.2 Quellcode-Dateien
Mehreinfache PIC-Übungsprogramme
einfache PIC-Übungsprogramme Schreibe in MPLAB für das PIC-Übungsboard 01 mit dem PIC16F88 folgendes Programm, assembliere und dokumentiere dieses, schreibe es anschließend mittels dem Programmiergerät
MehrEinführung in Mikrokontroller Benutzung mit dem Arduino Board. Ramon Hofer ICVR
Einführung in Mikrokontroller Benutzung mit dem Arduino Board Ramon Hofer ICVR Ablauf Warum Mikrokontroller Das Arduino Board Anschliessen von Bauteilen Digitale Ein- und Ausgaben Analoge Eingaben Serielle
MehrU23 2008 Abend 3: Musterlösungen, Taster entprellen, Unterprozeduren, Interrupts, Timer
Abend 3: Musterlösungen, Taster entprellen, Unterprozeduren, Interrupts, Timer Alexander Neumann e.v. http://koeln.ccc.de Köln, 1.9.2008 1 Musterlösungen Aufgabe 1 & 2 2 Taster entprellen
MehrEinführung in das Programmieren in der Sekundarstufe 1. mit einem Arduino und der Physical-Computing-Plattform
Einführung in das Programmieren in der Sekundarstufe 1 mit einem Arduino und der Physical-Computing-Plattform 1 Arduino mit Breadboard (Steckbrett) und LED mit Vorwiderstand Arduino-Board Uno R3 mit Mikrocontroller
MehrTutorial. Bibliothek AutoGUITest V1.0. Windows-Benutzeroberflächen automatisiert testen. Ausgabe: 6.6.02. 06.06.02 / 13:51 Seite 1
Bibliothek AutoGUITest V1.0 Windows-Benutzeroberflächen automatisiert testen Tutorial Ausgabe: 6.6.02 06.06.02 / 13:51 Seite 1 Inhalt 1 Übersicht...3 2 Funktionsweise...3 3 Funktionsumfang...3 4 Einsatz
MehrAVR UART. ELV Modul: http://www.elv.de/output/controller.aspx?cid=74&detail=10&detail2=28776&flv=1&berei ch=&marke=
AVR UART 1. Einleitung In dieser Anleitung soll beispielhaft gezeigt werden, wie die serielle Kommunikation zwischen einem AVR Mikroprozessor und dem PC aufgebaut wird. Hierbei wird erst der einfache Fall
MehrCCS Compiler Tutorial mit Beispielen
CCS Compiler Tutorial mit Beispielen Mit diesem Tutorial werden Sie den CCS Compiler kennenlernen, um mit ihm Projekte selbstständig erstellen zu können. Es werden zugleich die Programmierung und die Grundlagen
MehrSoftware ubiquitärer Systeme
Software ubiquitärer Systeme 2. Übung Constantin Timm Arbeitsgruppe Entwurfsautomatisierung für Eingebettete Systeme Lehrstuhl für Informatik 12 TU Dortmund constantin.timm@cs.tu-dortmund.de http://ls12-www.cs.tu-dortmund.de/staff/timm/
MehrPROGRAMMIEREN MIT C. }, wird kompiliert mit dem Befehl. (-o steht für output) und ausgeführt mit dem Befehl
PROGRAMMIEREN MIT C Allgemeine hinweise Alles was hier beschrieben wird, soll auch ausprobiert werden. Warum C? Weil die coolen Dinge mit C am einfachsten gehen. Das werden wir in den folgenden Übungen
MehrDr. Monika Meiler. Inhalt
Inhalt 11 Dynamische Feldvereinbarung... 11-2 11.1 Dynamische Vereinbarung von Vektoren... 11-3 11.2 Dynamische Vereinbarung von Matrizen... 11-5 11.3 Die Kommandozeile... 11-8 Propädeutikum 11-1/8 11
MehrProgrammieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff
Programmieren in C Macros, Funktionen und modulare Programmstruktur Prof. Dr. Nikolaus Wulff Der C Präprozessor Vor einem Compile Lauf werden alle Präprozessor Kommandos/Makros ausgewertet. Diese sind
MehrMB-Diplom (4. Sem.) / MB-Bachelor (Schwerpunkt Mechatronik, 5. Sem.) Seite 1 von 8. Wintersemester 2014/15 Elektronik
MB-Diplom (4. Sem.) / MB-Bachelor (Schwerpunkt Mechatronik, 5. Sem.) Seite 1 von 8 Hochschule München Fakultät 03 Zugelassene Hilfsmittel: alle eigenen, Taschenrechner Matr.-Nr.: Hörsaal: Wintersemester
MehrEinführung in Automation Studio
Einführung in Automation Studio Übungsziel: Der links abgebildete Stromlaufplan soll mit einer SPS realisiert werden und mit Automation Studio programmiert werden. Es soll ein Softwareobjekt Logik_1 in
MehrDie Entwicklungsumgebung. Labor Technische Informatik. Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) A. Reber
Die Entwicklungsumgebung Labor Technische Informatik Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) A. Reber 19.04.2011 Inhalt 1 Das Keil MCB1700 Board...2 2 Keil ARM MDK Toolchain...3 2.1 Projekterstellung...3
MehrObjektorientiertes Programmieren für Ingenieure
Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen
MehrAutonome Mobile Systeme. Dr. Stefan Enderle
Autonome Mobile Systeme Dr. Stefan Enderle 2. Mikrocontroller Einleitung Unterschied Controller / Prozessor: Speicher (RAM, Flash, Eprom) intern Viele I/Os (Digital, Analog) Bus-Unterstützung (Seriell,
MehrPropädeutikum. Dipl.-Inf. Frank Güttler
Propädeutikum 2015 Vorbereitungskurs Informatikstudium Erfolgreich Studieren Programmieren (C-Kurs) guettler@informatik.uni-leipzig.de Universität Leipzig Institut für Informatik Technische Informatik
MehrSoftware mit Tests & Beispielen
Prüfverfahren Anleitung INHALT Allgemeine Angaben 1. DAS GERÄT... 3 2. DAS GERÄT TESTEN... 4 3. DIE KOMMUNIKATION MIT DEM PC TESTEN... 6 Software mit Tests & Beispielen 1. DIE TESTPROGRAMME HERUNTERLADEN...
Mehri2c-bus.de I2C-002 KURZBESCHREIBUNG I 2 C Modul mit PCA8574 8-Bit I/O Port-Expander Dokument NR.: I2C-002-D-01
DA CL Dokument NR.: I2C-002-D-01 I2C-002 KURZBECHREIBUNG I 2 C Modul mit PCA8574 8-Bit I/O Port-Expander P Bitte denken ie an die Umwelt, bevor ie diese Datei ausdrucken DA CL Inhaltsverzeichnis 1. Modul
MehrInhalt Übungen zu Systemnahe Programmierung in C (SPiC) Prolog: Windows-Login. Organisatorisches: Tafelübungen
Inhalt Übungen zu Systemnahe Programmierung in C (SPiC) Moritz Strübe, Rainer Müller () Sommersemester 2013 Organisatorisches Tafelübungen Reine Rechnerübungen Bonuspunkte Bei Problemen Hardware-Entwicklungsumgebung
MehrProgrammieren des AVR Microcontrollers mit GCC, libc 1.0.4
LinuxFocus article number 352 http://linuxfocus.org Programmieren des AVR Microcontrollers mit GCC, libc 1.0.4 Zusammenfassung: Der AVR 8 Bit RISC Microcontroller von Atmel ist ein sehr verbreiteter Microcontroller.
MehrCompiler und Präprozessor (1) Erstellen eines Projektes
Compiler und Präprozessor (1) Erstellen eines Projektes Projekte bestehen meist aus mehreren Dateien, z.b. Quelldateien, Funktionssammlungen in Bibliotheken Zur Definition eines Projektes sind folgende
Mehr01.04.2004 Fachbereich Informatik Microcomputer-Labor TFH Berlin MCÜ 65 1. Laborübung -Beschreibung der Hardware -Beschreibung der Aufgabe Seite 2 -Frontplatte des Zielsystems Seiten 3 -Tabellen und Timingdiagramme
MehrÜbung 9. Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9
Informatik I 2 Übung 9 Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9 Quellcode Strukturieren Wenn alle Funktionen in einer Datei zusammengefasst sind wird es schnell unübersichtlich Mehrere
Mehr8.1 Grundsätzlicher Aufbau der Beispiele
107 8 Beispiele Nachdem nun viele theoretische Grundlagen gelegt wurden, kann man mit dem Programmieren eines Mikrocontrollers beginnen. In den folgenden Kapiteln werden verschiedene Möglichkeiten der
MehrSCHNELLEINSTIEG ZUM TOOL NODEBUILDER
Fakultät Informatik, Institut für Angewandte Informatik, Professur Technische Informationssysteme SCHNELLEINSTIEG ZUM TOOL NODEBUILDER Betreuer: Dipl.-Ing. A. Cemal Özlük Dipl.-Inf. Uwe Ryssel ALLGEMEINE
MehrAufgabenstellung Praktikum Mikrorechentechnik Sommersemester 2014
Aufgabenstellung Praktikum Mikrorechentechnik Sommersemester 2014 Aufgabe: Entwurf und Implementierung eines Weckers auf Basis des MSP430 Education Systems Beschreibung: Gegenstand des Praktikums ist der
MehrProgrammierung von ATMEL AVR Mikroprozessoren am Beispiel des ATtiny13. Teil IV: Programmieren an Beispielen
Programmierung von ATMEL AVR Mikroprozessoren am Beispiel des ATtiny13 Eine Einführung in Aufbau, Funktionsweise, Programmierung und Nutzen von Mikroprozessoren Teil IV: Programmieren an Beispielen Die
MehrWintersemester 08/09. Anwendungen der Prozessdatenverarbeitung Inverses Pendel
Fachhochschule Wiesbaden Fachbereich Design Informatik Medien Studiengang Allgemeine Informatik WS 08/09 Wintersemester 08/09 Anwendungen der Prozessdatenverarbeitung Inverses Pendel bei Prof. Dr. Karl-Otto
MehrInhalt. Übungen zu Systemnahe Programmierung in C (SPiC) Rechnerübungen. Tafelübungen
Übungen zu Systemnahe Programmierung in C (SPiC) Peter Wägemann, Moritz Strübe (Lehrstuhl Informatik 4) Inhalt Organisatorisches Tafelübungen Rechnerübungen Bonuspunkte Bei Problemen Entwicklungsumgebung
MehrMicrocontroller Kurs. 08.07.11 Microcontroller Kurs/Johannes Fuchs 1
Microcontroller Kurs 08.07.11 Microcontroller Kurs/Johannes Fuchs 1 Was ist ein Microcontroller Wikipedia: A microcontroller (sometimes abbreviated µc, uc or MCU) is a small computer on a single integrated
MehrMaking the Internet of Things
DARIUSH FOROUHER ITI Uni Lübeck DANIEL LOOS 3. Sem. MLS Making the Internet of Things EIN ÜBERBLICK ÜBER PHYSICAL COMPUTING PLATTFORMS Das Internet der Dinge Inhalt Übersicht Arduino Raspberry PI Andere
MehrGrundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme
Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Teil 1: Wiederholung C Heutige Agenda Nutzereingaben verarbeiten Teil 2: Grundlagen in C++ Erstes
MehrObjektbasierte Entwicklung
Embedded Software Objektbasierte Entwicklung Objektorientierung in C? Prof. Dr. Nikolaus Wulff Objektbasiert entwickeln Ohne C++ wird meist C im alten Stil programmiert. => Ein endlose while-schleife mit
MehrProjekt Nr. 15: Einen elektronischen Würfel erstellen
Nun wissen Sie, wie Sie Zufallszahlen erzeugen können. Als Nächstes wollen wir diese neuen Kenntnisse gleich in die Tat umsetzen, indem wir einen elektronischen Würfel konstruieren. Projekt Nr. 15: Einen
Mehr1 Anmerkungen zur Entwicklung von GALs mit LOG/iC
1 Anmerkungen zur Entwicklung von GALs mit LOG/iC 1.1 Generic Array Logic (GAL) - Prinzip Ein GAL (Generic Array Logic) stellt ein (wieder)programmierbares UND- Array mit einem festen ODER Array dar. Zusätzlich
MehrObjektorientierung: Klassen und Objekte
Objektorientierung: Klassen und Objekte Klasse: Beschreibung für eine Menge von Objekten Schablone, Bauplan abstrakte Form Objekt: Instanz einer Klasse konkreter Inhalt (Werte) Klassen bestehen aus Attributen
MehrAVR-GCC-Tutorial. Inhaltsverzeichnis. www.mikrocontroller.net. [Verbergen]
www.mikrocontroller.net AVR-GCC-Tutorial Inhaltsverzeichnis [Verbergen] 1 Vorwort 2 Benötigte Werkzeuge 3 Was tun, wenn's nicht "klappt"? 4 Erzeugen von Maschinencode 5 Einführungsbeispiel 6 Exkurs: Makefiles
MehrQt-Projekte mit Visual Studio 2005
Qt-Projekte mit Visual Studio 2005 Benötigte Programme: Visual Studio 2005 Vollversion, Microsoft Qt 4 Open Source s. Qt 4-Installationsanleitung Tabelle 1: Benötigte Programme für die Qt-Programmierung
MehrATM18-Projekt Arbeiten mit CodeVisionAVR C-Compiler Teil 02 - Aufbau eines C-Projektes
Teil 01 - Einführung 1 Eine Einführung in C 1.1 Warum C? 1.2 Wie entstand C? 1.3 Der AVR-Mikrocontroller in einem eingebetteten System 1.4 1.5 Editieren von Quell-Dateien 2 Was ist ein C-Projekt? 2.1 Erzeugen
MehrInterrupt-Programmierung
Interrupt-Programmierung Am Beispiel des ATMEGA16 Microcontrollers Beispiel: Messung der Betriebszeit Die Betriebszeit zeigt an, wie lange der Rechner seit dem Booten läuft Hier: Aktualisierung der Betriebszeit
MehrSaia PG5 Starter Training Saia PG5 Core und Fupla. Daniel Ernst DE02 2013-02-25
Saia PG5 Starter Training Saia PG5 Core und Fupla Daniel Ernst DE02 2013-02-25 Einführung Das Licht im Keller soll eingeschaltet werden wenn ein Schalter gedrückt wird. Zusätzlich soll das Licht auch über
MehrTINA. Teach-In Applikationssoftware. LinMot. Tel: +41 1 445 2282 Fax; +41 1 445 2281 Email: office@linmot.com Internet: www.linmot.
TINA Teach-In Applikationssoftware Technoparkstrasse 1 CH-8005 Zürich Tel: +41 1 445 2282 Fax; +41 1 445 2281 Email: office@linmot.com Internet: www.linmot.com Inhaltsverzeichnis 1. Systembeschreibung...
MehrLehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Buildsysteme
Grundkurs C++ Buildsysteme Buildsysteme Beispielhaftes Übersetzungsszenario: Verzeichnis tutorial7/ main.cpp, lcdrange.cpp, lcdrange.h *.cpp Kompilieren *.o *.h Grundkurs C++ 2 Headerdateien //blackbox.h
MehrPG5 Starter Training PG5 Core und Webeditor 8 Daniel Ernst DE02 2013-03-14
PG5 Starter Training PG5 Core und Webeditor 8 Daniel Ernst DE02 2013-03-14 Einführung Benötigtes Material: Notebook oder Computer PCD1 E-Controller USB Kabel Schulungsplatine Ethernet Kabel Benötigte Software
MehrProzessoren für mobile und. eingebettete Systeme II: Die AVR-Architektur. EMES: Eigenschaften mobiler und eingebetteter Systeme
EMES: Eigenschaften mobiler und eingebetteter Systeme Prozessoren für mobile und 00101111010010011101001010101 eingebettete Systeme II: Die AVR-Architektur Dipl. Inf. Jan Richling Wintersemester 2004/2005
MehrInhaltsverzeichnis. Grundbegriffe der C-Programmierung Für den HI-TECH C-Compiler
Inhaltsverzeichnis Grundbegriffe der C-Programmierung 1. Grundsätzliches... 2 1.1 Darstellung von Werten... 2 1.1.1 Dezimale Zahlendarstellung... 2 1.1.2 Binäre Zahlendarstellung... 3 1.1.3 Hexadezimale
MehrWorkshop: ASURO-Programmieren in C
Workshop: ASURO-Programmieren in C / Teil 1: Theorie Workshop: ASURO-Programmieren in C Teil 1: Theorie Markus Becker http://mbecker-tech.de Bürgernetz Ingolstadt e. V. / ByteWerk Stand: 1. Mai 2010 Copyright:
MehrA n l e i t u n g. Beamer- Treiber- Download (FBI EB/ 19 )
A n l e i t u n g Beamer- Treiber- Download (FBI EB/ 19 ) Kapitel 1: Vorbereitende Schritte......................................... Seite 1 bis 5 Kapitel 2: Auswechseln des Beamertreibers mittels........................
MehrInterrupts. Funktionsprinzip. Funktionsprinzip. Beispiel in C
Interrupts Funktionsprinzip Interrupts bei ATmega128 Beispiel in C Funktionsprinzip 1 Was ist ein Interrupt? C muss auf Ereignisse reagieren können, z.b.: - jemand drückt eine Taste - USART hat Daten empfangen
MehrUNIVERSITÄT LEIPZIG. Studentenmitteilung 3./4. Semester - WS 2006/ SS 2007. Aufgaben zum Elektronik Grundlagenpraktikum. 4.
UNIVERSITÄT LEIPZIG Institut für Informatik Studentenmitteilung 3./4. Semester - WS 2006/ SS 2007 Abt. Technische Informatik Gerätebeauftragter Dr. rer.nat. Hans-oachim Lieske Tel.: [49]-0341-97 32213
Mehri2c-bus.de I2C-001 KURZBESCHREIBUNG I 2 C Modul mit PCF8574 8-Bit I/O Port-Expander Dokument NR.: I2C-001-D-01
DA CL Dokument NR.: I2C-001-D-01 I2C-001 KURZBECHREIBUNG I 2 C Modul mit PCF8574 8-Bit I/O Port-Expander P Bitte denken ie an die Umwelt, bevor ie diese Datei ausdrucken DA CL Inhaltsverzeichnis 1. Modul
MehrKarlsruher Institut für Technologie
Karlsruher Institut für Technologie Lehrstuhl für Programmierparadigmen Sprachtechnologie und Compiler WS 2010/2011 Dozent: Prof. Dr.-Ing. G. Snelting Übungsleiter: Matthias Braun Lösung zu Übungsblatt
MehrWinCC. WinCC in STEP 7 einbinden... 2
Systemkurs 1 in STEP 7 einbinden... 2 Übung 1: Projekt anlegen und AG Verbindung projektieren... 3 1. Projekteigenschaften festlegen... 4 2. Rechnereigenschaften... 5 3. Kommunikationstreiber für Verbindung
MehrModellierung und Programmierung
Modellierung und Programmierung Dr. Martin Riplinger 19.12.2012 IAM Institut für Angewandte Mathematik Funktionszeiger: Vorüberlegungen Funktionsaufrufe sind bis jetzt im Code mit Name explizit angegeben
MehrHochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller
Hochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller Datum, Zeit, 08:00 09:30 Uhr (90 min) Aufgabenblätter 14 Seiten (einschl. Deckblatt) erreichbare Punktzahl 54 zugelassene
MehrVorlesung Informatik II
Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 02. JAVA: Erstes Programm 1 Das erste Java-Programm
MehrRainer Müller, Moritz Strübe (Lehrstuhl Informatik 4) Sommersemester 2014
Übungen zu Grundlagen der Systemnahen Programmierung in C (GSPiC) Rainer Müller, Moritz Strübe (Lehrstuhl Informatik 4) Sommersemester 2014 Prolog: Windows-Login Zur Bearbeitung der Übungen ist ein Windows-Login
MehrKapitel 04: Das erste Projekt Abschnitt 04: Überblick über das Programm
Kapitel 04: Das erste Projekt Abschnitt 04: Überblick über das Programm Beim Durchgehen des Programms will ich die verschiedenen Abschnitte zeigen, aus denen jedes ATmega-Assemblerprogramm besteht. Da
MehrC für Mikrocontroller
C für Mikrocontroller Die wichtigste Alternative zum Assembler-Programmieren von Anwendungen für Mikrocontroller ist die Programmierung in C. Die Entwicklungsumgebung steht als sog. Tool-Chain zur Verfügung.
MehrBedienungsanleitung DP3 Report
Bedienungsanleitung DP3 Report 1. Voraussetzungen Messgerät ecom-dp3 PC mit Kartenlesegerät und Betriebssystem ab Win2000 SD-Karten oder MM-Karten von rbr Kartengröße min. 32 MB - max. 2 GB Karte auf 16
MehrEin erstes Assembler-Projekt
Das Attiny-Projekt Ein erstes Assembler-Projekt 1 Ein erstes Assembler-Projekt In diesem Kapitel wollen wir ein erstes einfaches Assembler-Programm für unsere Attiny-Platine schreiben. Worum soll es gehen?
MehrComputergrafik 1 Übung, Wintersemester 2011. Eclipse Hands-On. C++ Projektsetup mit OpenGL und GLUT unter Eclipse für Windows 22.10.
Computergrafik 1 Übung, Wintersemester 2011 Eclipse Hands-On C++ Projektsetup mit OpenGL und GLUT unter Eclipse für Windows 22.10.12 1 Eclipse - Die IDE 1. Entwicklungsumgebung (IDE) herunterladen / installieren
Mehr