Franz Pucher / TINF

You are viewing an older revision! See the latest version

Digital IO Erweitert

Table of Contents

  1. BusOut
  2. Vertiefung
  3. Aufgaben:

Inhalt

Neben DigitalOut und DigitalIn, die pro Pin arbeiten, gibt es beim mbed zur vereinfachten Bearbeitung von z.B. einem Datenbus die parallel data and communication (siehe Slides 1 bis 8) und hier speziell das BusOut Interface.

BusOut

Das BusOut-Interface kann an jedem Pin mit blauer Beschriftung sowie an den integrierten LEDs (LED1-LED4) verwendet werden. Über die BusOut-Schnittstelle kann der Status des Ausgangs-Pins eingestellt und der aktuelle Ausgangsstatus zurückgelesen werden. Setzen Sie den BusOut auf Null, um ihn auszuschalten, oder auf 1, um ihn einzuschalten.

Aufgabe: Schreiben Sie ein Lauflicht für die 4 On-board Leds.

Schreiben Sie ein Programm mit Funktionen, 4-Bit Werte auf die 4 Leds des M3Boards geschrieben werden können:

  1. Untersuchen der BusOut-Klasse der mbed-Bibliothek
  2. Globale BusOut-Variable erzeugen.
  3. Funktion LedBusOn(...) schreiben, die einen Integer/Hex-Wert auf den Led-Bus schreibt.
  4. Test der Funktion LedBusOn(i++);

Zusatzaufgabe 1:

  • Funktion LedBusAscii(...), die das untere Nibble eines ASCII-Wertes am Led-Bus anzeigt.

Zusatzaufgabe 2:

  • Globale Variable mit Array von Pins erzeugen.
  • Anmerkung: Bei der Definition des PinName-Arrays muss als Arraygröße 16 angegeben werden obwohl nur 1 Byte (Nibble bei M3) benötigt wird, sonst stürtzt das Programm ab (siehe Konstruktor BusOut):

PinName pinBus[16] = {pin1, pin2, ..., pin8};
PinName pinBusM3[16] = {pin1, pin2, ..., pin3};

Vertiefung

Lower Level GPIO-Programming

Aufgaben:


1. Definieren Sie eine 4 Bit Konstante und geben Sie den Wert auf die 4 blauen Leds aus.

  • Schreiben Sie die Funktion selectivLedsOn(wert), die nur diejenigen Leds einschaltet, die im Wert gesetzt sind.


2. Schreiben Sie ein Lauflicht für die 4 blauen Leds

  • schalten Sie durch drücken des Joysticks (BUTTON1 im Simulator) die Laufrichtung um


3. Geben Sie für die jeweiligen Joystick Schalter die entsprechende blaue Led aus: right = LED1, left=LED2, up=LED3, down =LED4


All wikipages