Anschluss von Peripherien Jiri Spale, Programmierung eingebetteter Systeme 1
|
|
- Valentin Biermann
- vor 5 Jahren
- Abrufe
Transkript
1 Anschluss von Peripherien 2008 Jiri Spale, Programmierung eingebetteter Systeme 1
2 Tastenmatrix Anschluss von vielen Tasten zyklische Abfrage im Zeitmultiplexverfahren Anordnung der Tasten: m x n Matrix, angestrebt: m n Spaltentreiber Spaltentreiber = Ausgabeport Zeilerleser = Eingabeport pullupwiderstände: extern oder intern (zuschaltbar in MCU) Zeilenleser netx: interne nichtzuschaltbare pulldownwiderstände!!! Erkennung von max. 2 Tasten! (braun=log.0) 2008 Jiri Spale, Programmierung eingebetteter Systeme 2
3 Abfrage mit Interrupts #1 1. PIOs des Spaltentreibers auf log.0 2. Taste gedrückt Int durch log.0 ausgelöst, ISR startet. Für jeden EingangsPIO eigene ISR Bei MCUs mit Tiefschlafmodus sogar ruhestrome Abfrage möglich (Fernbedienungen): Erst durch Int weckt der MCU aus dem Schlaf und startet den Oszi 2008 Jiri Spale, Programmierung eingebetteter Systeme 3
4 Abfrage mit Interrupts #2 3. PIOs des Spaltentreibers gehen in log.1 4. Abfrage beginnt: PIO1 PIO2 PIO3 PIO4 5. Taste erkannt 6. Erkennen des Loslassens aller Tasten: Alle PIOs der Spaltentreibers log.0 Losgelassen:alle PIOs des Zeilentreibers log.1 Während der Abfrage müssen andere PIOs des Spaltentreibers hochohmig sein (keine harte log. 1), oder müssen in Einganbemodus geschaltet werden Treiberausgänge darf man nicht kurzschließen 2008 Jiri Spale, Programmierung eingebetteter Systeme 4
5 2 gedrückte Tasten erkennen a) Beide Tasten in einer Spalte: mehr als 1 Zeile aktiv b) Beide Tasten in einer Zeile: fortwährende Spaltenabfrage c) 2 Zeilen und 2 Spalten aktiv: 2 Tasten können noch erkannt werden, eine 3. Taste nicht mehr Bsp: (2,2) und (3,3) gedrückt Falls die 3. Taste (2,3) oder (3,2) wäre, könnte sie nicht erkannt werden, da Spalte 2 und 3 sowir Zeile 2 und 3 kurzgeschlossen 2008 Jiri Spale, Programmierung eingebetteter Systeme 5
6 3 beliebige Tasten gleichzeitig Entkopplungsdioden Keine Kurzschlüsse durch mehrfache Tastendrücke möglich Ein reines Ausgabeport als Spaltentreiber möglich (tristate unnötig) In der Software kann entschieden werden, ob tatsächlich alle Tastenkombinationen ausgewertet werden 2008 Jiri Spale, Programmierung eingebetteter Systeme 6
7 Bei zu wenig PIOs Abfrageschema wie oben, nur dass Die gerade aktivierte Spalte immer als aktive Zeile zurückkommt. Folge: Sie muss ausmaskiert werden. Nur die restlichen Spalten dürfen Ausgewertet werden Verzicht auf Hauptdiagonale Begrenzungen: Nur 1 Taste kann erkannt werden Schlafmodus geht nicht 2008 Jiri Spale, Programmierung eingebetteter Systeme 7
8 Bei zu wenig PIOs ohne Dioden Zwischen jeder Kombination von Portpins sowie nach Masse gibt es genau 1 Taste Zustände: 1. Keine log.0 geschickt: 1 Taste der 1. Spalte kann erkannt w. 2. Log.0 auf die 1 Zeile geschickt: 1 Taste der 2. Spalte kann erkannt w. 3. usw. Verzicht auf halbe Matrix Begrenzungen: Nur 1 Taste kann erkannt werden Schlafmodus geht nicht 2008 Jiri Spale, Programmierung eingebetteter Systeme 8
9 Entprellung Mechanische Schalter "prellen" beim Ein und Ausschalten. Zur Beseitigung gibt es unterschiedliche Ansätze 2008 Jiri Spale, Programmierung eingebetteter Systeme 9
10 HardwareEntprellung Möglichkeiten z.b. Tiefpassfilter mit nachgeschaltetem SchmittTrigger Umschaltkontakt RSFlipflops (aus zwei NANDGattern) Der Schalter muss vom Typ "nicht kurzschließend" sein Jiri Spale, Programmierung eingebetteter Systeme 10
11 SoftwareEntprellung: Flankenerkennung#1 Bei einem Taster gibt es insgesamt 4 Zustände: 1. war nicht gedrückt und ist nicht gedrückt 2. war nicht gedrückt und ist gedrückt (steigende Flanke) 3. war gedrückt und ist immer noch gedrückt 4. war gedrückt und ist nicht mehr gedrückt (fallende Flanke) Diese einzelnen Zustände lassen sich jetzt bequem abfragen/durchlaufen. Die Entprellung geschieht dabei durch die ganze Laufzeit des Programms Taster als ActiveLow angeschlossen, PullUps genutzt Jiri Spale, Programmierung eingebetteter Systeme 11
12 Flankenerkennung #2 für den Zustand "steigende Flanke" wird Wert "1" zurückgegeben, sonst "0" char taster(void) { static unsigned char zustand; char rw = 0; //Taster wird gedrueckt (steigende Flanke) if(zustand == 0 &&!(TASTERPORT & (1<<TASTERBIT))) { zustand = 1; rw = 1; } //Taster wird gehalten else if (zustand == 1 &&!(TASTERPORT & (1<<TASTERBIT))) { zustand = 2; rw = 0; } //Taster wird losgelassen (fallende Flanke) else if (zustand == 2 && (TASTERPORT & (1<<TASTERBIT))) { zustand = 3; rw = 0; } //Taster losgelassen else if (zustand == 3 && (TASTERPORT & (1<<TASTERBIT))) { zustand = 0; rw = 0; } return rw; } 2008 Jiri Spale, Programmierung eingebetteter Systeme 12
13 SWEntprellung: Warteschleifenverfahren /* Einfache Funktion zum Entprellen eines Tasters */ UINT8 debounce(volatile UINT8 *port, UINT8 pin) { if (! (*port & (1<<pin)) ){//Falls Pin auf Masse gezogen,100ms warten _delay_ms(100); if ( *port & (1 << pin) ){ //Falls Pin wieder high, warten /* Anwender Zeit zum Loslassen des Tasters geben */ _delay_ms(100); return 1; } } return 0; } int main(void) { PORTCONF &= ~( 1 << PB0 ); // PIN PB0 auf Eingang (Taster) if (debounce(&pinb, PB0)) // Falls Taster an PIN PB0 gedrueckt.. PORTD = PIND ^ (1<<PD7);//..LED an Port PD7 an bzw. ausschalten } 2008 Jiri Spale, Programmierung eingebetteter Systeme 13
14 SWEntprellung: Interruptverfahren Schnell, kurzer Code, zuverlässig ISR( TIMER0 ) // every 10ms { static UINT8 ct0, ct1, rpt; UINT8 i; TCNT0 =... // preload for 10ms i = key_state ^ ~KEY_PIN; // key changed? (^ XOR) ct0 = ~( ct0 & i ); // reset or count ct0 ct1 = ct0 ^ (ct1 & i); // reset or count ct1 i &= ct0 & ct1; // count until roll over? key_state ^= i; // then toggle debounced state key_press = key_state & i; // 0>1: key press detect if( (key_state & REPEAT_MASK) == 0 ) // check repeat function rpt = REPEAT_START; // start delay if( rpt == 0 ){ rpt = REPEAT_NEXT; // repeat delay key_rpt = key_state & REPEAT_MASK; } } 2008 Jiri Spale, Programmierung eingebetteter Systeme 14
15 7SegmentLEDs Ziffernkodierung z.b // // // // // // // // // // 9 Zeitmultiplexverfahren via Warteschleifen oder Interrupts Ganze Ziffern mit log.0 aktiviert, einzelne Segmente ebenfalls mit log.0. Flackern vermeiden: ganze Zahl min. 50 mal pro Sekunde wiederholen Empfohlen: alle 4 ms zur nächsten Anzeigestelle weiterschalten 2008 Jiri Spale, Programmierung eingebetteter Systeme 15
16 Schrittmotoren Arten: Bipolar 4 Anschlüsse (mittlere Anschl. nicht vorhanden) Unipolar 6 Anschlüsse Im Bild: 1 Schritt=90, 4 Vollschritte oder 8 Halbschritte für ganze Umdrehung Oft: 1 Schritt = 1,8, 200 Vollschritte oder 400 Halbschritte pro Umdrehung Im Praktikum: 1 Schritt = 0,9, 400 Vollschritte oder 800 Halbschritte pro Umdrehung Oft eingesetzt: Robotik 2008 Jiri Spale, Programmierung eingebetteter Systeme 16
17 Schrittmotoren: Arten 2008 Jiri Spale, Programmierung eingebetteter Systeme 17
18 Bipolare Schrittmotoren: Ansteuerung Voll A B C D Schritt 1 Schritt 2 Schritt 3 Schritt 4 Halb A B C D Schritt 1 Schritt 2 Schritt 3 Schritt 4 Schritt 5 Schritt 6 Schritt 7 Schritt Jiri Spale, Programmierung eingebetteter Systeme 18
19 Unipolare Schrittmotoren: Ansteuerung Voll A B common C D common Schritt 1 Schritt 2 Schritt 3 Schritt Jiri Spale, Programmierung eingebetteter Systeme 19
20 CSpezialitäten für embedded Welt #1 Modifizierervolatile Benutzung: volatile typ name; Mitteilung an Compiler: Variable name kann durch Ereignisse außerhalb der Kontrolle des Programms verändert werden kann, z.b. Lesen von Ports. volatilevariablen werden: vor jedem Zugriff neu aus dem Hauptspeicher eingelesen CompilerOptimierung bei volatile abgeschaltet Zwischenspeicherung von volatilevariablen in Registern (was sonst den Ablauf beschleunigt) ist verboten 2008 Jiri Spale, Programmierung eingebetteter Systeme 20
21 CSpezialitäten für embedded Welt #2 #define Direktive mit Argumenten (genannt auch Makro) #define POKE(addr, val)(*(volatile unsigned int *)(addr) = (val)) Bsp. Präprozessorbefehl POKE (REG1, 0xFFEFU) (U für unsigned) wird ersetzt durch *(volatile unsigned int *)REG1 = 0xFFEFU Bedeutet: REG1 ist Zeiger, gecastet in volatile unsigned int * Die Dereferenz von diesem Zeiger erhält neuen Wert von 0xFFEFU Ähnlich: #define POKE_AND(addr,val)(*(volatile unsigned int*)(addr)&=(val)) #define POKE_OR(addr,val)(*(volatile unsigned int*)(addr) =(val)) #define PEEK(addr)(*(volatile unsigned int*)(addr)) 2008 Jiri Spale, Programmierung eingebetteter Systeme 21
22 CSpezialitäten für embedded Welt #3 Datentypen benutzt vom StartEasy Für Registeradressen: #define REG8 (volatile unsigned char*) #define REG16 (volatile unsigned short*) #define REG32 (volatile unsigned int*) Für Registerwerte: #define UI32 unsigned int 2008 Jiri Spale, Programmierung eingebetteter Systeme 22
23 CSpezialitäten für embedded Welt #4 Bitmanipulationen ites Bit von rechts im Register REG löschen (andere Bits unverändert): POKE_AND(REG, ~(1 << i)); oder *REG &= ~(1 << i)); ites Bit von rechts im Register REG setzen (andere Bits unverändert): POKE_OR(REG, 1 << i); oder *REG &= 1 << i; 2008 Jiri Spale, Programmierung eingebetteter Systeme 23
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
MehrU5-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
MehrGdI2 - 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
MehrEingaben. Themen heute. Taster. Eingaben Zuweisungen Zeitmessung. Programmieren für Ingenieure Sommer Andreas Zeller, Universität des Saarlandes
Eingaben Programmieren für Ingenieure Sommer 2015 Andreas Zeller, Universität des Saarlandes Themen heute Eingaben Zuweisungen Zeitmessung Taster Wikipedia Ziel Wenn Taste gedrückt, soll LED leuchten Wir
MehrProjektarbeit in DVT auf dem Entwicklerboard
Projektarbeit in DVT auf dem Entwicklerboard OUMEX AVR-USB-162 von Michael Eggl, Markus Vogl 1 FROM 8 Version 1.0 Seite 1 von 7 Inhaltsverzeichnis: Aufgabenstellung Seite 3 Planung Seite 3 Quellcode Seite
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!
MehrBisher hatten immer nur als Ausgänge geschaltet und hierfür folgende Befehle benutzt:
Tasten abfragen Bisher hatten immer nur als Ausgänge geschaltet und hierfür folgende Befehle benutzt: pinmode(pinnummer, OUTPUT) digitalwrite(pinnummer, HIGH) oder digitalwrite(pinnummer, LOW) Zum Abfragen
MehrMikrocontrollerplatine vorbereiten
Mikrocontrollerplatine vorbereiten Aufgabe B1 Verbinden Sie einen Tastschalter mit dem Anschluss PD2 und eine Leuchtdiode mit dem Anschluss PD6 (Vorwiderstand nicht vergessen!). Teil B Timer 1 Mikrocontrollerplatine
MehrIR NEC Empfänger mit 4x7 LED Anzeige (ATtiny2313)
// Include C Libriaries #include #define F_CPU 4000000UL #include #include #include #include // Definition der Segmente #define SEG_O
MehrKompilieren Datentypen Operatoren. Überblick. 1 Kompilieren. 2 Datentypen. const static volatile. 3 Operatoren. Alexander Batoulis
Überblick 1 2 const static volatile 3 Überblick 1 2 const static volatile 3 eines C Programmes bevor Programm ausführbar ist, muss es von Compiler in Maschinensprache übersetzt werden Neben Compiler werden
Mehrby AS playground.boxtec.ch/doku.php/tutorial Multitasking 4
www.boxtec.ch by AS playground.boxtec.ch/doku.php/tutorial + Copyright Sofern nicht anders angegeben, stehen die Inhalte dieser Dokumentation unter einer Creative Commons - Namensnennung- NichtKommerziell-Weitergabe
MehrDie Software zum Unser kleiner Computer
Die Software zum Unser kleiner Computer '-------------------------------------------------------------------------------- 'name : computer.bas 'copyright : (c)bernd Grupe, DF8ZR 'micro : Mega8 ' Das Programm
MehrU5 Fortgeschrittene AVR-Programmierung U5 Fortgeschrittene AVR-Programmierung. Synchronisation mit Unterbrechungsbehandlungen
U5 Fortgeschrittene AVR-Programmierung U5 Fortgeschrittene AVR-Programmierung Interrupts volatile-variablen Synchronisation mit Unterbrechungsbehandlungen Stromsparmodi des AVR U5.1 U5-1 Externe Interrupts
MehrU2 Fortgeschrittene AVR-Programmierung. U2-1 Externe Interrupts des AVR-μC. 1 Flanken-/Pegel-Steuerung. 1 Flanken-/Pegel-Steuerung (2) 2 Maskieren
U Fortgeschrittene AVR-Programmierung U Fortgeschrittene AVR-Programmierung U-1 Externe Interrupts des AVR-μC Aufgabe Interrupts volatile-variablen Synchronisation mit Unterbrechungsbehandlungen Stromsparmodi
MehrStopp-Uhr. Erstellen Sie ein Programm (in Zweier- bzw. Dreier-Gruppen), welches folgende Bedingungen erfüllt:
Inhalt Aufgabenstellung... 1 Lösung... 2 System (Kontextdiagramm)... 2 Zustands-Übergangs-Diagramm... 2 Codeierung... 4 Main-Module... 4 Module-Button... 6 Module Timer... 8 Anhang... 12 Datenflussdiagramm...
MehrArduino für FunkAmateure
Arduino für FunkAmateure Arduino Einführung Teil 9 Taster-Platine 4x4 Wie gehe ich am besten vor? 1. Was will ich machen? 2. Bauteile 3. Überlegungen zur Schaltung und Algorithmus 4. Zuordnung Arduino-Pins
MehrPIC16 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
MehrLED Skalenbeleuchtung mit einem Arduino
Projektteil: LED Skalenbeleuchtung mit einem Arduino Aufgaben: - Ein Taster schaltet die LED-Beleuchtung ein - Nach Ablauf einer im Programm hinterlegten Zeit schaltet sich die Beleuchtung von selbst wieder
MehrRichtung durch Taster während des Ablaufs umschaltbar
U16 Aufgabe 5 U16 Aufgabe 5 Besprechung Aufgabe 3 Notation AVR-Timer Umgang mit mehreren Interruptquellen Arbeiten mit einer diskreten Zeitbasis U16.1 Alle LEDs einschalten, dann in gleicher Reihenfolge
MehrInhalt. Aufgabe 4: LED-Modul Hinweise Testen des Moduls Sommersemester 2015
Übungen zu Systemnahe Programmierung in C (SPiC) Peter Wägemann, Sebastian Maier, Heiko Janker () Übung 4 Ablauf vom Quellcode zum laufenden Programm Active-high & Active-low Hinweise Sommersemester 2015
MehrForth-Vokabular. Vokabular für Attiny2313-Forth Stand: A: Assembler-Wort F: Forth-Wort C: Compiler-Wort
Vokabular für Attiny2313-Forth - 1 - Forth.voc Forth-Vokabular Stand: 01.11.2012 A: Assembler-Wort F: Forth-Wort C: Compiler-Wort. A gibt TOS auf Port B aus; (Datenrichtungsbits von Port B werden alle
Mehrd) Was passiert, wenn das folgende Programmstück übersetzt und ausgeführt
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
MehrLotto. eine Projektarbeit in DVT. von Sven Schwab
Lotto eine Projektarbeit in DVT von Sven Schwab IAV 2 Nürnberg, den 21.07.2010 Agenda 1) Idee 2) Projektbestandteile - Software - Hardware 3) Projektdetails - Ablauf - Fehler die auftreten können 4) Quellcode
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
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
MehrInhalt. Ü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
MehrMakros 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
MehrU5 Fortgeschrittene AVR-Programmierung
U5 Fortgeschrittene AVR-Programmierung U5 Fortgeschrittene AVR-Programmierung Interrupts Synchronisation mit Unterbrechungsbehandlungen Stromsparmodi des AVR U5.1 U5-1 Externe Interrupts des AVR-μC U5-1
MehrMicrocontroller 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
MehrAVR 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
MehrPraktikum Programmieren in Eingebetteten Systemen
Praktikum Programmieren in Eingebetteten Systemen Versuch: Ansteuerung eines Schrittmotors Autor: Christian Kolinski 1 Lernziele dieses Versuchs Hardwarenahe Programmierung von Timern Interrupt und Interruptroutinen
MehrWiederholung: Zugriff auf AVR-Prozessor-Register. Aufgabe 3: 7seg-Modul der SPiCboard-Bibliothek
U4 4. Übung U4 4. Übung Wiederholung: Zugriff auf AVR-Prozessor-Register Wiederholung: I/O-Ports Hexadezimalzahlen Überblick: Modulare Softwareentwicklung Aufgabe 3: 7seg-Modul der SPiCboard-Bibliothek
MehrVorbereitung. 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
MehrZeiger vom Typ (void *) sind am besten für Zeigerarithmetik geeignet, da sie kompatibel zu jedem Zeigertyp sind.
Aufgabe 1: (18 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
MehrProjektarbeit aus der Datenverarbeitung. Lotto. von: Hubert Schlenk Olimex AVR USB 162 Entwicklerboard Hubert Schlenk
Projektarbeit aus der Datenverarbeitung Lotto von: Hubert Schlenk 21.07.2010 Olimex AVR USB 162 Entwicklerboard 2010 Hubert Schlenk Aufgabenstellung: Die Aufgabe war die Entwicklung eines kleinen Programmes
MehrSpeicheraufbau des AT89C5131
Speicheraufbau des AT89C5131 Prinzip: - getrennter Programmspeicher (ROM) und Datenspeicher (RAM) - interner Speicher (auf dem Chip) und externer Speicher (Zusatzbausteine) Das Experimentalsystem hat keinen
MehrGrundlagen der Objektorientierung :
Grundlagen der Objektorientierung : Objektorientierung ermöglicht (unter anderem), daß man Software, die von einem selbst, meist aber von Anderen geschrieben ist, komfortabel nochmal verwenden kann. Diese
MehrWS 2017/18 Viel Erfolg!!
Seite 1 von 12 Hochschule München FK03 Komponenten und Programmierung, 90 Minuten Prof. Dr.-Ing. T. Küpper Zugelassene Hilfsmittel: alle eigenen, Taschenrechner WS 2017/18 Viel Erfolg!! Matr.-Nr.: Hörsaal:
MehrInhalt. Ü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)
MehrAbbildung 4-4-1: Ein prellender Taster
HACK 4-4: Der störrische Taster 4 4 4 In diesem Hack wirst du erkennen, dass sich ein Taster oder ein Schalter nicht immer so verhält, wie du es dir wünschst. Nehmen wir für dienen Hack einen Taster, der
MehrDST EINFÜHRUNG IN MRT
DST EINFÜHRUNG IN MRT V1 (90 min) Steuerungs- und Regelungssysteme 1 DST EINFÜHRUNG IN MRT Heizungs - Regelung 2 HEIZUNGS REGELUNG 3 HEIZUNGS REGELUNG 5 5 4 1 1 => 16 x Temp. 5 x Durchflußmenge Uhrzeit
MehrStarten Sie die Arduino IDE und geben Sie den folgenden Programmcode ein:
Blinken Starten Sie die Arduino IDE und geben Sie den folgenden Programmcode ein: // Projekt 1 - LED Blinker int ledpin = 13; void setup() pinmode(ledpin, OUTPUT); void loop() digitalwrite(ledpin, HIGH);
MehrU3-1 Register beim AVR-μC. U3 3. Übung. U3-2 I/O-Ports des AVR-μC. 1 Überblick. 2 Makros für Register-Zugriffe. 1 Überblick
U3 3. Übung U3 3. Übung U3-1 Register beim AVR-μC U3-1 Register beim AVR-mC Wiederholung: Zugriff auf AVR-Prozessor-Register Wiederholung: I/O-Ports Zahlensysteme Überblick: Modulare Softwareentwicklung
MehrWiederholung: Zugriff auf AVR-Prozessor-Register. Aufgabe 3: 7seg-Modul der SPiCboard-Bibliothek
U3 3. Übung U3 3. Übung Wiederholung: Zugriff auf AVR-Prozessor-Register Wiederholung: I/O-Ports Zahlensysteme Überblick: Modulare Softwareentwicklung Aufgabe 3: 7seg-Modul der SPiCboard-Bibliothek U3.1
MehrWiederholung: Zugriff auf AVR-Prozessor-Register
U3 3. Übung U3 3. Übung Wiederholung: Zugriff auf AVR-Prozessor-Register Wiederholung: I/O-Ports Zahlensysteme Überblick: Modulare Softwareentwicklung Aufgabe 3: 7seg-Modul der SPiCboard-Bibliothek U3.1
MehrArduino 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
MehrFü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#include "C:\Users\media\Desktop\Harri\Technik\Elektronik\Projekte\Stiftuhr\Servotest\servotest\servotest.h"
/* * Stiftuhr mit PWM * Created: 16.08.2015 23:29:27 * Author: Harri * a ----- f b g ----- e c ----- d a = B4 linke Anzeige = B0 b = B3 rechte Anzeige = C0 c = C1 LED grün = D4 d = C4 LED gelb = D3 e =
MehrProgrammierü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
Mehr8.3 Taster am µcontroller
8.3 Taster am µcontroller AVR-KOMPENDIUM Nachdem im vorigen Beispiel das Port als Ausgang verwendet wurde erweitern wir dieses Beispiel um einen Taster - um auch das Einlesen von digitalen Signalen zu
MehrGrundlagen 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)
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)
MehrÜbungen zu Systemnahe Programmierung in C (SPiC)
Übungen zu Systemnahe Programmierung in C (SPiC) Sebastian Maier (Lehrstuhl Informatik 4) Übung 4 Sommersemester 2016 Inhalt Module Schnittstellenbeschreibung Ablauf vom Quellcode zum laufenden Programm
MehrGirls Day. Einführung Mikrocontroller,
Girls Day Einführung Mikrocontroller, 23.04.2015 2015 www.lancom.de Kommentare Kommentare ermöglichen eine Strukturierung und gute Dokumentierung deines Programms void setup() { // Initialisierung der
MehrProgrammieren 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
MehrWS 2016/17 Viel Erfolg!!
Hochschule München FK03 Zugelassene Hilfsmittel: alle eigenen, Taschenrechner Komponenten & Programmierung von Automatisierungssystemen Matr.-Nr.: Name, Vorname: Hörsaal: Unterschrift: Seite 1 von 11 Prof.
MehrInhalt. Übungen zu Systemnahe Programmierung in C (SPiC) Schnittstellenbeschreibung. Inhalt
Übungen zu Systemnahe Programmierung in C (SPiC) Sebastian Maier () Übung 4 Schnittstellenbeschreibung Ablauf vom Quellcode zum laufenden Programm Initialisierung eines Moduls Active-high & Active-low
MehrMicrocontroller 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
MehrINE1 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
MehrAVR-Mikrocontroller in BASCOM programmieren, Teil 2
jean-claude.feltes@education.lu 1 AVR-Mikrocontroller in BASCOM programmieren, Teil 2 13. Interrupts 13.1 Externe Interrupts durch Taster Wenn Taster mittels Polling abgefragt werden, wie in Teil 1 beschrieben,
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) Moritz Strübe, Rainer Müller (Lehrstuhl Informatik 4) Sommersemester 2014 Inhalt Interrupts Allgemein AVR Interrupt-Handler Synchronisation volatile 16-Bit-Zugriffe
MehrStudiengang Maschinenbau, Schwerpunkt Mechatronik (früher: Automatisierungstechnik) Seite 1 von 8
Studiengang Maschinenbau, Schwerpunkt Mechatronik (früher: Automatisierungstechnik) Seite 1 von 8 Hochschule München Fakultät 03 Zugelassene Hilfsmittel: alle eigenen, Taschenrechner Viel Erfolg!! Komponenten
Mehra) Welche Aussage zu Zeigern ist richtig? Die Übergabesemantik für Zeiger als Funktionsparameter ist callby-value.
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
MehrV 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
Mehrby AS playground.boxtec.ch/doku.php/tutorial Multitasking 3
www.boxtec.ch by AS playground.boxtec.ch/doku.php/tutorial + Copyright Sofern nicht anders angegeben, stehen die Inhalte dieser Dokumentation unter einer Creative Commons - Namensnennung- NichtKommerziell-Weitergabe
MehrÜ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
MehrEin- / Ausgabe- Ports
Ein- / Ausgabe- Ports Alle vier parallelen Ports sind bidirektional und bestehen aus einem 8-Bit-Special-Function- Register für die Ausgabedaten, einem Ausgangstreiber und einem Eingabepuffer. Jeder Port-
MehrAtmega 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
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.
MehrBeschaffung
Beschaffung Philosophie Alle Hardware, Software und Dokumentationen werden Lizenzfrei zur Verfügung gestellt. Grundlagen der Robotik mit einem hohen Spaßfaktor vermitteln. Für jedes Alter interessant.
MehrDokumentation Metronom
Beuth Hochschule für Technik Berlin Fachbereich VII Elektrotechnik Mechatronik Optometrie Studiengang Bachelor Elektrotechnik Dokumentation Metronom Projekt im Labor Mikrocomputertechnik Teilnehmer: Benjamin
MehrLösung Versuch Nr. 4
Digitaltechnik Praktikum 1.Sem. IIIB 1 ETHZ D-ITET Institut für Elektronik Lösung Versuch Nr. 4 1: Latches 1. RS Latch. Legen Sie ein neues Grafik Editor File rs_latch.gdf an (dieses und alle weiteren
MehrDST EINFÜHRUNG IN MRT (V2)
DST EINFÜHRUNG IN MRT (V2) Aufgabe: Reaktionstester 1. Pflichtenheft Taster an -PA0 8 LEDs an PCx LCD-Anzeige für Ergebnis Die LEDs an Port C sollten unerwartet irgendwann angehen! Jetzt wird die Zeit
MehrZähler- und Zeitgeber-Baugruppen
Zähler- und Zeitgeber-Baugruppen Sinn: häufig müssen Zeitbedingungen eingehalten werden z.b.: einige ms warten, Häufigkeit von Ereignissen zählen etc... Lösung: 1.) Zeitschleifen = Programm abarbeiten,
MehrLabor Industrielle Netzwerke. Versuch 1: Einarbeitung in die Entwicklungsoberfläche, LED und Taster
Labor Industrielle Netzwerke Versuch 1: Einarbeitung in die Entwicklungsoberfläche, LED und Taster Datum: 16.01.2018 1 Einarbeitung in die Entwicklungsoberfläche Im Labor Industrielle Netzwerke wird die
MehrU2-1 Register beim AVR- C. U2-2 I/O-Ports des AVR- C. 1 Überblick. 2 Makros für Register-Zugriffe. 1 Überblick
U2 4. Übung U2 4. Übung U2-1 Register beim AVR- C U2-1 Register beim AVR-mC Wiederholung: Zugriff auf AVR-Prozessor-Register Wiederholung: I/O-Ports Bitoperationen und Hexadezimalzahlen Überblick: Modulare
MehrBit 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
MehrNachtaktiver Blinker. Ralf Pongratz. 11. November 2012
www.reaktivlicht.de Ralf Pongratz Nachtaktiver Blinker Als Bausatz erhältlich auf www.reaktivlicht.de Nachtaktiver Blinker Ralf Pongratz 11. November 2012 Inhaltsverzeichnis I. Die Schaltung 2 1. Funktionsbeschreibung
MehrAufbau 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
Mehr5 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
MehrAufgaben 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
MehrArt.-Nr.: EI 0203 EAN-Nr.: Tasterschnittstelle 2-fach Produktdatenbank (aktuell unter
Tasterschnittstelle 2-fach Produktdatenbank (aktuell unter www.walther-werke.de) Art.-Nr.: EI 0203 EAN-Nr.: 4015609 34 64 62 Für die 2-fach Tasterschnittstelle stehen 3 verschiedene Applikationen zur Verfügung:
MehrD.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
MehrSBC ButtonMatrix Bedienungsanleitung. Verwendung mit einem Arduino Schritt 1 Anschließen der Matrix
Sehr geehrter Kunde, SBC ButtonMatrix Bedienungsanleitung MCU Extension 4x4 16-Key vielen Dank, dass Sie sich für unser Produktentschieden haben. Im Folgenden haben wir aufgelistet, was bei der Inbetriebnahme
MehrBefehlstabelle awapswitch Anwendung
Befehlstabelle awapswitch Anwendung Inhalt 1 Grundeinstellungen RS232 Extension 2 2 Grundlegende Befehlstabelle 3 2.1 Nummerierung Tasten und Leds 3 2.2 Standard Tastendruck 3 2.3 RGB LEDs ansteuern 3
MehrInhalt. Übungen zu Systemnahe Programmierung in C (SPiC) Inhalt
Übungen zu Systemnahe Programmierung in C (SPiC) Sebastian Maier (Lehrstuhl Informatik 4) Übung 2 Sommersemester 2017 Verwendung von int Sichtbarkeit & Lebensdauer Typdefs & Enums Nutzen Beispiel Schlüsselwort
MehrSystemnahe Programmierung in C Übungen Moritz Strübe, Michael Stilkerich Universität Erlangen-Nürnberg Informatik 4, 2010 U2.fm
U2 2. Übung U2 2. Übung SPiC-Boards Nachtrag zur Vorlesung Aufgabe 2 U2-1 SPiC-Boards U2-1 SPiC-Boards Es wird wieder möglich sein SPiC-Boards selber zu bauen Drei Lötabende in den Wochen nach dem Berg
MehrFriedrich-Alexander-Universität Erlangen-Nürnberg
Friedrich-Alexander-Universität Erlangen-Nürnberg Schriftliche Prüfung zu den Lehrveranstaltungen Grundlagen der systemnahen Programmierung in C (SPiC) / Informatik II im Studiengang Elektrotechnik, Elektronik
MehrDST EINFÜHRUNG IN MRT
DST EINFÜHRUNG IN MRT V1 (90 min) Projektaufbau Projekt Versuch 1.1: Gegeben ist ein Atmel uc. An PortA sind 8 Taster angeschlossen. An PortC sind 8 LEDs. Geben Sie die Taster - Information an den LEDs
MehrKlausur PHMJ02 SS2012. Mikrocontroller und Robotik. Mittwoch GUTEN ERFOLG!!!
Universität Koblenz Landau Name: Musterlösung Institut Naturwissenschaften Vorname:... Abteilung Physik Matr. Nr.:... Studiengang:... Klausur PHMJ02 SS2012 Mikrocontroller und Robotik Mittwoch 15.8.2012
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
Mehr7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter});
S. d. I.: Programieren in C Folie 7-1 7 Funktionen 7.1 Definition Prototyp-Syntax: Speicherklasse Typ Name (formale Parameter); der Funktions-Prototyp deklariert eine Funktion, d.h. er enthält noch nicht
MehrGrundlagen 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)
MehrSystem-Makro in time.h : #define CLOCKS_PER_SEC 1000 Frühere Makro-Bezeichnung (z.t. noch gebräuchlich): #define CLK_TCK CLOCKS_PER_SEC//aus:time.
Timer Zeit-Abfragen in C: System-Makro in time.h : #define CLOCKS_PER_SEC 1000 Frühere Makro-Bezeichnung (z.t. noch gebräuchlich): #define CLK_TCK CLOCKS_PER_SEC//aus:time.h Zwei C-Anweisungen: /*Rechenzeit
MehrPraktikum Mikrorechner 11 (Timer 1)
Prof. G. Kemnitz Institut für Informatik, Technische Universität Clausthal 5. November 2014 1/27 Praktikum Mikrorechner 11 (Timer 1) Prof. G. Kemnitz Institut für Informatik, Technische Universität Clausthal
MehrÜ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