Übung zu Datenpufferung Sommer 2017
(EN google-translate)
(PL google-translate)
Überblick
Es soll ein Moresesystem entwickelt werden.
Texte, die im Serial-Monitor eingegeben und an den Arduino-Micro geschickt werden,
sollen Zeichen für Zeichen in Morsepulse umgesetzt werden.
Dabei entsteht insbesondere folgendes Problem:
Das Verschicken eines längeren Textes geht viel schneller, als das Umsetzen des
Textes in Morsepulse.
Der Text wird in einen Puffer-Speicher abgelegt und nach und nach abgearbeitet.
Wie hat man sich einen Pufferspeicher und den zugehörigen Mechanismus vorzustellen?
Bild 0-1:
- Solange der Seriell-Merker auf einen leeren Speicherplatz trifft, schreibt er das nächste Zeichen in den Puffer.
- Der Index des Seriell-Merkers wird danach inkrementiert.
- Solange der Index vom Morseübertrager nicht die gleiche Position hat, wie der Index vom Seriell-Merker, wird das vorleigende Zeichen in Morsepulse umgesetzt, gelöscht und dann der Index erhöht.
- Kommt ein Index ans Ende des Pufferspeichers, wird er wieder auf Null gesetzt.
|
Aufgabe 1
- Realisieren Sie mit den Arduino-Libraries einen Morseumsetzer für die Ziffern 0 bis 9.
- Verwenden Sie die Arduino-Library Serial und die Funktuion delay(...).
- Das Morsesignal wird durch eine grüne LED angezeigt.
|
Aufgabe 2
- Erzeugen Sie das Morsesignal als Piepton mit Hilfe der Arduinofunktion "tone".
- Wenn der Puffer voll ist, soll eine rote LED aufleuchten.
|
Achtung: Verwenden Sie für den Lautsprecher einen Vorwiderstand von mindestens 1000 Ohm zur Strombegrenzung und Schonung der Ohren ;-)
Aufgabe 3
- Realisieren Sie den Piepton mit Hilfe des Timers 1 im CTC-Mode.
|
Zusatzaufgabe
Entwickeln Sie auf Basis des Morsecodes ein Bussystem.
- Statt Lang und kurz können digitale Signale auf zwei Leitungen verwendet werden.
- Eine dritte Leitung kann anzeigen, dass ein neues Zeichen gesendet wird.
|