• Keine Ergebnisse gefunden

Praktikum 3./9./10. November 2011

N/A
N/A
Protected

Academic year: 2021

Aktie "Praktikum 3./9./10. November 2011"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Praktikum 3./9./10. November 2011

Jörn Loviscach

Versionsstand: 3. Januar 2012, 19:37

This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Germany License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/de/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.

In diesem Praktikum soll ein Zahlenschloss programmiert werden.

Das C-Projekt basiert auf der kleinen Funktionsbibliothek, die aus display.c und display.h besteht. Die Funktionsnamen und -parameter sollten weitgehend selbst- erklärend sein. Von besonderem Interesse sind:

void initialize(void);

void writeNumber(unsigned int a);

void writeString(char s[]); // Aufruf: writeString("Hallo!");

int getIncrement(void);

unsigned int getMillisecondsSinceLastChange(void);

Die Funktion getIncrement gibt dabei zurück, um wie viele Schritte der En- coder seit dem letztem Aufruf dieser Funktion im Uhrzeigersinn (Rückgabewert positiv) oder gegen den Uhrzeigersinn (Rückgabewert negativ) gedreht worden ist.

Die Funktion getMillisecondsSinceLastChange gibt an, seit wie vielen Millisekunden der Encoder nicht mehr bewegt worden ist.

Schließen Sie das Display (Link zur Anschlussbelegung) so an das LaunchPad an:

jeweils Versorgungsspannung und Masse verbinden, Pin 1.0 an RS (Register Select, hier ein Signal zur Unterscheidung zwischen Befehlen und Daten), Pin 1.1 an E (Enable, das Signal, eine Datenübertragung duchzuführen), Pins 1.4 bis 1.7 an die Datenleitungen D4 bis D7. Verbinden Sie den „Common“-Pin des Dreh-Encoders (Link zur Anschlussbelegung) mit Masse, seinen Anschluss A mit Pin 1.2 und B mit Pin 1.3.

Lassen Sie den Aufbau sicherheitshalber kontrollieren, bevor Sie ihn mit dem PC verbinden.

Im Prinzip kann das Display zwei Zeilen (mal acht Zeichen) darstellen; dazu müsste man aber eine negative Spannung an seinen Pin 3 anlegen (V

0

). Der Einfachheit halber betreiben wir nur die obere Zeile des Displays.

Das Zahlenschloss soll zu Beginn geschlossen sein. Es öffnet sich nur dann, wenn

man es auf die Zahl 21 stellt, eine Sekunde wartet, es dann auf die Zahl 17 stellt

und wieder eine Sekunde wartet. Dreht man dann abermals und wartet eine

Sekunde, schließt es sich und der Ablauf beginnt von vorne.

(2)

Setzen Sie dazu das folgende Flussdiagramm in ein C-Programm um. Welcher Teil sollte unbedingt in eine Funktion ausgelagert werden?

Je nach verbleibender Zeit erweitern Sie das Programm zum Beispiel so: Wenn

man schnell dreht, wird zum Zeitsparen der Wert schneller weiter gestellt, als es

die Schrittzahl des Encoders angibt.

Referenzen

ÄHNLICHE DOKUMENTE

Erweiterung: Bei Klick auf diesen Button öffnet sich ein Fenster (Visual Studio: Hinzufügen > Fenster), in dem man die Einstellungen in TextBox en

Die Funktion getIncrement gibt dabei zurück, um wie viele Schritte der En- coder seit dem letztem Aufruf dieser Funktion im Uhrzeigersinn (Rückgabewert positiv) oder gegen

(1) Schreiben Sie eine Funktion kugel(radius), welche als Eingabe radius den Radius einer Kugel hat, und sowohl die Oberfläche O, als auch das Volumen V berechnet und

Gegeben sind

Ebenso müsste das Maximum der Integralfunktion bei 0 sein, ist aber etwas weiter links.. die Intergalfunktion müsste hier ein Minimum

Schreiben Sie eine öffentliche Funktion „berechneGesamt“ im Modul „mdlBsp“, die als Parameter eine Stückzahl und einen Einzelpreis (eines Artikels) übergeben bekommt..

a) Der Definitionsbereich der

Die ersten n Koordinaten des letzte Basisvektors der reduzierten Basis liefern eine L¨ osung x f¨ ur das Subset-Sum Probelm a, S. , 1) aus der Reduktion, denn die Eingabeinstanz