Praktikum DST (MRT Teil) 2. Termin

Ähnliche Dokumente
Praktikum DST (MRT Teil) 1. Termin

Girls Day 2018 Programmiereinführung

Da der Mikrocontroller mit den internen Timern sehr genau Zeiten messen kann, entschieden wir uns für die Zeitmessung.

- 1 - FA 205. Technische Richtlinien für Unterricht und Prüfung. Festlegung wichtiger Begriffe Stand 04. März 2016

V cc. 1 k. 7 mal 150 Ohm

DST EINFÜHRUNG IN MRT

DST EINFÜHRUNG IN MRT

Einführung DIP & AVR EVK1100

USB-Display...eine einfache Verbindung zum PC

1. Allgemein Technische Daten... 2

Klausur. 2. Aufgabe (3 Punkte) Ergänzen Sie die leeren Zellen derart, dass sich in einer Zeile die selben Zahlenwerte ergeben.

Aufbau eines Assembler-Programms

Informatik. Wiederholung Felder (Arrays), string. Vorlesung

Warum dieses Projekt

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

Abend 4 Übung : Erweitern von Klassen durch Vererbung

Mikrocontrollerplatine vorbereiten

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

Wiederholung, Abbruch von Schleifen, switch-anweisung Datentypen, char, formatierte Ausgabe

Arduino Kurs Das LC-Display. Stephan Laage-Witt FES Lörrach

Ziele sind das Arbeiten mit Funktionen (Modularisierung, Parameterübergabe), sowie - Reihentyp (Array)

Versuch 3: Kamera 1. In diesem Programm sind die grundlegenden Funktionen der Kamera schon implementiert. Diese Funktionen sind:

Ansteuerung eines LCD-Screens

Vorbereitung. Teil D Analog-Digital-Wandler 1

i2c-bus.de ASCII ZEICHEN AUF DEM HYPERTERMINAL Übungsaufgabe RS232 Schnittstelle Dokument NR.: AB-001-U-01

IR NEC Empfänger mit 4x7 LED Anzeige (ATtiny2313)

LCD-Ansteuerung mit MikroForth

*** Viel Erfolg! ***

HelvePic32 Breadboard. Internet Data Logger

Musteraufgaben für die Semesterendprüfung

GI Vektoren

5 Funktionsbibliothek für den Controller XMC1100

Arduino µcontroller. Virtuelle COMSchnittstelle

Anwendung und Programmierung von Mikrocontrollern. Anwendung und Programmierung von Mikrocontrollern

Mikrocomputertechnik

MODUL 3 Bedienung der seriellen Schnittstelle und der LCD-Anzeige

Praktikum Ingenieurinformatik. Termin 5. Felder (Vektoren, Arrays), verschachtelte Schleifen

Mit dieser kleinen Adapter-Platine können HD44780 kompatible LCD-Displays am I2C-Bus betrieben werden.

Lesen Sie alle Aufgabenstellungen sorgfältig durch, bevor Sie mit der Bearbeitung der ersten Aufgabe beginnen.

Umgebung, Ein- und Ausgabe

KR-mega32-16 rev. 2.3 Thomas Krause, Krause Robotik

C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen. Leibniz Universität IT Services Anja Aue

Anwendung höherer Programmiersprachen. Formatierte Ausgabe mit cout. Angewandte Informatik I C / C++ Teil B: Formatierte Ein- und Ausgabe

Anleitung Währungsrechner

AVR UART. ELV Modul: ch=&marke=

Erste Gehversuche mit ARDUINO (DL6OAA)

1995 Martin Professional GmbH Technische Änderungen vorbehalten. Martin 2504 Controller Bedienungsanleitung

Objektorientierung Grundlagen

Programmiersprachen Einführung in C

Warum dieses Projekt

Beispiel. Echo-Anwendung. Beispiel Echo Anforderungen. Benutzer stellt Konfiguration der seriellen Schnittstelle am PC ein (z.b. über Hyperterminal)

Dieses Tutorial ist für absolute Einsteiger gedacht und zeigt die Installation der notwendigen Software und aller Einstellungen von Anfang an.

myavr Klassendiagramm der UML mit SiSy-AVR Schnelleinstieg für myavr Board MK3

Serielles LCD-Display PL0045

2. Aufgabe (3 Punkte) Ergänzen Sie die leeren Zellen derart, dass sich in einer Zeile die selben Zahlenwerte ergeben.

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

myavr Programmierung in C

Serielle Schnittstelle, erstes Testprogramm (a)

Inhaltsverzeichnis. Vorwort NXTundNXC DerNXT NXC Not exactly C Compiler Zusammenfassung 17

by AS playground.boxtec.ch/doku.php/tutorial Bus Modul I 2 C - Display 2 BM Display 2

Lösung 8051er. Bussysteme IIC - Bus. Klasse:... Datum:...

Programmieren des ESP8266 mit OLED

Microcontroller Praktikum SS2010 Dipl. Ing. R. Reisch

PIC16 Programmierung in HITECH-C

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

Beschreibung Modell Motorspindel

Übung Notendarstellung

C.1 Serielle Schnittstelle, erstes Testprogramm (a)

4 Formelsammlung C/C++

*** Viel Erfolg! ***

Erste Java-Programme (Scopes und Rekursion)

Einführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz

Displaysteuerung: ATmega32u4. HTL St.Pölten. EL Autor: Kuran. Displaysteuerung Fachspezifische Softwaretechnik 2

Roboter programmieren mit NXC für LEGO MINDSTORMS NXT

Informatik 1 für Nebenfachstudierende Beispiele für Klausuraufgaben

Eine Mini-Shell als Literate Program

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.

Sollte der angeschlossene PC keine serielle COM-Schnittstelle haben erscheint eine Meldung. In diesem Falle installieren Sie ein USB COM Interface.

Aufgabenblatt 3. Kompetenzstufe 1. Allgemeine Informationen zum Aufgabenblatt:

Lotto. eine Projektarbeit in DVT. von Sven Schwab

Praktikum Ingenieurinformatik. Termin 6. Mehrdimensionale Felder, Kurvendarstellung mit Excel

Starten Sie die Arduino IDE und geben Sie den folgenden Programmcode ein:

Teil 5: Zeiger, Felder, Zeichenketten Gliederung

Musterlösung: 12. Jgst. 2. Kursarbeit Datum: Fach: Informationsverarbeitung (LK)

Variablen, Konstanten und Datentypen

Übungsblatt 1. Java Vorkurs (WS 2017)

Erste Schritte der Programmierung in C

Algorithmen und Datenstrukturen Sommersemester Übung Abgabe bis , 10:00 Uhr

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

Hochschule Darmstadt Informatik-Praktikum WS 2017/2018 WIng Bachelor 6. Aufgabenblatt Zeiger, verkettete Liste, Dateieingabe und -ausgabe

Softwarebibliothek für KR-mega32-16 V 2.3 Thomas Krause, Krause Robotik

Informatik I (D-ITET)

Programmierübungen in Assembler

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

C++ mit dem Arduino (Uno und Mega2560)

Transkript:

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 (RS232)... 4 2.3 Entwickeln Sie ein Uhr... 5 2.4 Uhrzeiteinstellung mittels Taster (wie Armbanduhr)... 5! LCD- und V24- Software ist noch nicht voll auf Statemachines umgestellt => Aufrufe nur von main()-endlosschleife, also nicht durch Timer-Interrupts aufrufen! 161020_Praktikum_2_DST_MRT.doc 1 of 5 2016 Zielinski

20.10.2016 2. Termin Praktikum DST (MRT Teil) 2.1 LCD Anzeige ( 2_01_LCD und Taster) Neues Projekt 2.1 aus 1.4: Für viele Projekte und zur besseren Fehlerfindung sind Ausgabeeinheiten sinnvoll. Auf dem Board ein 4-zeiliges Displays implementiert! Fügen Sie die beiden Routinen aus P: LCD.c und LCD.h in Ihr neues Projekt 2_01_LCD&Taster ein! Fügen Sie in main.c die Zeile #include LCD.h und im Initialisierungsteil die Zeile LCD_init(LCD_DISP_ON, ); ein. Nach Programmierung des Controllers sollte o.ä. in der 1. Zeile des LCD-Displays erscheinen. Die Software von Aufgabe 1.4 sollte immer noch funktionieren! Schreiben Sie ab dieser Aufgabe immer die Aufgabennummer in die 1.Zeile des Displays mit: #define Header A2.1 und LCD_init(LCD_DISP_ON,Header); Realisieren Sie folgende Anzeige in LCD_Ausgabe.c und LCD_Ausgabe.h: P(0,0) T3 T2 T1 T0 P(15,3)!! LCD-Ausgaben in der Endlos-Schleife aus main.c als Funktion LCD_Ausgabe(); aufrufen!!!! Nicht in Zeit-Statemachines aufrufen (dauert zu lange => System kackt ab!)!! Definieren Sie die Konstante PI (#define PI 31415) // als Int * 10000 Geben Sie die Zahl PI an Pos. 5,1 mit 4 Nachkommastellen aus! [ PI= 3,1415] (LCD_putif();) Geben Sie die Zahl PI an Pos. 5,2 mit 4 Nachkommastellen negativ aus! [-PI=-3,1415] Geben Sie die Tastenzählwerte von T1 an Pos 9,3 und T0 an 13,3 aus (LCD_puti();)! LCD_init(uint8_t dispattr,const char *Title); // s.o. void LCD_clrscr(void); // Löscht Display void LCD_home(void); // Cursor an Pos. [0,0] void LCD_gotoxy(uint8_t x, uint8_t y); // Spalte 0-15 Zeile 0-3 void LCD_putc(char c); // Gibt char aus void LCD_puts(const char *s); // Gibt String aus hallo Welt void LCD_puti(int zahl, int sges); // Zahl mit sges Stellen ausgeben void LCD_putif(int zahl, int sges, int floats); // Zahl als float mit sges Ziffern // und floats Nachkommastellen // Vorzeichen fügt eine Stelle hinzu void LCD_putb(uint8_t a); // uint8 als Binärzahl mit 8 Stellen Weitere LCD-Funktionen finden Sie am Ende der Datei LCD.h. 2016 Zielinski 2 of 5 161020_Praktikum_2_DST_MRT.doc

2.1b Anhang: ASCII Code Tabelle (LCD-Display: Displaytech 164A) 161020_Praktikum_2_DST_MRT.doc 3 of 5 2016 Zielinski

20.10.2016 2. Termin Praktikum DST (MRT Teil) 2.2 V24-Datenschnittstelle (RS232) Neues Projekt 2_02_V24_Out aus 2.1: Zur Kommunikation über die V24-Schnittstelle müssen wir die Terminalemulation WINTERM starten (siehe rechts). Das Einlesen von V24-Inputdaten geschieht über Interrupt mit einem Ringpuffer [siehe V24.h], es kann also nichts verloren gehen! Am PC Verbinden Sie den V24-Kabel mit dem linken Anschluss des MC-Boards. Fügen Sie die beiden Files V24.h und V24.c in Ihr Projekt ein. V24_init_intr(9600, 16000000, ); // 9600 Baud bei // 16Mhz Takt Der Text auf der Terminalemulation erscheinen. o.ä., sollte Ändern Sie die Headerdefinition und fügen Sie auch in der V24-Initialisierung Ihre Aufgaben Nr. ein. #define Header "A 2.2" // allg. gültige Definitionen => main.h V24_init_intr(9600, 16000000, Header); // Sonderzeichen ANSI-C \t = Tabulator \r = neue Zeile (Trennzeichen zwischen den Daten soll der Tabulator \t sein, damit EXCEL die Daten später auswerten kann! Wenn Sie nun das Programm in den Controller laden müsste, im WINTERM-Fenster, der Header ausgegeben werden. Geben Sie die LCD-Ausgaben jetzt auch über die V24-Schnittstelle aus. V24_Ausgabe(); in V24_InOut.c und V24_InOut.h! Die V24-Routinen sind kompatibel zu den LCD-Routinen (nur gotoxy(); gibt es natürlich nicht)! Beseitigen Sie den Ausgabefehler (wird viel zu schnell ausgegeben s.u.) und formatieren Sie die Zeile! Ausgabe jede Sekunde: ++V24_sek_um; // in int1hz() einfügen ------------------------------------------------------------------------------------------------ if(v24_sek_um!= 0) { // in V24_Ausgabe() --V24_sek_um; // Sekunde ist um V24_... // Alle Ausgaben } // fertig Ausgabe : T3= 003 T2= 002 T1= 002 T0= 000 PI= 3,1415 -PI= -3,1415 2016 Zielinski 4 of 5 161020_Praktikum_2_DST_MRT.doc

2.3 Entwickeln Sie ein Uhr Neues Projekt 2_03_Uhr_1 aus 2.2: Zeigen Sie die Uhrzeit (Start mit 23:59:54) vor den Daten an! Auf dem LCD-Display ab Position (8,0), V24-Ausgabe: A2.3 23:59:54 T3 = 010 T2 = 003... Neue Funktion UHR_Mathe(); in UHR.c und UHR.h. Ausgaben als V24_Ausgabe_Uhr(); und LCD_Ausgabe_Uhr(); in V24_InOut.c bzw. LCD_Ausgabe.c. Daten in: unsigned char UHR_Stunde, UHR_Minute, UHR_Sekunde;. LCD-Display: V24 Display: void V24_Ausgabe_Uhr(void)! void LCD_Ausgabe_Uhr(unsigned char x, unsigned char y) bzw. 2.4 Uhrzeiteinstellung mittels Taster (wie Armbanduhr) Neues Projekt 2_04_Uhr_mit_Tasten aus 2.3. Erweitern Sie Ihre 2-Tasten Statemachines auf alle 4 Tasten mit entsprechenden Ausgaben. V24-Ausgabe: A2.4 00:01:28 T3 = 010 T2 = 005 T1 = 005 T0 = 005 LCD-Ausgabe: T3 T2 T1 T0 A3 = fertig A2=nächste Stelle A1= -1 A0 = +1 Schreiben Sie die Funktion UHR_init_4_Tasten(); (aus Ordner P:) im File UHR.c. Rufen Sie die Funktion als letzte Initialisierungsfunktion im main(); auf. Die Cursor-Blinkfrequenz beträgt ca. 1Hz. Damit man den Cursor sehen kann, sollte die neue Routine: void LCD_A_Uhr_C(unsigned char x, unsigned char y, unsigned char cdx); // cdx Cursor dx zu x nur aufgerufen werden, wenn eine Taste betätigt wurde. Der Cursor blinkt LCD_command(LCD_DISP_ON_BLINK); auf dem LCD-Display an der Stundenzahl. Blinken aus: LCD_command(LCD_DISP_ON);. Mit T1(T0) kann jetzt die Stunde eingestellt werden. Mit T2 wird zu den Minuten geschaltet dann zu den Sekunden und wieder die Stunden. T3 übernimmt die eingestellte Zeit, startet die Uhr und beendet die Uhrzeiteinstellung für immer. Ist die Uhrzeit einmal eingestellt kann sie vorerst nicht mehr nachgestellt werden! - Ende Termin 2-161020_Praktikum_2_DST_MRT.doc 5 of 5 2016 Zielinski