Tag 2 Eingabe und Interrupts

Ähnliche Dokumente
Interrupts. Funktionsprinzip. Funktionsprinzip. Beispiel in C

Programmieren in C Teil 3: Mikrocontrollerprogrammierung

Parallel-IO. Ports am ATmega128

Microcontroller Kurs Programmieren Microcontroller Kurs/Johannes Fuchs 1

Interrupt-Programmierung

Atmel AVR für Dummies

Stepperfocuser 2.0 mit Bootloader

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

Bedienungsanleitung. Mailboxsystem

easyident Türöffner easyident Türöffner Art. Nr. FS-0007 FS Fertigungsservice

GSM Scanner Bedienungsanleitung

DST EINFÜHRUNG IN MRT (V2)

Anlegen eines Speicherbereichs mit DB, DW eleganter in Kombination mit EQU, Timer-Interrupt

myavr Programmierung in C

Wireless Clickkit Kurzanleitung

Zeitschaltuhr mit Netzwerkanschluss

Ihren persönlichen Anrufbeantworter

PIXMA MG3500. series. Einrichtungshandbuch

Der SD-Kartenslot befindet sich an der rechten Gehäuseseite unterhalb der rechteckigen hellgrauen Gummiabdeckung.

Tageslichtsimulator Easy Time Controll. Bedienungsanleitung

NTCS WIEDERHOLFAKTURA & SAMMELRECHNUNG 10/04/13. BMD Systemhaus GmbH, Steyr Vervielfältigung bedarf der ausdrücklichen Genehmigung durch BMD!

Installation OMNIKEY 3121 USB

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

Erstellen einer Abwesenheitsnotiz

7DVWH.HOOQHU. Kassensystem SANYO (X&D6RIWKapitel 42

Bereich METIS (Texte im Internet) Zählmarkenrecherche

Informatik Grundlagen, WS04, Seminar 13

Local Control Network

V o r w o r t. A n l e i t u n g

Bedienungsanleitung TIME IT. a Look Solutions 1 product

Lego Roboter mit NXT-G programmieren. Hochschule Mannheim

"Memory Stick" zur Programmierung der comfort 8+ Lichtsteuranlage mit PC Software "scenes editor"

Versand Etiketten / Endlosdruck

ShoCo Versand. Anbindung des Webservice Barcode und Sendungen verfolgen an Comatic. Version vom

GSM Scanner Bedienungsanleitung. GSM - Scanner. Bedienungsanleitung. Seite 1 von 10

Elektrische Logigsystem mit Rückführung

CMS.R. Bedienungsanleitung. Modul Cron. Copyright CMS.R Revision 1

Microcontroller Kurs Microcontroller Kurs/Johannes Fuchs 1

Inhaltsverzeichnis

Bedienungsanleitung MRT Sepura SRG 3900

Bedienungsanleitung C300 Sprachinfoserver der PH Freiburg

e-fon PRO Start Konfiguration FRITZ!Box 7390

Inhaltverzeichnis 1 Einführung Zugang zu den Unifr Servern Zugang zu den Druckern Nützliche Links... 6

RS-Flip Flop, D-Flip Flop, J-K-Flip Flop, Zählschaltungen

Bedienungsanleitung Lithium Akku mit Fernbedienung

Übung - Datenmigration in Windows Vista

8.1 Grundsätzlicher Aufbau der Beispiele

Arbeiten mit UMLed und Delphi

Anleitung. Einrichtung vom HotSync Manager für den Palm 1550 bis 1800 unter Windows 7. Palm SPT 1500 / 1550 Palm SPT 1700 / Bits & Bytes Seite 1

Umzug der Datenbank Firebird auf MS SQL Server

II. Daten sichern und wiederherstellen 1. Daten sichern

DELFI. Benutzeranleitung Dateiversand für unsere Kunden. Grontmij GmbH. Postfach Bremen. Friedrich-Mißler-Straße Bremen

Was unterscheidet Microcontroller von einem PC ( Laptop ) oder einem Handy

Einrichtung HBCI mit PIN/TAN in VR-NetWorld-Software

Datenbank LAP - Chefexperten Detailhandel

Lehrer: Einschreibemethoden

Anleitung zur Einrichtung eines M-Net Zugangs

Zähler- und Zeitgeber-Baugruppen

Bedienung der Video-Konferenz Anlage

Programmierung mit NQC: Kommunikation zwischen zwei RCX

Installationsanleitung Scanner des MEDI Baden-Württemberg e.v.

Erwin Grüner

Programmierung Weichenmodul S/D Tafel 1

Projektzeit erfassen. Allgemeines. Projektzeit erfassen - Maske. Erklärung der Tabellenspalten. In Arbeit!

mlab Geräte Institut für Wissensmedien Universität Koblenz-Landau

Feiertage in Marvin hinterlegen

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

Bedienungsanleitung. LED Tristar

Bitte wenden. Name: KURSARBEIT NR. 4 (10 DIFF GA) Seite 1

Update Anleitung I-STAT unter Windows 8 WICHTIG. > Version A30 Die Aktivierung der Barcodefunktion muß vor dem Update aktiviert werden

Zählen von Objekten einer bestimmten Klasse

Kurzanleitung Wireless Studenten (Windows 8) BGS - Bildungszentrum Gesundheit und Soziales Gürtelstrasse 42/ Chur

Installationsanleitung Forest shuttle. Home Automation by

teamsync Kurzanleitung

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Anleitung zur Einrichtung der VR-NetWorld Card basic in der VR-NetWorld Software

Versuch 3: Sequenzielle Logik

Enigmail Konfiguration

Electronic Systems GmbH & Co. KG

Bedienung des Web-Portales der Sportbergbetriebe

Erstellen von x-y-diagrammen in OpenOffice.calc

Statuten in leichter Sprache

Zur drittletzten Zeile scrollen

Allgemeine Anleitung Treiber für CP2102

Installationshinweise Linux Edubuntu 7.10 bei Verwendung des PC-Wächter

Diagramm aus mehreren Tabellenblättern

EFR Smart Control EEG EINSPEISEMANAGEMENT PER FUNK

Bedienungsanleitung PC-Konfigurationssoftware des ID Inclinometers

Installation der Demoversion vom M-Doc AutoSigner

Local Control Network

Mailbox Ihr Anrufbeantworter im primacom-netz Anleitung. Inhaltsverzeichnis. 1 Mailbox einrichten. 1.1 Ersteinrichtung. 1.

CU-R-CONTROL. Beschreibung zur Schaltung ATMega16-32+ISP MC-Controller Steuerung auf Basis ATMEL Mega16/32. Autor: Christian Ulrich

Vehicle Security System VSS3 - Alarm system remote

Anleitung E Mail Thurcom E Mail Anleitung Version

U5-2 Register beim AVR-µC

Schnellstart. MX510 ohne mdex Dienstleistung

3.14 Die Programmieroberfläche Programmierung

Handbuch Programmierung teknaevo APG

Info-Veranstaltung zur Erstellung von Zertifikaten

1 Belastung. 1.1 Standortbestimmung 1.2 Belastungsvorhersage 1.3 Favoriten

Transkript:

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! Gedrückt: PINxn == 0, losgelassen: PINxn == 1 Auf myavr-board Taster an Port K (+ Joystick ) 08/30/10 Fachbereich Physik Institut für Kernphysik Bastian Löher, Martin Konrad 2

Tastenabfrage 1. Polling: Status des PINx wird in Schleife dauernd abgefragt Vorteil: Einfach Nachteile: langsam und ineffizient funktioniert nicht während der Controller andere Dinge erledigt 2. Interrupts: Wenn Taster gedrückt, wird Interrupt ausgelöst Vorteil: Unabhängig vom restlichen Code Nachteil: Größerer Aufwand 08/30/10 Fachbereich Physik Institut für Kernphysik Bastian Löher, Martin Konrad 3

Polling Innerhalb einer while-schleife wird immer wieder der Status abgefragt Wichtig: Zum Lesen immer PINx abfragen, nicht PORTx Programm (teil3_taster1): while(1) // Endlosschleife { // Frage, ob Taster gedrückt ist if( PINK!= 0x0) PORTD = ~PINK; // Immer PINx abfragen! } Datum Fachbereich Physik Institut für Kernphysik C-Kurs 4

Interrupts Unterbrechen sofort aktuelle Codeausführung Spezielle Interruptroutine (ISR) wird ausgeführt Adressen der ISRs werden in Interrupt Vector Tabelle definiert ISRs sollten möglichst kurz sein Rückkehr zum eigentlichen Code nach Ende der ISR.org 0x000 rjmp RESET rjmp EXT_INT0 rjmp EXT_INT1 rjmp TIM2_COMP rjmp TIM2_OVF rjmp TIM1_CAPT rjmp TIM1_COMPA rjmp TIM1_COMPB... ; kommt ganz am Anfang des Speichers ; Interruptvektoren überspringen ; und zum Hauptprogramm ; IRQ0 Handler ; IRQ1 Handler Wird in C automatisch generiert! ; Timer1 Capture Handler ; Timer1 CompareA Handler ; Timer1 CompareB Handler 08/30/10 Fachbereich Physik Institut für Kernphysik Bastian Löher, Martin Konrad 5

Interruptbehandlung Interruptquelle konfigurieren: Spezieller Pin wird geändert: etwa PORTK0 Timer läuft ab (wie bei Windows) Externer Interrupt Register im ATmega640: PCICR: Pin Change Interrupt Control Register Die drei verschiedenen PC-Interrupts ein (PCINT0:2) Jedes Interrupt kann von 8 verschiedenen Pins getriggert werden PCMSKx: Pin Change Interrupt Mask Register 0 bis 2 Legt fest, welche der 8 Pins das Interrupt auslösen Interrupts generell einschalten: sei(); (set enable interrupt) Wichtig: #include <avr/interrupt.h> Datum Fachbereich Physik Institut für Kernphysik C-Kurs 6

Die Interrupt Service Routine Eine ISR kann nicht unterbrochen werden Syntax (teil3_taster2): kurz halten ISR(PCINT2_vect) { uint8_t in = ~PINK; // Status von PIN K auslesen PORTD = in; // Port D setzen PORTL++;// hochzählen } Makro ISR erwartet als Argument den Interruptvektor ATmega640 hat 57 verschiedene Interruptvektoren Beispiel: TIMER0_OVF_vect, PCINT0_vect,... Definiert in den Headerdateien von WinAVR Datum Fachbereich Physik Institut für Kernphysik C-Kurs 7

Problematik Prellen Beispiel: Zählen mit schlechtem Taster (Büroklammer) Beim Schaltvorgang wird mehr als einmal geschaltet (unsauber) Zähler würde jeden Schaltvorgang einzeln zählen Abhilfe: Entprellung des Tasters Zwischen Schaltvorgängen muss mindestens Δt vergehen Implementierung durch unabhängigen Timer des ATmega640 Datum Fachbereich Physik Institut für Kernphysik C-Kurs 8

Timer/Counter Ein vom restlichen Programm unabhängiger Zähler Entweder 8 oder 16 bit Größe ATmega640 besitzt 6 verschiedene Timer/Counter Default: Ausgeschaltet Konfigurationsregister: TCCRxA/B/C: Timer Counter Control Register x A, B und C Einstellen der Zählfrequenz als Bruchteil der Taktfrequenz des Controllers TIMSKx: Timer Interrupt Mask x z.b. Einschalten des Überlauf- Interrupts Datum Fachbereich Physik Institut für Kernphysik C-Kurs 9

Entprellung Idee: Timer gibt feste Zeitintervalle vor, die durch Interrupt gezählt werden Werden innerhalb des Intervalls (z.b. 50 ms) Taster mehrmals gedrückt, nur 1 Tastendruck zählen Beispielcode (teil3_taster3): while(1) // Endlosschleife { // Wenn timer mehr als CNTDEBOUNCE mal ausgelöst hat if(gkeycounter > CNTDEBOUNCE && gkeycounter < CNTREPEAT) { gkeycounter = CNTREPEAT; PORTD = 0x1; // LED einschalten _delay_ms(dlyled); // Warten PORTD = 0x0; // LED ausschalten PORTL++; // Hochzählen } } Datum Fachbereich Physik Institut für Kernphysik C-Kurs 10

Aufgaben DIP-Schalter abfragen und auf LEDs abbilden Einfachen Taschenrechner programmieren Ein Taster zählt hoch, einer herunter, der dritte führt die Operation aus, die über DIP-Schalter eingestellt wird, Ergebnis auf 8 LED Tipp: Taster des MK3 prellen nicht merklich Ampel -Steuerung programmieren (Timer + 3 LED) Datum Fachbereich Physik Institut für Kernphysik C-Kurs 11