Timer. Funktionsprinzip

Ähnliche Dokumente
Interrupt-Programmierung

Proseminar Timer/Counter und PWM beim ATMega16 Mikrocontroller. Marcel Jakobs

AVR-Mikrocontroller in BASCOM programmieren, Teil 3

Einführung in die Programmierung von Mikrocontrollern mit C/C++

Zähler- und Zeitgeber-Baugruppen

Einführung in die Welt der Microcontroller

Autonome Mobile Systeme. Dr. Stefan Enderle

Lösungen zum Kurs "Mikrocontroller Hard- und Software

Maschinenorientierte Programmierung

Praktikum Mikrocontrollertechnik SS 2015 Versuch 3

Tag 2 Eingabe und Interrupts

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

Die interne Peripherie der Mikrocontroller

Microcontroller Kurs Programmieren Microcontroller Kurs/Johannes Fuchs 1

Programmierung von ATMEL AVR Mikroprozessoren am Beispiel des ATtiny13. Teil VI: Programmieren an weiteren Beispielen

AVR-Mikrocontroller mit dem GCC programmieren

Praktikum Mikrocomputertechnik

Serie 8: Microcontroller 17./

Tutorial. Microcontroller. Grundlagen µc. Kapitel 1

Assembler für BASIC Programmierer

7.0 PWM - Pulsbreitenmodulation

M-AX-16/C1 (Typ 37) Inhaltsverzeichnis M-AX-16/C1

Interrupts. Funktionsprinzip. Funktionsprinzip. Beispiel in C

9.3 Eingebettete Peripheriekomponenten

AVR-Mikrocontroller in BASCOM programmieren, Teil 2

Wie in der Skizze zu sehen ist, bleibt die Periodendauer / Frequenz konstant und nur die Pulsweite ändert sich.

U Abend 3: Musterlösungen, Taster entprellen, Unterprozeduren, Interrupts, Timer

Multitasking / virtuelle Maschinen mittels Atmel AVR- Mikrocontrollern (Simple & Stupid)

Automatische Testsysteme und ihre Programmierung. Dresden, Michael Dittrich,

3.14 Die Programmieroberfläche Programmierung

a. Flipflop (taktflankengesteuert) Wdh. Signalverläufe beim D-FF

Einführung in AVR-Assembler

Seminar: Mikrocontroller. Analoge Inputs:

Snake Projekt. Jan Scholz. 16. März 2013

Zahlendarstellung Logikfunktionen Register Eingänge Infrarot senden TSOP-Effekte Weiterführendes U Abend 3:

aufeinander folgenden 1kHz-Pulse in gleichen Zeitabständen an die Eingänge des JK-FF gelangen.

Bedienungsanleitung. Name:Programmierbarer LED Controller Model:TC420

Programmierung von ATMEL AVR Mikroprozessoren am Beispiel des ATtiny13. Teil 8: Ein Sinusgenerator mit AVR-Timer

Der Mikrocontroller beinhaltet auf einem Chip einen kompletten Mikrocomputer, wie in Kapitel

GRAFIK 128x64 IN 2 GRÖSSEN MIT ST7565. preliminary

AVR-Mikrocontroller in BASCOM programmieren

DST EINFÜHRUNG IN MRT (V2)

Parallel-IO. Ports am ATmega128

Programmierung von ATMEL AVR Mikroprozessoren am Beispiel des ATtiny13

Kurzanleitung. Hotel Modus. Version / MB82 / MB82S<, Stand Vestel Germany GmbH Parkring Garching bei München

Anwendung und Programmierung von Mikrocontrollern. Anwendung und Programmierung von Mikrocontrollern

SCAN OPERATOR 12. Bedienungsanleitung. Ab Version Internet:

Ausgewählte Kapitel eingebetteter Systeme Die Atmel AVR Mikrocontrollerfamilie

Chiptunes Wie musikalisch ist mein Mikrocontroller?

Microcontroller Programmierung. Ein PDV-Vertiefungsprojekt von: Chr. Schulz, P. Simon und D. Stein Sommersemester 2005 Version 1.0

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

Serielle Datenübertragung mit dem Schnittstellenbaustein 8251

TBE332 Controller. Produktbeschreibung

1.2 Ladekurve der ProfiPower LCD Batterieladegeräte. Batterie -Status Symptom Normaler Ladevorgang. Ist die Batteriespannung über Batteriespannung

Mikrocontroller. eine Einführung. Florian Schmitt / 34

netx User Peripherials 2008 Jiri Spale, Programmierung eingebetteter Systeme 1

I2C to PWM Konverter AfroI2C Tokyo Drift Betriebsanleitung

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

FAQ. Diagnose und Betriebssystem-Firmwareupdate bei S7-300 CPUs FAQ

Bedienungsanleitung TIME IT. a Look Solutions 1 product

Die Mikroprogrammebene eines Rechners

Research & Development Ultrasonic Technology / Fingerprint recognition DATA SHEETS OPBOX. optel@optel.

Computergestützte Ansteuerung digitaler Eisenbahnanlagen

Zusatzprogramme Electronicsmodul Art.-Nr

Memory-Mapped-IO. Kapitel 4

Bedienungsanleitung Version 1.0

Speicherung digitaler Signale

Ansteuerung des N2ADR/HiQSDR DDC/DUC Frontends (FW V1.1)

Mikrocontroller Grundlagen. Markus Koch April 2011

Erhöhung der Kanalanzahl des Modular-EEG auf Mikrocontroller-Ebene

NANO III - MSR. Signalabtastung Analog Digital Converter (ADC) Digital Analog Converter (DAC) Themen: DAC

Inhaltsverzeichnis. Willkommen 3 NORMAL DELAY Modus 3 TAPE ECHO Modus 3 Looping Recorder Modus 3. Anschlüsse/Bedienelemente 3

Ausführungszeiten. Worst-Case Execution-Time. Übung zur Vorlesung EZS. Zeitgeber Oszilloskop Diskussion

Betriebssysteme Kap B: Hardwaremechanismen

Bedienungsanleitung LivingColors Iris

S21 LED Controller Synergy21 LED RGB-Controller 12V/24V RGB-Touch-Controller Technische Daten Art. Nr (weiß) Art. Nr.

Universita t Koblenz/Landau Studienarbeit

MODUL 6 TIMER UND COUNTER

SPI Serial Peripheral Interface

Hardwareaufbau der Mikrocontroller der 51er -Familie

Einrichtungs-Hilfe Kaskadierung. für PM5D, DME64N/DME24N und DM2000

Mikrocontrollertechnik

Bedienungsanleitung. BOTEX Scene Setter DC Midi Eingang. Midi Ausgang. DMX Ausgang

Schrittmotorsteuerung

Fachhochschule Kaiserslautern Fachbereich Angewandte Ingenieurwissenschaften WS2010/11. Zeitpunkt der Prüfung: Beginn: 10.

AMG-GSM-DIALER-02 31/08/2015 (05)

Making the Internet of Things

5. Digitale Schnittstellen und Vernetzung im Überblick

Ein und Ausgabe. von Neumann Konzept enthält folgende Komponenten: Rechenwerk Steuerwerk Speicher Eingabewerk Ausgabewerk (siehe 1.

9.1.3 Maxim MAX7219 LED-Display Treiber

Ebenen der Synchronisierung

Circuit. Open JP1 while programming. ST2: power input. Heinz, G. GFaI Berlin GFaI

Serieller S-Bus reduziertes Protokoll (Level 1)

11: Echtzeitbetriebssystem ucos-ii

O N L I N E H I L F E. Speed Monitor MOC3SA. Motion Control

Versuch 3: Sequenzielle Logik

Teil 1: Digitale Logik

Zusatzplatine MP-Bus HZS 562

Modellgestütztes Software Engineering. Versuch 5. Wintersemester 2015

Dokumentation SPS-CLOCK. Atomzeit an digitale E/A der SPS. SPS-CLOCK 1996 by PI & TBO

Transkript:

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 Taktrate ( timer ) reagiert au bestimmte Weise, wenn Zählerstand vordeinierte Bedingung erüllt Zählerstand 5 4 3 2 0 2 3 4 5 t n timer n

Zweck von Timern Generierung einer verlässlichen Zeitbasis zur Steuerung von Programmabläuen, z.b.: - Wartezeiten mit beriedigender Genauigkeit einstellen - Einlesen von Daten von externen (über Ports) oder internen (ADC,...) IO-Bausteinen in bestimmten Zeitintervallen Timer generiert dazu Ereignisse in genau zu bestimmenden Zeitintervallen t ereignis ein Ereignis kann sein: x timer - das Setzen von Flags in bestimmten Registern - das Generieren von Interrupts Betriebsarten von Timern (Beispiele) Ereignisse MAX MAX PREVAL Zählrichtung up, down wählbar BOTTOM BOTTOM t t tereignis MAX t ( ) Ereignis MAX PREVAL timer timer MAX MAX TOP TOP BOTTOM BOTTOM t tereignis MAX tereignis TOP timer (Phasenverschiebung) timer Timer mit N Bit: MAX=2 N BOTTOM=0 TOP, PREVAL beliebig wählbar t 2

Zählrequenz des Timers einachster Fall: Zählrequenz entspricht dem Takt des Controllers timer CPU Problem: Takt des Controllers ist ot sehr hoch, so dass die Zählrequenz des Timers ebenalls relativ hoch ist - Beispiel 8-Bit-Timer (MAX=2 8 ): tereignis MAX CPU 8 6 tereignis 2 0 s 256 s bei CPU timer MHz ereignis 3, 9kHz t ereignis ür langsame Vorgänge (z.b. das Blinken einer LED oder das Messen langsamer Änderungen physikalischer Größen) sind kleinere Frequenzen nötig - das Verringern des Prozessortaktes bewirkt eine Verringerung der gesamten Rechengeschwindigkeit -> schlechte Lösung Lösung: Einsatz von Prescalern Prescaler teilen den Prozessortakt herunter timer N CPU Pr escaler Beispiel: ür N Prescaler =024 und CPU =MHz 8 024 tereignis MAX 2 262ms 6 CPU 0 NPr escaler ereignis 3, 85Hz t ereignis weitere Möglichkeit: Verwendung eines externen Taktes ür den Timer, der unabhängig ist von CPU - man nennt das asynchroner Modus - auch dieser Takt kann durch Prescaler heruntergeteilt werden 3

Beispiel Timer0 des ATmega28 Überblick Prescaler Output-Compare-Unit Register Timing-Diagramme Die Timer des ATmega28 ist mit 4 Timern ausgestattet: - 2x 8-Bit-Timer (Zählregister hat 8 Bit, MAX=255) - 2x 6-Bit-Timer (Zählregister hat 6 Bit, MAX=65535) Timer unterscheiden sich außerdem in ihrem Funktionsumang, z.b.: - Ausgabe eines Signals über Pin des C (waveorm generation) - PWM (Pulse Wide Modulation) - Zeitstempel ür eintreende Ereignisse - Zählen eintreender Ereignisse hier beschränken wir uns, am Beispiel des Timer0 (8 Bit), au die Grundunktionalität eines Timers 4

Blockschaltbild Timer0 4 2 6 3 5 Prescaler Controllertakt osc 5

Output-Compare-Unit Die Register von Timer0 TCCR0 TCNT0 OCR0 TIFR TIMSK 6

Timer/Counter Control Register TCCR0 Waveorm Generation Mode Compare Match Output Mode Clock Select Force Output Compare Timer-Counter-Control-Register TCCR0:[WGM0 und WGM00] TOV0= OC0= MAX MAX TOP BOTTOM normal mode BOTTOM CTC mode WGM0 WGM00 normal mode 0 0 CTC* 0 *clear timer on compare match 7

Zähl- und Vergleichsregister TCNT0, OCR0 Zählregister (Timer Counter Register): mit jedem Takt wird der Zählwert um erhöht, Register kann auch mit einem Wert geladen werden, ab dem gezählt werden soll (PREVAL in Folie 3) Output Compare Register: wird mit dem Wert TOP geladen, d.h. hat das Zählregister den hier gesetzten Wert erreicht, wird ein Ereignis ausgelöst (Flag setzen, evtl. Interrupt auslösen) ASynchronous Status Register ASSR ür den Fall, dass der Timer von externem Takt versorgt wird (asynchroner Mode) - wird hier nicht weiter behandelt 8

Timer Interrupt Flag Register TIFR gelten ür Timer0 Timer setzt Flag au, wenn eine Bedingung eingetreten ist: - OCF0 (Output Compare Flag): nach Erreichen von TOP oder BOTTOM je nach Zählrichtung - TOV0 (Timer Overlow Flag): nach Erreichen von MAX oder BOTTOM je nach Zählrichtung au das Setzen des Flags durch den Timer kann man warten (Polling) - das Flag muss dann durch das Programm wieder zurückgesetzt werden - Rücksetzen der Flags erolgt durch Schreiben einer (!) in das entsprechende Bit des Registers Timer Interrupt Mask Register TIMSK gelten ür Timer0 schaltet Interrupts ein, wenn au gesetzt - OCIE0: Timer0 löst Interrupt aus, wenn Zählwert TOP erreicht (Output Compare Interrupt Enable) - TOIE0: Timer0 löst Interrupt aus, wenn Zählwert MAX erreicht (Timer Overlow Interrupt Enable) sobald Timer das jeweilige Flag in TIFR gesetzt hat, wird der dazu passende Interrupt ausgelöst - ein Interrupt löscht das jeweilige Flag automatisch wieder 9

Normal Mode Timing-Diagramm Normal Mode mit Prescaler Timing-Diagramm 0

CTC-Mode mit Prescaler Timing-Diagramm Beispiele LED2 blinkt. Die Wartezeit (Geschwindigkeit) wird nun nicht mehr mit _delay_ms() gesteuert, sondern mit dem Timer0. Zwei verschiedene Methoden werden angewendet:. Polling, Normal Mode, Timer Overlow (konstante Geschwindigkeit in Abhängigkeit vom Prescaler) CPU MHz 2. Interrupt, CTC Mode, Output Compare Match (Geschwindigkeit ändert sich in Abhängigkeit vom Wert im OCR-Register) R CPU MHz 0ms t 250ms ereignis

Berechnung der Werte ür das Output-Compare-Register CPU timer N Pr escaler ( OCRval ) N t ( ) Pr escaler ereignis OCRval timer CPU tereignis CPU OCRval NPr escaler 2 6 0 0 t ereignis 0ms OCRval min 9 024 3 6 250 0 0 tereignis 250ms OCRvalmax 243 024 tatsächlicher Bereich : 0,24ms t 249,856ms ereignis 2