Mikrocomputertechnik

Ähnliche Dokumente
2

Mikrocomputertechnik. Thema: Der Aufbau des XC888-Mikrocontrollers -Teil 1 -

Interrupt. Externe Interrupts 0 und 1

Timer. Funktionsprinzip

Mikrocomputertechnik. Thema: Serielle Schnittstelle / UART

Teil 6: PIC Studiengang Technische Informatik (TI) Prof. Dr.-Ing. Alfred Rożek. nur für Lehrzwecke Vervielfältigung nicht gestattet

2.1 Atmega-Peripherie/Interrupts

myavr Programmierung in C

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:

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

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

U5 Fortgeschrittene AVR-Programmierung

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

Interruptverarbeitung

Microcontroller Selbststudium Semesterwoche 9

Analog-Digital-Converter

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

Single- und Multitasking

U5-2 Register beim AVR-µC

Selbststudium Informationssysteme - H1102 Christian Bontekoe & Felix Rohrer

Betriebssysteme 1. Thomas Kolarz. Folie 1

Tag 2 Eingabe und Interrupts

Geräteentwurf mit Mikroprozessoren 1

PIC16 Programmierung in HITECH-C

Konzepte von Betriebssystem- Komponenten Ausnahme- / Unterbrechungsbehandlung

8. Beschreibung des Prozessors MSP 430

Inhalt. Prozessoren. Curriculum Manfred Wilfling. 28. November HTBLA Kaindorf. M. Wilfling (HTBLA Kaindorf) CPUs 28. November / 9

Informatik 12 Kapitel 3 - Funktionsweise eines Rechners

Kapitel 18. Externe Komponenten

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

EXF2 TF2 IEX6 IEX5 IEX4 IEX3 IEX2 IADC 0C0H T2PS I3FR I2FR T2R1 T2R0 T2CM T2I1 T2I0 0C8H. AFH AEH ADH ACH ABH AAH A9H A8H Bitdresse

Eigenschafte: Konfiguration: Baudrate:

Interruptsystem AVR. Interrupt-Quellen: Extern, Timer, ADC, USART usw. (siehe IVT im Anhang) Rücksprungadresse automatisch am Stack.

Interrupt-Programmierung

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

Lösung von Übungsblatt 8

MikroController der 8051-Familie

Aufgabe 2 - Erweiterung um PIC und Interrupts

Tag 3 Timer, ADC und PWM

Übung 7. Mikroprozessor & Eingebettete Systeme 1

Mikrocontroller. Vortrag von Louis Liedtke. 8. Dezember Fakultät Elektrotechnik und Informatik. Bild 1: Atmel ATmega8

SPI-Bus. 282 Ergänzung zu Kapitel 10

Embedded Systems

Mikrocomputertechnik

Funktions-Blockschaltbild des Mikroprozessors 8085

Interrupts im Handbuch des ATmega128 gründlich lesen.

Echtzeitbetriebssysteme

Aufgabe 2 - Erweiterung um PIC und Interrupts

16-Bit PCA Timer/Counter

Hochschule Düsseldorf University of Applied Sciences HSD RISC &CISC

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

ATmega169 Chip: Pin-Layout

Busse. Dr.-Ing. Volkmar Sieh WS 2005/2006. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg

The amforth Cookbook angefangen

Zähler- und Zeitgeber-Baugruppen

Mikrocontrollertechnik

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

Rainbow-OS Architekturseminar Thema: Interrupt-Controller

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen

Rechnerarchitektur Atmega Vortrag Atmega 32. Von Urs Müller und Marion Knoth. Urs Müller Seite 1 von 7

Mikrocomputertechnik mit der 8051-Controller-Familie

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

E Mikrocontroller-Programmierung

Hardwareaufbau der Mikrocontroller der 51er -Familie

Mikrocomputertechnik

FAKULTÄT FÜR INFORMATIK

4.0 Der Atmel AT89LPx052 Mikrocontroller

U5 Fortgeschrittene AVR-Programmierung U5 Fortgeschrittene AVR-Programmierung. Synchronisation mit Unterbrechungsbehandlungen


Operationsmodi des Timers Modus 0 : Ausschalten des Zählers

Betriebssysteme Teil 10 B: Fragen rund um Seitenfehler

Embedded Systemarchitekturen und Echtzeitbetriebssysteme

Mikrocomputertechnik

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

D.8 Versuchsreihe 8: Steuerwerk - Teil I

Mikrocomputertechnik. Thema: Einführung in die Mikrocomputertechnik

9. Assembler: Der Prozessor Motorola 68000

9. Assembler: Der Prozessor Motorola 68000

Tutorium Rechnerorganisation

Busse. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2008/2009

Mikrocomputertechnik

Maschinenorientierte Programmierung

Übung "Struktur von Mikrorechnern" (CBS)

Interrupts. Funktionsprinzip. Funktionsprinzip. Beispiel in C

Erzeugen von PWM-Signalen mit dem Atmel AVR-Mikrocontroller

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Ein-Bit-Rechner 15. Mikrorechentechnik-Grundlagen 29

11. Die PC-Schnittstelle

Mikrocontrollertechnik C2 Timer. Einführung

Transkript:

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 Befehlszyklus Maschinenzyklus Maschinenzyklus Maschinenzyklus Taktzyklus Taktzyklus Folie 3

CPU Timing XC888 Befehlszyklus Beschreibt den Ablauf eines Maschinenbefehls. Maschinenzyklus Beschreibt die Gesamtanzahl der Taktzyklen, die notwendig sind, um bestimmte Grundfunktionen (eines Befehls) auf einem Prozessor auszuführen. Taktzyklus Um bei einem Prozessor synchrone Verarbeitungen gewährleisten zu können, benötigt dieser ein Taktsignal (engl. clock signal). Das Taktsignal wird über die sogenannte Taktfrequenz beschrieben. Taktfrequenz = 1 / Periodendauer Folie 4

Folie 5

Interrupt System XC888

Grundlagen Interrupts Auf bestimmte Ereignisse soll sofort reagiert werden können Ereignis z.b. Ablauf Wartezeit, Pegelwechsel an Portpin, Ende AD-Wandlung, etc. Bei allen µc heißt hier die Lösung Interrupts Rechner überwacht mögliche Interrupt-Ereignisse ohne das CPU hierfür Befehle ausführen muss Dem Rechner wird Eintreffen des Ereignis über Setzen von Flags signalisiert Interrupt Flags Aktueller Befehl wird vollends abgearbeitet, danach folgt Sprung zu Interrupt-Vektor/Interrupt-Adresse Verschiedene Ereignisse besitzen (teils) unterschiedliche Sprungadressen Folie 7

Interrupt Vektor Tabelle XC888 Folie 8

Interrupt Steuerung XC888 Die vorhandenen Interrupt Register werden verwendet für: Enable / Disable Interrupt Node Steuerung von externen Interrupts Sie beinhalten die Interrupt (Request) Flags Mit ihnen lassen sich die Interrupts priorisieren (nicht Teil der Vorlesung) Für uns wichtig sind folgende Interrupt Register: Interrupt Enable Register External Interrupt Control Register Interrupt Flag Register Folie 9

Verarbeitung von Interrupts XC888 In Phase 2 jedes Maschinenzyklus werden die Interrupt Flags abgefragt Ist ein Interrupt Flag gesetzt, erzeugt das Interruptsystem einen LCALL zur entsprechenden Interrupt-Vektor-Adresse Der Interrupt-Einsprung kann durch folgende Bedingungen verzögert werden: Ein Interrupt gleicher oder höherer Priorität wird gerade bearbeitet Ein (Maschinen-)Befehl wird noch ausgeführt Es wird gerade der RETI Befehl ausgeführt oder es wird schreibend auf die Register IEN0, IEN1, IEN2 oder IP0/IP1 zugegriffen Folie 10

Interrupt Response Time XC888 Die Zeit zwischen Erkennen des Interrupts und Ausführen der Interrupt-Subroutine wird als Interrupt Response Time bezeichnet Folgende Grafik zeigt die Minimum Interrupt Response Time Folie 11

Interrupt Response Time XC888 Nachfolgende Grafik zeigt ein Beispiel für eine Verzögerung der Interrupt Reponse Time Folie 12

Interrupt-Programmierung in C Anweisungen eines Interrupts werden in spezielle Funktionen ausgelagert Interrupt Service Routine (ISR) Unterscheidung zu gewöhnlichen Funktionen über Schlüsselwort interrupt sowie der (Knoten-)Nummer des Interrupts Beispiel Timer 0 ISR: void ISR_T0(void) interrupt 1 { //... } Folie 13

Interrupt-Struktur XC888 XC888 besitzt 15 Interrupt-Adressen Anzahl Interrupt-Ereignisse ist jedoch höher Daher ist Interrupt System in Knoten organisiert Einem Knoten können ein oder mehrere Ereignisse zugeordnet sein Folie 14

Interrupt-Struktur XC888 Folie 15

Interrupt-Struktur XC888 Folie 16

Interrupt-Struktur 1 XC888 Ist globales Enable-Bit EA und knotenspezifisches Enable-Bit gesetzt, so sorgt Interrupt-Status-Flag dafür, dass in ISR verzweigt wird Da es nur ein Interrupt-Flag pro Knoten gibt, kann das Bit hardwareseitig zurückgesetzt werden (ohne weiteres Eingreifen des Entwicklers) Beim Verzweigen in die ISR wird Interrupt-Flag gelöscht Folie 17

Interrupt-Struktur 2 XC888 Bei Struktur 2 liegen mehrere Ereignisse auf der selben Interrupt-Adresse Bedingungen für Interrupt sind jetzt Das global Enable-Bit EA muss gesetzt sein Enable-Bit für Interrupt-Knoten muss gesetzt sein Mindestens ein Status-Flag des Knotens muss gesetzt sein Der Sprung zur ISR löscht hier nicht ein bzw. mehrere Interrupt- Flags Manuelles Löschen innerhalb der ISR notwendig Hintergrund: Bei Sprung in die ISR ist nicht per se klar, welches Ereignis Interrupt ausgelöst hat Entwickler muss in ISR Interrupt-Flags abfragen Folie 18

Interrupt-Struktur 2 XC888 Beispiel Knoten ADC und Multi-CAN Folie 19