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

Größe: px
Ab Seite anzeigen:

Download "Versuch 1. Labor Technische Informatik. Prof. Dr.-Ing. F.Kesel Dipl.-Ing. (FH) A. Reber"

Transkript

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

2 Inhalt 1 Unterschiede zum 8051 Labor Neue Grundlagen für den Sourcecode Variablen Projektdateien Vorbereitung Aufgabe Grundlagen Pin/Portprogrammierung Port Struktur Die LED-Leiste Der Joystick Initialisierung von LEDs und Joystick Poti für den ADC Initialisierung des ADC SYSTICK Timer Aktivierung des SYSTICK Timers NVIC Nested Vectored Interrupt Controller Aufgaben zum Labor Lauflicht Arbeitspunkte Lernziele Joystick Arbeitspunkte Lernziele Variables Lauflicht mit Joystick Arbeitspunkte Lernziele Variables Lauflicht mit ADC Arbeitspunkte Lernziele

3 1 Unterschiede zum 8051 Labor Der größte Unterschied besteht darin, dass nicht mehr alles selber programmiert werden muss. Ein weiterer Unterschied ist, bedingt durch den Prozessor, in der Ansprache der Ports zu finden. Einfache, bitweise Portmanipulation kann nicht mehr so einfach gemacht werden, auch wenn der M3 Core Bitmanipulationen vom Befehlssatz her kennt. Im Labor werden deshalb vorhandene Module wie auch Strukturen verwendet, was auf der anderen Seite bedeutet, dass Sie sich mit diesen fertigen Sourcecodes beschäftigen müssen. Es wird auch vorkommen, dass bestehende Module erweitert und verändert werden. Auch wenn Sie sich nun in der Welt der 32 Bit-Mikrocontroller aufhalten, wird Speicherplatzverschwendung nicht geduldet. Keil Demos: Zum Schluss noch ein paar Hinweise zu den Demos, die im Keil-Verzeichnis zu finden sind. Viele dieser Demos dienen nur zu einem: Als Beispiel wie man es nicht machen sollte. Also ruhig anschauen und sich Informationen holen, doch auch darüber nachdenken, ob das so Sinn macht. 2 Neue Grundlagen für den Sourcecode 2.1 Variablen Es wird die Typdefinition und stdint.h verwendet, damit der gesamte Code portabel wird. Auch gilt nach wie vor die Regel, dass eine Variable nur dann signed ist, wenn der negative Teil benötigt wird und dass nur die Länge benutzt wird, die notwendig ist. Globale Variablen sind zu vermeiden, deshalb Zeiger verwenden. 2.2 Projektdateien Verwenden Sie grundsätzlich das Template-Projekt von der Laborseite (Ordner kopieren, umbenennen und neues Projekt im Ordner anlegen, vorhandene Dateien ins neue Projekt einfügen). Eigener Sourcecode wird grundsätzlich in *.c und *.h zerlegt. Sorgen Sie dafür, dass die Mehrfacheinbindung vermieden wird. Im Hauptfile.h wird dann das LPC17xx.h eingebunden, welches automatisch dafür sorgt, dass alle anderen Files eingebunden werden. 2.3 Vorbereitung Es sind grundsätzlich Blockschemata der Aufgaben zu erstellen, damit klar wird, wo welche Funktionen enthalten sind. Für die Hauptdatei kann auch ein PAP sinnvoll sein. 3 Aufgabe Grundlagen Pin/Portprogrammierung Alle komplexen Mikrocontroller haben das gleiche Problem: Die meisten Portpins sind mehrfach verwendbar. Das bedeutet für den Programmierer einen größeren Aufwand, bis er einen Pin nutzen kann und es besteht auch die Gefahr, dass bei falscher Programmierung der Pin zerstört wird. Diese Komplexität war mit ein Grund, warum CMSIS entstanden ist. Beim LPC17xx kann aus bis zu vier Funktionen pro Pin ausgewählt werden. Softwareseitig werden die Ports in Strukturen abgebildet, die über Zeiger angesprochen werden. Es besteht zwar die Möglichkeit, einzelne Portpins zu setzen oder zu löschen, ein einzelner Pin kann jedoch nicht auf seinen Zustand hin überprüft werden. Das muss nach wie vor mittels Einlesen des gesamten Ports und Maskierung geschehen. Hier kommt nun die Port- Struktur zum Einsatz, die es ermöglicht, den 32 Bit-Port in 16 Bit- oder 8 Bit-Blöcke zu teilen. Das hat den Vorteil, dass die Maske nur den benötigten Teil enthält und somit wird Speicherplatz gespart

4 3.1.1 Port Struktur Dies ist der Prototyp, der für Ports verwendet wird: typedef struct /* General Purpose Input/Output (GPIO) */ IO uint32_t FIODIR; IO uint16_t FIODIRL; IO uint16_t FIODIRH; struct IO uint8_t FIODIR0; IO uint8_t FIODIR1; IO uint8_t FIODIR2; IO uint8_t FIODIR3; // Richtungsregister, 32 Bit, D0..31 // 16 Bit, D0..15 // 16 Bit, D // 8 Bit, D0..7 // 8 Bit, D8..15 // 8 Bit, D // 8 Bit, D uint32_t RESERVED0[3]; IO uint32_t FIOMASK; Struct IO uint16_t FIOMASKL; IO uint16_t FIOMASKH; IO uint8_t FIOMASK0; IO uint8_t FIOMASK1; IO uint8_t FIOMASK2; IO uint8_t FIOMASK3; IO uint32_t FIOPIN; IO uint16_t FIOPINL; IO uint16_t FIOPINH; IO uint8_t FIOPIN0; IO uint8_t FIOPIN1; IO uint8_t FIOPIN2; IO uint8_t FIOPIN3; IO uint32_t FIOSET; IO uint16_t FIOSETL; IO uint16_t FIOSETH; IO uint8_t FIOSET0; IO uint8_t FIOSET1; IO uint8_t FIOSET2; IO uint8_t FIOSET3; // Reserve // Maskregister (Wird der Portpin bei einem // Zugriff beachtet oder nicht) // Pin Inhalt wenn Pin Input // Register zum Portpins setzen O uint32_t FIOCLR; O uint16_t FIOCLRL; O uint16_t FIOCLRH; O uint8_t FIOCLR0; O uint8_t FIOCLR1; O uint8_t FIOCLR2; O uint8_t FIOCLR3; } LPC_GPIO_TypeDef; // Register zum Portpins löschen - 3 -

5 Die Komplexität ist wesentlich größer als bei kleineren Controllern. Die oben angeführte Struktur ist jedoch nur dann von Bedeutung, wenn die Pins auch als GPIOs selektiert sind. Dies geschieht über eine weitere Struktur LPC_PINCON_typeDef genannt. Die Chipentwickler hatten jedoch ein Einsehen und haben den Resetwert der Register, die hinter dieser Struktur liegen, so gewählt, dass sie als GPIO selektiert sind. 3.2 Die LED-Leiste Vom TeachDongle war bekannt, dass die LED-Leiste am Datenbus angeschlossen ist und die Wertigkeit der Bits mit denen vom Datenbus korrespondiert. Dies ist beim MCB1700 nicht so, da die LEDs auf zwei GPIO-Ports verteilt sind, die auch noch Lücken aufweisen. Damit ist das Ausgeben eines 8 Bit Wertes oder ein Lauflicht nicht mehr so einfach zu realisieren wie beim Nachfolgend ist die Festlegung für die Zuordnung der Wertigkeit (2^x) zur LED angegeben. Port Pin P1.28 P1.29 P1.31 P2.2 P2.3 P2.4 P2.5 P2.6 Wertigkeit Tabelle 1: Zuordnung Port Pin - Wertigkeit 3.3 Der Joystick Das MCB1700 hat neben den zwei Tastern noch einen Joystick, der aus fünf Tastern besteht, die mit Pins von Port 1 verbunden sind. Dabei sind vier Taster für die Richtungen zuständig und ein Taster für die Auswahl (Druckfunktion). 3.4 Initialisierung von LEDs und Joystick Nachfolgend ist die Initialisierung für beide Einheiten angegeben. /* Function that initializes LEDs & Joystick * */ void Port_Init(void) LPC_GPIO1->FIODIR3 = 0xB0; /* LEDs on PORT1 defined as Output */ LPC_GPIO2->FIODIR0 = 0x7C; /* LEDs on PORT2 defined as Output */ LPC_GPIO2->FIOMASK0 = 0x83; /* P2.0, P2.1 and P2.7 mask out */ } LPC_GPIO1->FIODIR &= ~((1UL<<20) (1UL<<23) (1UL<<24) (1UL<<25) (1UL<<26)); /* Joystick on Port1 defined as Input */ Damit wird sichergestellt, dass es zu keine Komplikationen mit anderen Einheiten auf dem Board kommt

6 3.5 Poti für den ADC Das Poti ist mittels Jumper mit AD0.2 verbunden. Dies ist einer von sechs ADC-Eingängen, die maximal Samples pro Sekunde bei 12 Bit-Auflösung bieten. Das LSB hat 806 µv bei einer Referenz von 3,3 V. 3.6 Initialisierung des ADC /* Function that initializes ADC * */ void ADC_init (void) LPC_PINCON->PINSEL1 &= ~(3<<18); // P0.25 back to GPIO LPC_PINCON->PINSEL1 = (1<<18); // P0.25 is now AD0.2 LPC_SC->PCONP = (1<<12); // Enable power to ADC block LPC_ADC->ADCR = (1<< 2) // select AD0.2 pin (4<< 8) // ADC clock is 25MHz/5 (1<<21); // enable ADC } LPC_ADC->ADINTEN = (1<< 8); // global enable interrupt Im Vergleich zu den LEDs ist diese Funktion weitaus komplexer, da jetzt auch die PinControl- und Pin- Powerregister beschrieben werden müssen, bevor der ADC konfiguriert werden kann. 3.7 SYSTICK Timer Dieser kleine Timer ist in allen Cortex-Derivaten enthalten und dient primär dazu, den Interrupt für einen Systemtimer zu erzeugen, wie er bei Betriebssystemen benötigt wird. Im Labor wird er für zyklische Events benutzt. 3.8 Aktivierung des SYSTICK Timers Da es sich um eine Einheit aus dem Core-System handelt, ist dafür auch schon eine Funktion vorhanden: SysTick_Config( ); /* Generate interrupt each 10 ms */ /* SystemFrequency / (Value-1) => SysTick Frequency */ Diese Funktion ist in der Datei core_m3.h zu finden, die sich bei obiger Einstellung alle 10 ms meldet. Da es sich um einen Interrupt handelt, muss auch eine zugehörige ISR geschrieben werden, die bei Keil den festgelegten Namen void SysTick_Handler (void) /* SysTick Interrupt Handler (for 10ms) */ Insert function here } hat

7 3.9 NVIC Nested Vectored Interrupt Controller Die Funktionsvielfalt des NVIC übersteigt die Laborzeit, weshalb hier nur auf seine Grundfunktion, das einfache Handling von ISRs eingegangen werden soll. Dieser Interruptcontroller ist in allen Cortex enthalten und stellt ein Highlight in der Controllerfamilie dar. In den alten ARMx Kernen gab es nur zwei Interrupts und es oblag dem Chiphersteller, eigene Interruptcontroller mit in seinen µc zu integrieren. In der Cortex-Familie hat nun jeder Kern den gleichen Controller, womit die arbeitsintensive Portierung, wenn sie überhaupt möglich war, entfällt. Um einen bestimmten Interrupt im NVIC freizuschalten oder zu sperren, werden die Funktion aus dem core_cm3.h benutzt: NVIC_EnableIRQ(IRQn); NVIC_DisableIRQ(IRQn); Dort finden sich auch noch weitere Funktionen zum NVIC, die noch einiges mehr bieten als nur Enable und Disable. Der Platzhalter IRQn ist ein definierter Name, der in LPC17xx.h zu finden ist. 4 Aufgaben zum Labor Lauflicht Als Erstes soll ein kleines Lauflicht mit Hilfe des SYSTICK-Timers realisiert werden. Der zugehörige IRQ-Handler soll die auftretenden IRQs zählen, so dass alle 250 ms die leuchtende LED weiter geschoben wird. Dies geschieht wie auch schon beim 8051 mit Hilfe einer Flagvariable, die in Main angelegt wird. Der Handler greift mittels Zeiger auf die Variable zu und signalisiert der Endlosschleife in Main mit einer gesetzten Flagvariable die Schiebeaufforderung. Nach Ausführung der Anforderung wird das Flag gelöscht. Die LEDs sind auf zwei 8 Bit-Ports verteilt, also erfolgt der Zugriff darauf mittels Byte-Pointer über eine Maske, die eine 1 für den entsprechenden Port enthält. Einzelne LEDs von Port 2 können mit folgender Anweisung gesetzt werden: LPC_GPIO2->FIOSET0 = led_mask[num]; /* Zugriff LEDs Port 2 */ Arbeitspunkte SYSTICK-Handler schreiben Masken für einzelne LEDs erzeugen Endlosschleife wartet auf Timerereignis-Flag und schiebt dann Schieben entsteht durch Löschen und Setzen von einzelnen LEDs Je eine Funktion für das Setzen und Löschen einzelner LEDs entwickeln Lernziele Nutzung von CMSIS Speichereffiziente Nutzung von Konstanten SYSTICK Effiziente Manipulation einzelner Portpins - 6 -

8 4.2 Joystick Nachdem nun die Position der LEDs geklärt ist, soll jede Taste des Joysticks einer LED zugeordnet werden und diese dann beim Betätigen einschalten. Ist der Joystick nicht aktiv, soll auch keine LED leuchten. Denken Sie daran, dass einzelne Pins gesetzt werden können. Für den Joystick gilt ähnliches, dort wird der Port 1 gelesen und mit Hilfe einer Maske die Bits selektiert, die mit dem Joystick verbunden sind. Danach wird ausgewertet, welche Taste gedrückt wurde und die entsprechende LED eingeschaltet. Da es um die Positionen der Joystick-Bits geht, ist es nicht notwendig, dass die Tasten gespeichert werden. Die zugewiesene LED leuchtet so lang, bis die Taste wieder inaktiv ist. Dies ist am einfachsten dadurch zu erreichen, dass gewartet wird, bis sich ein neuer Joystickwert ergibt. Da der Joystick fünf Tasten enthält, haben die Masken Bytegröße. Die Portpins sind aber so verteilt, dass sie ohne Umformatierung nicht mit einem Byte verknüpft werden können. Richtung Oben Links Rechts Unten Taster LED P2.2 P2.3 P2.4 P2.5 P2.6 Tabelle 2: Zuordnung Joystick - LED Arbeitspunkte Masken für Joystick erzeugen Formatierung für Einlesen Joystickabfrage in einer Endlosschleife Lernziele Ermittlung von einzelnen Portpinereignissen Speichereffiziente Nutzung von Konstanten Arbeiten mit Masken Effiziente Manipulation einzelner Portpins 4.3 Variables Lauflicht mit Joystick Die variable Steuerung entsteht dadurch, dass mit den oben und unten Tasten des Joysticks die Zählvariable des SYSTICK Timers manipuliert wird. Zu beachten ist, dass der neue Wert nur beim Reload des Zählers geladen wird, also der Joystick manipuliert nicht die Variable im IRQ-Handler. Die Tastenverriegelung für den Joystick darf das Lauflicht nicht blockieren. Das Intervall soll zwischen 100 ms und 2.5 s in 100 ms Schritten einstellbar sein Arbeitspunkte Joystick mit Lauflicht verknüpfen SYSTICK-Handler umschreiben Routinen mit Grenzwertbetrachtung für +/- des neuen Wertes erzeugen Verriegelung für >Joystick noch aktiv< entwerfen Lernziele Kommunikation und Datenaustausch zwischen Funktionen Grenzwertbehandlung Entwickeln von Funktionen ohne Blockierung anderer (hier die Tastenverriegelung) - 7 -

9 4.4 Variables Lauflicht mit ADC Die variable Steuerung entsteht dadurch, dass mit dem Potentiometer die Zählvariable innerhalb des SYSTICK Timers manipuliert wird. Der Timer stößt mit jedem Auftreten die AD-Wandlung an, das Ende wird dann per ADC-Interrupt gemeldet. Damit der ADC beginnt, wird folgende Zeile benötigt: LPC_ADC->ADCR = (1<<24); /* Start A/D Conversion */ Damit sinnvolle Werte entstehen, wird der 12 Bit-Wert auf 8 Bit verkürzt Arbeitspunkte ADC Initialisieren ADC-Handler schreiben Grenzfall ADC-Wert = 0 lösen SYSTICK löst AD-Wandlung aus Lernziele Umgang mit dem ADC Grenzwertbehandlung - 8 -

Die 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 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

Mehr

Modellgestütztes Software Engineering. Versuch 5. Wintersemester 2016

Modellgestütztes Software Engineering. Versuch 5. Wintersemester 2016 Modellgestütztes Software Engineering Versuch 5 Wintersemester 2016 Version 8.0.1, 13. Dezember 2016 Inhalt 1 DIE ENTWICKLUNGSUMGEBUNG... 3 1.1 HARDWARE MCB1700... 3 1.2 EMBEDDED UML MIT DEM REALTIME EXECUTION

Mehr

Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A. Reber

Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A. Reber Übungen zum Tutorium Arbeiten mit dem M_Dongle Labor Mikrocontroller mit NUC130 02.11.2016 Version 7.01 Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A. Reber Inhalt 1 Portpins verwenden...

Mehr

Aufgabe 1 - SysTick und ADC. Labor Mikrocontroller mit NUC130. Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A.

Aufgabe 1 - SysTick und ADC. Labor Mikrocontroller mit NUC130. Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A. Aufgabe 1 - SysTick und ADC Labor Mikrocontroller mit NUC130 Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A. Reber 28.06.2017 Inhalt 1 Einführung und Grundlagen... 2 1.1 Grundlagen

Mehr

Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A. Reber

Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A. Reber Übungen zum Tutorium Arbeiten mit dem M_Dongle Labor Mikrocontroller mit NUC130 11.4.2014 Version 3.1 Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A. Reber Inhalt 1 Portpins verwenden...

Mehr

Versuch 4 M_Dongle Servotester. Labor Mikrocontroller mit NUC130. Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A.

Versuch 4 M_Dongle Servotester. Labor Mikrocontroller mit NUC130. Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A. Versuch 4 M_Dongle Servotester Labor Mikrocontroller mit NUC130 Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A. Reber 11.06.2016 Inhalt 1 Einführung... 2 1.1 Grundlagen Modellbau-Servo...

Mehr

Mikrocomputertechnik

Mikrocomputertechnik Mikrocomputertechnik Thema: CPU Timing XC888 und Interrupt System des XC888 und Timer/Counter 0 und 1 -Im InterruptBetrieb - CPU Timing XC888 CPU Timing XC888 Befehl Befehl Befehl Befehlszyklus Befehlszyklus

Mehr

Aufgabe 2 - ADC. Labor Mikrocontroller mit NUC130. Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A. Reber

Aufgabe 2 - ADC. Labor Mikrocontroller mit NUC130. Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A. Reber Aufgabe 2 - ADC Labor Mikrocontroller mit NUC130 Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A. Reber 18.10.2016 Gruppe A Inhalt 1 Einführung und Grundlagen... 2 1.1 Grundlagen zum

Mehr

Aufgabe 2 - ADC. Labor Mikrocontroller mit NUC130. Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A. Reber

Aufgabe 2 - ADC. Labor Mikrocontroller mit NUC130. Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A. Reber Aufgabe 2 - ADC Labor Mikrocontroller mit NUC130 Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A. Reber 01.10.2018 Inhalt 1 Einführung und Grundlagen... 2 1.1 Grundlagen zum Analog-Digital-Wandler

Mehr

Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A. Reber

Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A. Reber Übungen zum Tutorium Arbeiten mit dem M_Dongle Labor Mikrocontroller mit NUC130 06.11.2018 Version 8.3 Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A. Reber Inhalt Inhaltsverzeichnis

Mehr

Arduino Kurs Bits und Bytes. Stephan Laage-Witt FES Lörrach

Arduino Kurs Bits und Bytes. Stephan Laage-Witt FES Lörrach Arduino Kurs Bits und Bytes Stephan Laage-Witt FES Lörrach - 2018 Themen Digitale Eingabe Bit, Byte und Wort Reaktionszeittester FES Lörrach Juli 2017 2 Was ist ein Bit? Ein Bit ist die kleinste Informationseinheit

Mehr

Aufgabe 1 -SysTick und ADC. Labor Mikrocontroller mit NUC130. Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A.

Aufgabe 1 -SysTick und ADC. Labor Mikrocontroller mit NUC130. Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A. Aufgabe 1 -SysTick und ADC Labor Mikrocontroller mit NUC130 Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A. Reber 10.11.2014 Inhalt 1 Einführung und Grundlagen... 2 1.1 Grundlagen

Mehr

Microcontroller Praktikum SS2010 Dipl. Ing. R. Reisch

Microcontroller Praktikum SS2010 Dipl. Ing. R. Reisch Microcontroller Praktikum SS2010 Dipl. Ing. R. Reisch Die wichtigsten Unterlagen/Tools Für das Praktikum Unterlagen/Kenntnisse/Tools wichtig: Datenblatt des AT80USB1287 µc Schaltplan des im Praktikum verwendeten

Mehr

Versuch 2, LPC11U24 - GPIO

Versuch 2, LPC11U24 - GPIO Die LED auf dem Piggyback (weiße Zusatzplatine) soll mit Hilfe der BOOT-Taste gesteuert werden. Solange die Taste gedrückt ist, soll die LED leuchten. Ist die Taste nicht gedrückt, dann bleibt die LED

Mehr

Modellgestütztes Software Engineering. Versuch 5. Wintersemester 2015

Modellgestütztes Software Engineering. Versuch 5. Wintersemester 2015 Modellgestütztes Software Engineering Versuch 5 Wintersemester 2015 Version 7.0.1, 16. Dezember 2015 Inhalt 1 OOP IN C... 3 1.1 UMSETZUNG IN RAPHSODY (RIC)... 3 2 DIE ENTWICKLUNGSUMGEBUNG... 5 2.1 HARDWARE

Mehr

Aufgabe 2 -Grafische Messwertdarstellung. Labor Mikrocontroller mit NUC130. Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J.Hampel Dipl.-Ing. (FH) A.

Aufgabe 2 -Grafische Messwertdarstellung. Labor Mikrocontroller mit NUC130. Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J.Hampel Dipl.-Ing. (FH) A. Aufgabe 2 -Grafische Messwertdarstellung Labor Mikrocontroller mit NUC130 Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J.Hampel Dipl.-Ing. (FH) A. Reber 22.10.2014 Inhalt 1 Einführung und Grundlagen... 2 1.1

Mehr

Aufgabe 1 - SysTick und ADC. Labor Mikrocontroller mit NUC130. Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A.

Aufgabe 1 - SysTick und ADC. Labor Mikrocontroller mit NUC130. Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A. Aufgabe 1 - SysTick und ADC Labor Mikrocontroller mit NUC130 Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A. Reber 29.03.2018 Inhalt 1 Einführung und Grundlagen... 2 1.1 Grundlagen

Mehr

16C62 A-D Wandler und Interruptfunktionen Ziel Benutzung des A/D-Wandlers zur Messung eines analoges Eingangssignales.

16C62 A-D Wandler und Interruptfunktionen Ziel Benutzung des A/D-Wandlers zur Messung eines analoges Eingangssignales. U1 16C62 A-D Wandler und Interruptfunktionen Ziel Benutzung des A/D-Wandlers zur Messung eines analoges Eingangssignales. Umfeld Der M16C62 verfügt über 8 gemultiplexte A/D Kanäle, welche mit einem SAR-Wandler

Mehr

Praktikum Mikrocomputertechnik

Praktikum Mikrocomputertechnik Praktikum Mikrocomputertechnik Versuch 5j: PEC & ADC Labor: Termin der Durchführung: IE-Labor oder DT-Labor Teilnehmer: Gruppe: Semester: Student 1: Student 2: Testat: Datum: Bemerkungen: Unterschrift:

Mehr

Name : Klasse : Punkte : Note :

Name : Klasse : Punkte : Note : Name : Klasse : Punkte : Note : Zeit: 08.00 bis 09.30 Es dürfen alle Unterlagen verwendet werden. Die Aufgaben sind möglichst direkt auf den Blättern zu lösen (Antworten bitte in ganzen Sätzen!), bei Bedarf

Mehr

Arduino Kurs Timer und Interrupts. Stephan Laage-Witt FES Lörrach

Arduino Kurs Timer und Interrupts. Stephan Laage-Witt FES Lörrach Arduino Kurs Timer und Interrupts Stephan Laage-Witt FES Lörrach - 2018 Themen Timer Interrupts Regelmäßige Aufgaben ausführen Exakte Zeitintervalle messen FES Lörrach Juni 2018 2 Exakte Zeiten sind gar

Mehr

myavr Programmierung in C

myavr Programmierung in C myavr Programmierung in C Stefan Goebel Februar 2017 Stefan Goebel myavr Programmierung in C Februar 2017 1 / 12 Grundgerüst... braucht man immer! #include // Register- und Konstantendefinitionen

Mehr

AVR Ein/Ausgabe. Inhaltsverzeichnis

AVR Ein/Ausgabe. Inhaltsverzeichnis Inhaltsverzeichnis AVR Ein/Ausgabe 1 Pinout Arduino Board...4 2 AVR PORT - I N P U T PINB...6 3 AVR PORT Architektur Bausteine...8 4 AVR Port O U T P U T PORTB...10 5 AVR PORT Architektur: Fragen 2...12

Mehr

4 Formelsammlung C/C++

4 Formelsammlung C/C++ 4 Formelsammlung C/C++ 4.1 Datentypen Datentyp stdint.h type Bits Sign Wertebereich (unsigned) char uint8_t 8 Unsigned 0.. 255 signed char int8_t 8 Signed -128.. 127 unsigned short uint16_t 16 Unsigned

Mehr

Vorbereitung. Teil D Analog-Digital-Wandler 1

Vorbereitung. Teil D Analog-Digital-Wandler 1 Vorbereitung So wird der Analog-Digital-Wandler des Mikrocontrollers ATmega328P initialisiert: ADMUX = _BV(REFS0); ADCSRA = _BV(ADEN) _BV(ADPS2) _BV(ADPS1) _BV(ADPS0); Der Analog-Digital-Wandler ist im

Mehr

Dateien, die nicht in das Projekt eingebunden sind, werden ohne Syntax highlight dargestellt. MiCoWi und µvision Seite 1 Uwe Wittenfeld

Dateien, die nicht in das Projekt eingebunden sind, werden ohne Syntax highlight dargestellt. MiCoWi und µvision Seite 1 Uwe Wittenfeld C-Programmierung von MiCoWi mit der Keil-Entwicklungsumgebung µvision4 1. Erstellung eines neuen Projektes Menüpunkt: Project New µvision Project Es wird ein komplett neues Projekt in einem beliebigen

Mehr

Inhaltsverzeichnis 1 Ein-Bit-Rechner Mikrorechentechnik-Grundlagen Das Mikrocontrollersystem ein Überblick am Beispiel MSP430F1232

Inhaltsverzeichnis 1 Ein-Bit-Rechner Mikrorechentechnik-Grundlagen Das Mikrocontrollersystem ein Überblick am Beispiel MSP430F1232 Inhaltsverzeichnis 1 Ein-Bit-Rechner... 15 1.1 Rechenwerk... 15 1.1.1 Register und Takt... 16 1.1.2 Zwischenspeicher... 17 1.1.3 Native und emulierte Datenmanipulationsbefehle... 18 1.2 Steuerwerk... 20

Mehr

11: Echtzeitbetriebssystem ucos-ii

11: Echtzeitbetriebssystem ucos-ii 11: Echtzeitbetriebssystem ucos-ii Sie lernen anhand aufeinander aufbauender Übungen, welche Möglichkeiten ein Echtzeitbetriebssystem wie das ucosii bietet und wie sich damit MC-Applikationen realisieren

Mehr

Für den CTC-Mode kann demnach TCCR1A komplett auf 0 gesetzt werden, weil WGM11 und WGM10 in diesem Register liegen und beide laut Tabelle 0 sind:

Für den CTC-Mode kann demnach TCCR1A komplett auf 0 gesetzt werden, weil WGM11 und WGM10 in diesem Register liegen und beide laut Tabelle 0 sind: Timerinterrupts beim Arduino Timer 1 (16bit) Register: Bits in den Registern und ihre Bedeutung: Für den CTC-Mode kann demnach TCCR1A komplett auf 0 gesetzt werden, weil WGM11 und WGM10 in diesem Register

Mehr

Übungen zu Systemnahe Programmierung in C (SPiC)

Übungen zu Systemnahe Programmierung in C (SPiC) Übungen zu Systemnahe Programmierung in C (SPiC) Moritz Strübe, Rainer Müller (Lehrstuhl Informatik 4) Sommersemester 2014 Inhalt Aufgabe4 Led Modul Wiederholung Konfiguration der Pins Hinweise zur Aufgabe

Mehr

5 Funktionsbibliothek für den Controller XMC1100

5 Funktionsbibliothek für den Controller XMC1100 5 Funktionsbibliothek für den Controller XMC11 Alle Header-Dateien werden in der Datei in ein richtlinienkonformes Projekt eingebunden. 5.1 Verzögerungsfunktionen Delay Verzögert den Programmablauf für

Mehr

Name: ES2 Klausur Thema: ARM Name: Punkte: Note:

Name: ES2 Klausur Thema: ARM Name: Punkte: Note: Name: Punkte: Note: Hinweise für das Lösen der Aufgaben: Zeit: 75 min. Name nicht vergessen! Geben Sie alle Blätter ab. Die Reihenfolge der Aufgaben ist unabhängig vom Schwierigkeitsgrad. Erlaubte Hilfsmittel

Mehr

Parallel-IO. Ports am ATmega128

Parallel-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

Mehr

Microcontroller Kurs Programmieren. 09.10.11 Microcontroller Kurs/Johannes Fuchs 1

Microcontroller 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.

Mehr

Programmieren in C Teil 3: Mikrocontrollerprogrammierung

Programmieren 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

Mehr

PIC16 Programmierung in HITECH-C

PIC16 Programmierung in HITECH-C PIC16 Programmierung in HITECH-C Operatoren: Arithmetische Operatoren - binäre Operatoren + Addition - Subtraktion * Multiplikation / Division % Modulo + - * / sind auf ganzzahlige und reelle Operanden

Mehr

Tag 2 Eingabe und Interrupts

Tag 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!

Mehr

Kurzanleitung: 1. Anschüsse. MWCLightRGB by VoBo & HaDi-RC HW-Version 1.80 SW-Version >1.28

Kurzanleitung: 1. Anschüsse. MWCLightRGB by VoBo & HaDi-RC HW-Version 1.80 SW-Version >1.28 Kurzanleitung: 1. Anschüsse Input: 3,8 bis 5 Volt! (nicht 5,5 V oder 6 V!) Output: Anschlüsse für WS2812 LED-Bänder (6/9 LED s / Arm) RC1: RC-Kanal - Auswahl der Funktion/Lichtmuster RC2: RC-Kanal - Auswahl

Mehr

Analog-Digital-Converter

Analog-Digital-Converter Analog-Digital-Converter Funktionsprinzip ADC bei ATmega128 Beispiel in C Funktionsprinzip 1 Analog-Digital-Wandlung Wandelt analoge Spannung / analogen Strom (Messgröße) in einen binären Wert um, der

Mehr

D.1 Vorbereitung. Teil D Analog-Digital-Wandler 1

D.1 Vorbereitung. Teil D Analog-Digital-Wandler 1 D.1 Vorbereitung So wird der Analog-Digital-Wandler des Mikrocontrollers ATmega328P initialisiert: ADMUX = _BV(REFS0); ADCSRA = _BV(ADEN) _BV(ADPS2) _BV(ADPS1) _BV(ADPS0); Der Analog-Digital-Wandler ist

Mehr

Aufgaben zur Attiny-Platine

Aufgaben zur Attiny-Platine Das Attiny-Projekt Aufgaben 1 Aufgaben zur Attiny-Platine 1. LEDs blinken 1.1 Schließen Sie eine rote LED an PortB.0 und eine grüne LED an PortB.1 an (vgl. Abb. 1). Achten Sie dabei darauf, dass die langen

Mehr

Programmierung von ATMEL AVR Mikroprozessoren am Beispiel des ATtiny13. Teil 8: gavrasmw und weitere Beispiele

Programmierung von ATMEL AVR Mikroprozessoren am Beispiel des ATtiny13. Teil 8: gavrasmw und weitere Beispiele Programmierung von ATMEL AVR Mikroprozessoren am Beispiel des ATtiny13 Eine Einführung in Aufbau, Funktionsweise, Programmierung und Nutzen von Mikroprozessoren Teil 8: gavrasmw und weitere Beispiele gavrasmw

Mehr

Laborübung 3. Latches, Flipflops, Counter

Laborübung 3. Latches, Flipflops, Counter Laborübung 3 Latches, Flipflops, Counter Teil 1 Abbildung 1 zeigt den Schaltkreis eines gated D-Latches. In Listing 1 wird exemplarisch ein Stück VHDL-Code vorgestellt, der den abgebildeten Schaltkreis

Mehr

Aufgabe 3 Grafik-Thermometer

Aufgabe 3 Grafik-Thermometer Aufgabe 3 Grafik-Thermometer Labor Mikrocontroller mit NUC130 Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A. Reber 02.12.2015 Inhalt 1 Einführung und Grundlagen... 2 1.1 Messwertermittlung

Mehr

Inhalt. Übungen zu Systemnahe Programmierung in C (SPiC) Implementierung von Interruptbehandlungen. Interrupts

Inhalt. Übungen zu Systemnahe Programmierung in C (SPiC) Implementierung von Interruptbehandlungen. Interrupts Übungen zu Systemnahe Programmierung in C (SPiC) Moritz Strübe, Rainer Müller (Lehrstuhl Informatik 4) Inhalt Interrupts Allgemein AVR Interrupt-Handler Synchronisation volatile Sperren von Interrupts

Mehr

Eigenschafte: Konfiguration: Baudrate:

Eigenschafte: Konfiguration: Baudrate: CAN1 Interface Lenkdatenmodul Eigenschafte: CAN Format : 2.0b Peripherie: CAN1 des STM32F407VGT6 des Discovery Boards Baudrate: Im Code Einstellbar von 125 kbit/s bis 1Mbit/s Akzeptanzefilter: nicht gesetzt

Mehr

Technische Dokumentation

Technische Dokumentation Mit dem Erweiterungsmodul wird ein System mit einem Multitaskingcomputer der BASIC- Tiger TM Familie um 64 Ein- und Ausgänge erweitert. Das Modul bietet sechs 8-Bit I/O Ports, dessen Bits einzeln als Eingang

Mehr

The amforth Cookbook angefangen

The amforth Cookbook angefangen The amforth Cookbook Author: Datum: Erich Wälde 2009-02-22 angefangen 2 Inhaltsverzeichnis 1 Projekt mit ATMEGA 32 5 1.1 Board................................ 5 1.2 Beispiel Applikation........................

Mehr

Tag 4 7 Segment-Anzeige, File Include, LC-Display

Tag 4 7 Segment-Anzeige, File Include, LC-Display Tag 4 7 Segment-Anzeige, File Include, LC-Display 09/01/10 Fachbereich Physik Institut für Kernphysik Bastian Löher, Martin Konrad 1 Die 7-Segment-Anzeige Eigentlich 8-Segment-Anzeige Gesteuert über 8

Mehr

Praktikum DST (MRT Teil) 2. Termin

Praktikum DST (MRT Teil) 2. Termin Praktikum DST MRT 2.Termin Inhalt Praktikum DST MRT 2.Termin... 1 2.1 LCD Anzeige ( 2_01_LCD und Taster)... 2 2.1b Anhang: ASCII Code Tabelle (LCD-Display: Displaytech 164A)... 3 2.2 V24-Datenschnittstelle

Mehr

Programmierübungen in Assembler

Programmierübungen in Assembler Programmierübungen in Assembler 1. LED Ein-/Ausschalten Verwendet: Ports An Portpin P3.0 ist eine LED angeschlossen. An Portpin P1.0 ist ein Taster angeschlossen. a) Schreiben Sie ein Programm, welches

Mehr

Kurzanleitung: 1. Anschüsse. MWCLightRGB by VoBo & HaDi-RC

Kurzanleitung: 1. Anschüsse. MWCLightRGB by VoBo & HaDi-RC Kurzanleitung: 1. Anschüsse Input: 3,8 bis 5 Volt!(nicht 5,5 V oder 6 V!) Output: Anschlüsse für WS2812 LED-Bänder (6/9 LED s / Arm) RC1: RC-Kanal -> Auswahl der Funktion/Lichtmuster RC2: RC-Kanal -> Auswahl

Mehr

Hinweise C-Programmierung

Hinweise C-Programmierung Hinweise C-Programmierung Dr.-Ing. Volkmar Sieh Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017 V. Sieh Hinweise C-Programmierung

Mehr

Mikrocontrollertechnik

Mikrocontrollertechnik Matthias Sturm Mikrocontrollertechnik Am Beispiel der MSP430-Familie mit 102 Bildern und 44 Tabellen Fachbuchverlag Leipzig im Carl Hanser Verlag Inhaltsverzeichnis 1 Ein-Bit-Rechner 15 1.1 Rechenwerk

Mehr

Teach-Dongle Rev 1.1. Teach-Dongle. Rev 1.1 Stand Okt

Teach-Dongle Rev 1.1. Teach-Dongle. Rev 1.1 Stand Okt Teach-Dongle - 1 - - 2 - 1. Allgemeines Inhaltsverzeichnis 1.1 Informationen zum Teach-Dongle Überblick Features 1.2 Rechtliches Urheberrechte Warenzeichen 1.3 EMV Anmerkungen zur EMV 2. Hardwarebeschreibung

Mehr

INE1 Bit-Operationen. Bit-Operationen Übungen Bits setzen, löschen, abfragen Beispiel: Bitmap

INE1 Bit-Operationen. Bit-Operationen Übungen Bits setzen, löschen, abfragen Beispiel: Bitmap INE1 Bit-Operationen Bit-Operationen Übungen Bits setzen, löschen, abfragen Beispiel: Bitmap 1 Displays and I/O Binary Display & Input Output 2 von 39 Operationen für Bitmanipulation Bit - Operatoren Die

Mehr

Übung zu Betriebssystembau (Ü BS)

Übung zu Betriebssystembau (Ü BS) Übung zu Betriebssystembau (Ü BS) Interruptbehandlung in OOStuBS Wanja Hofer Lehrstuhl für Informatik IV WS 07/08 1 Agenda: IRQ-Behandlung in OOStuBS Interrupts und Traps beim x86 Die Interrupt-Deskriptor-Tabelle

Mehr

U5-2 Register beim AVR-µC

U5-2 Register beim AVR-µC U5 4. Übungsaufgabe U5 4. Übungsaufgabe U5-2 Register beim AVR-µC U5-2 Register beim AVR-mC Grundlegendes zur Übung mit dem AVR-µC 1 Überblick Register Beim AVR µc sind die Register: I/O Ports Interrupts

Mehr

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

b) Gegeben sei folgende Enumeration: enum SPRACHE {Deutsch, Englisch, Russisch}; Aufgabe 1: (19 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

Mehr

Inhalt. Übungen zu Systemnahe Programmierung in C (SPiC) Inhalt. Globale Variablen

Inhalt. Übungen zu Systemnahe Programmierung in C (SPiC) Inhalt. Globale Variablen Übungen zu Systemnahe Programmierung in C (SPiC) Peter Wägemann, Heiko Janker, Moritz Strübe, Rainer Müller () Wintersemester 24/25 volatile Verwendung Module Hinweise zur Aufgabe Übungen zu SPiC (WS 24/5)

Mehr

GdI2 - Systemnahe Programmierung in C Übungen Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2006 U4.fm

GdI2 - Systemnahe Programmierung in C Übungen Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2006 U4.fm U4 4. Übungsaufgabe U4 4. Übungsaufgabe Grundlegendes zur Übung mit dem AVR-µC Register I/O Ports Interrupts AVR-Umgebung U4.1 U4-1 Grundlegendes zur Übung mit dem AVR-mC U4-1 Grundlegendes zur Übung mit

Mehr

i386 Interrupt-Deskriptortabelle (IDT)

i386 Interrupt-Deskriptortabelle (IDT) Agenda: IRQ-Behandlung in OO-Stubs Interrupts und Traps bei x86 Die Interrupt-Deskriptor-Tabelle (IDT) Aufbau der IDT Traps und Hardware IRQs Der Programmierbare Interruptcontroller PIC 8295A Aufbau Verwendung

Mehr

Name: ES2 Klausur Thema: ARM 25.6.07. Name: Punkte: Note:

Name: ES2 Klausur Thema: ARM 25.6.07. Name: Punkte: Note: Name: Punkte: Note: Hinweise für das Lösen der Aufgaben: Zeit: 95 min. Name nicht vergessen! Geben Sie alle Blätter ab. Die Reihenfolge der Aufgaben ist unabhängig vom Schwierigkeitsgrad. Erlaubte Hilfsmittel

Mehr

Ansteuerung eines LCD-Screens

Ansteuerung eines LCD-Screens Ansteuerung eines LCD-Screens Marcel Meinersen 4. Mai 2013 Marcel Meinersen Ansteuerung eines LCD-Screens 4. Mai 2013 1 / 27 Inhaltsverzeichnis 1 Allgemeines Was ist ein LCD-Screen? LCD 162C LED Marcel

Mehr

LEGO MINDSTORMS NXT MIT LABVIEW 2009 PROGRAMMIEREN

LEGO MINDSTORMS NXT MIT LABVIEW 2009 PROGRAMMIEREN LEGO MINDSTORMS NXT MIT LABVIEW 2009 PROGRAMMIEREN Prof. Dr.-Ing. Dahlkemper Fabian Schwartau Patrick Voigt 1 NXT DIRECT COMMANDS Es gibt zwei verschiedene Möglichkeiten, den NXT zu programmieren: Es werden

Mehr

Ein-Bit-Rechner 15. Mikrorechentechnik-Grundlagen 29

Ein-Bit-Rechner 15. Mikrorechentechnik-Grundlagen 29 Ein-Bit-Rechner 15 1.1 Rechenwerk 15 1.1.1 Register und Takt 16 1.1.2 Zwischenspeicher 17 1.1.3 Native und emulierte Datenmanipulationsbefehle 18 1.2 Steuerwerk 20 1.2.1 Programmsteuerbefehle 21 1.2.2

Mehr

Einleitung Die Pins alphabetisch Kapitel 1 Programmierung des ATmega8 und des ATmega

Einleitung Die Pins alphabetisch Kapitel 1 Programmierung des ATmega8 und des ATmega Einleitung... 11 Die Pins alphabetisch.... 12 Kapitel 1 Programmierung des ATmega8 und des ATmega328.... 15 1.1 Was Sie auf den nächsten Seiten erwartet... 19 1.2 Was ist eine Micro Controller Unit (MCU)?....

Mehr

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

Übungen zu Systemnahe Programmierung in C (SPiC) Inhalt. Moritz Strübe, Rainer Müller (Lehrstuhl Informatik 4) Sommersemester 2014 Übungen zu Systemnahe Programmierung in C (SPiC) Moritz Strübe, Rainer Müller (Lehrstuhl Informatik 4) Sommersemester 2014 Inhalt Interrupts Allgemein AVR Interrupt-Handler Synchronisation volatile 16-Bit-Zugriffe

Mehr

Microcontroller Selbststudium Semesterwoche 9

Microcontroller Selbststudium Semesterwoche 9 Microcontroller Selbststudium Semesterwoche 9 Kurzfragen zum Thema Interrupts 1. Wozu werden Interrupts benötigt (Beispiele)? Interrupts werden überall dort verwendet, wo auf zeitkritische Ereignisse reagiert

Mehr

LCD board EB

LCD board EB LCD board EB005-00-3 Inhalt 1. Über dieses Dokument...2 2. Allgemeine Information...3 3. Board-Layout...6 4. Schaltungsbeschreibung...7 Anhang 1 Schaltplan Copyright Matrix Multimedia Limited 2005 seite

Mehr

Atmega Interrupts. Rachid Abdallah Gruppe 3 Betreuer : Benjamin Bös

Atmega Interrupts. Rachid Abdallah Gruppe 3 Betreuer : Benjamin Bös Atmega Interrupts Rachid Abdallah Gruppe 3 Betreuer : Benjamin Bös Inhaltsverzeichnis Vorbereitung Was Sind Interrupts Interruptvektoren Software Interrupts Hardware Interrupts Quellen 2 Vorbereitung Rechner

Mehr

Bedienmodule OM 2032 und OM 2008

Bedienmodule OM 2032 und OM 2008 Bedienmodule OM 2032 und OM 2008 S7 Funktionsbausteine für TIA Portal Anwender-Dokumentation Version 2.00 Stand: 04.04.2018 Technische Änderungen vorbehalten Dok. Nr.: AD-OM2032-OM2008-FC400-FB401-DE-V2-00-04-2018

Mehr

Praktikum Mikrocomputertechnik

Praktikum Mikrocomputertechnik Praktikum Mikrocomputertechnik Versuch 5: Labor: Termin der Durchführung: IE-Labor und DT-Labor Ampelsteuerung als Automat Teilnehmer: Gruppe: Semester: Student 1: Student 2: Testat: Datum: Bemerkungen:

Mehr

V cc. 1 k. 7 mal 150 Ohm

V cc. 1 k. 7 mal 150 Ohm Ein Digitalvoltmeter Seite 1 von 6 Eine Multiplex-Anzeige Mit diesem Projekt wird das Ziel verfolgt, eine mehrstellige numerische Anzeige für Mikrocontroller-Systeme zu realisieren. Die Multiplex-Anzeige

Mehr

f) Was versteht man beim Zugriff auf I/O-Register unter dem Begriff "Memory-mapped"?

f) Was versteht man beim Zugriff auf I/O-Register unter dem Begriff Memory-mapped? Aufgabe 1: (1) 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

Mehr

Rechnerarchitektur, Einführung in die Laborübungen

Rechnerarchitektur, Einführung in die Laborübungen G. Kemnitz Institut für Informatik, TU Clausthal (RA-LabEinf.pdf) 20. Dezember 2017 1/18 Rechnerarchitektur, Einführung in die Laborübungen G. Kemnitz Institut für Informatik, TU Clausthal (RA-LabEinf.pdf)

Mehr

Übungen zu Systemnahe Programmierung in C (SPiC)

Übungen zu Systemnahe Programmierung in C (SPiC) Übungen zu Systemnahe Programmierung in C (SPiC) Moritz Strübe, Rainer Müller (Lehrstuhl Informatik 4) Sommersemester 2014 Inhalt Interrupts Allgemein AVR Interrupt-Handler Synchronisation volatile Lost

Mehr

ARM Cortex-M Prozessoren. Referat von Peter Voser Embedded Development GmbH

ARM Cortex-M Prozessoren. Referat von Peter Voser Embedded Development GmbH ARM Cortex-M Prozessoren Referat von Peter Voser Embedded Development GmbH SoC (System-on-Chip) www.embedded-development.ch 2 Instruction Sets ARM, Thumb, Thumb-2 32-bit ARM - verbesserte Rechenleistung

Mehr

PROFINET IO und I-Device

PROFINET IO und I-Device Einführung Die direkte Kopplung z. B. von SIMATIC und SIMOTION über PROFINET war bis SIMOTION 4.0 nur mittels TCP oder UDP bzw. zusätzlicher Hardware (PN/PN-Coupler, SIMATIC-CP) möglich. Ab SIMOTION V

Mehr

Aufgabe 4, I2C Kommunikation mit Temperatursensor. Labor Mikrocontroller mit NUC130

Aufgabe 4, I2C Kommunikation mit Temperatursensor. Labor Mikrocontroller mit NUC130 Aufgabe 4, I2C Kommunikation mit Temperatursensor Labor Mikrocontroller mit NUC130 Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A. Reber 09.12.2016 Gruppe A Inhalt 1 Einführung...

Mehr

Aufbau eines Assembler-Programms

Aufbau eines Assembler-Programms Aufbau eines Assembler-Programms. Assembler-Anweisungen (Direktiven) Einbindung von include-files Definition von Konstanten, Reservierung von Speicherplatz im RAM, 2. Was tun, wenn C Reset-Signal erhält

Mehr

Grundlagen der Informatik 2 Modul Systemnahe Programmierung in C (SPiC) Klausur am 9. April 2008

Grundlagen der Informatik 2 Modul Systemnahe Programmierung in C (SPiC) Klausur am 9. April 2008 Grundlagen der Informatik 2 Modul Systemnahe Programmierung in C (SPiC) WS 2007/2008 Dr.-Ing. Jürgen Kleinöder Friedrich-Alexander-Universität Erlangen-Nürnberg Informatik 4 (Verteilte Systeme und Betriebssysteme)

Mehr

Timer. Funktionsprinzip

Timer. Funktionsprinzip Timer Funktionsprinzip 8-Bit-Timer des ATmega28 Beispiel Timer im Polling- und Interrupt-Betrieb Funktionsprinzip Timer ist ein in Hardware realisierter i Zähler ändert seinen Zählerstand mit einer vorgegebenen

Mehr

M I K R O P R O Z E SS O R P R A K T I K U M SS2018. Termin1. C-Programmierung für eingebettete Systeme

M I K R O P R O Z E SS O R P R A K T I K U M SS2018. Termin1. C-Programmierung für eingebettete Systeme Mikroprozessorpraktikum Termin1 SS2018 Technische Fachgruppe C-Programmierung für eingebettete M I K R O P R O Z E SS O R P R A K T I K U M SS2018 Termin1 C-Programmierung für eingebettete Name, Vorname

Mehr

Microcontroller Kurs. 08.07.11 Microcontroller Kurs/Johannes Fuchs 1

Microcontroller 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

Mehr

Bedienungsanleitung MT 4007 MedioControl

Bedienungsanleitung MT 4007 MedioControl R Bedienungsanleitung MT 4007 MedioControl Inhaltsverzeichnis Inhaltsverzeichnis... 2 Einleitung... 3 Vorraussetzungen... 3 Installation... 3 Speicher verwalten und anzeigen... 4 Speicher und Timer zum

Mehr

SPI-Bus. 282 Ergänzung zu Kapitel 10

SPI-Bus. 282 Ergänzung zu Kapitel 10 282 Ergänzung zu Kapitel 10 10.21. SPI-Bus Allgemeines Beim SPI-Bus (Serial Peripheral Interface) handelt es sich um einen synchronen 3-Draht Bus mit einer zusätzlichen Steuerleitung (/SS) (siehe Abbildung

Mehr

Einführung DIP & AVR EVK1100

Einführung DIP & AVR EVK1100 Einführung DIP & AVR EVK1100 Umfang: ca. 2-4 Zeitstunden Display und Buttons (DIP) DIP (Treiber, Code) Aufgaben Emqopter GmbH 2 Display: DIP204 20 Spalten x 4 Zeilen (80 Zeichen) Anzeige von Informationen

Mehr

Erste Schritte der Programmierung in C

Erste Schritte der Programmierung in C Erste Schritte der Programmierung in C C versus C++ Anatomie von C-Programmen für AVR- Mikrocontroller Unterschiede zwischen C++ und C 1 Grundlegende Unterschiede File-Extensions (Header und Quellcode)

Mehr

Unter einem Interrupt kann man sich einen durch Hardware ausgelösten Unterprogrammaufruf vorstellen.

Unter einem Interrupt kann man sich einen durch Hardware ausgelösten Unterprogrammaufruf vorstellen. Interrupttechnik mit dem ATmega32 Unter einem Interrupt kann man sich einen durch Hardware ausgelösten Unterprogrammaufruf vorstellen. Aufgrund einer Interruptanforderung wird das laufende Programm unterbrochen

Mehr

USB > I2C- Bus Modul. Startet den I2C-Bus. Daten einlesen NACK senden

USB > I2C- Bus Modul. Startet den I2C-Bus. Daten einlesen NACK senden USB > I2C- Bus Modul Info Das USB > I2C-Bus Modul stellt eine Verbindung zwischen einen PC und dem I2C-Bus her. Über ein Terminal Programm können nun Daten zum I2C-Bus gesendet und vom I2C-Bus empfangen

Mehr

Manual Universaladapterboard für Spartan3_Board

Manual Universaladapterboard für Spartan3_Board Manual Universaladapterboard für Spartan3_Board Programmieranschluss Tastaturanschluss Mausanschluss Richtungs LEDs Logik Level LED Verbinder zum Spartan3_Board Manual_Universaladapterboard_deu.pdf 1/6

Mehr

Bit Operationen. InE1 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert

Bit Operationen. InE1 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert Bit Operationen InE M. Thaler, tham@zhaw.ch Office TG28 http://www.zhaw.ch/~tham November 8 Um was geht es? Microcontroller z.b. Ansteuerung/Konfiguartion von I/O Registern oft notwendig: einzelne Bits

Mehr

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

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

Mehr

Grundlagen der Informatik 2 Modul Systemnahe Programmierung in C (SPiC) Klausur am 25. Juli 2008

Grundlagen der Informatik 2 Modul Systemnahe Programmierung in C (SPiC) Klausur am 25. Juli 2008 Grundlagen der Informatik 2 Modul Systemnahe Programmierung in C (SPiC) SS 2008 Dr.-Ing. Jürgen Kleinöder Friedrich-Alexander-Universität Erlangen-Nürnberg Informatik 4 (Verteilte Systeme und Betriebssysteme)

Mehr

Kurzanleitung: 1. Anschüsse. MWCLightRGB 2013 by VoBo & HaDi-RC. HW-Version SW-Version 1.2x

Kurzanleitung: 1. Anschüsse. MWCLightRGB 2013 by VoBo & HaDi-RC. HW-Version SW-Version 1.2x Kurzanleitung: 1. Anschüsse IN: 3,8 bis 5 Volt!(nicht 5,5 V oder 6 V!) OUT: Anschlüsse für WS2812 LED-Bänder (6/9 LED s / Arm) RC1: RC-Kanal -> Auswahl der Funktion/Lichtmuster RC2: RC-Kanal -> Auswahl

Mehr

Programmieren in C. Speicher anfordern, Unions und Bitfelder. Prof. Dr. Nikolaus Wulff

Programmieren in C. Speicher anfordern, Unions und Bitfelder. Prof. Dr. Nikolaus Wulff Programmieren in C Speicher anfordern, Unions und Bitfelder Prof. Dr. Nikolaus Wulff Vergleich: Felder und Strukturen Felder müssen Elemente vom selben Typ enthalten. Strukturen können Elemente unterschiedlichen

Mehr