Unterrichts- und Lernmaterial für Mikrocontroller
Unterrichts- und Lernmaterial fürMikrocontroller

SPIN2 - Debug LOGIC

Grafische DEBUG-Anzeigen (Theorieteil)

 

DEBUG-Nachrichten können spezielle grafische DEBUG-Anzeigen aufrufen (z.B. LOGIC, SCOPE, PLOT u.a.), die in das Werkzeug eingebaut sind. Diese grafischen Anzeigen erscheinen in einem eigenen Fenster.

 

Einmal instanziiert, können die Darstellungen kontinuierlich mit verschiedenen Datentypen  versorgt werden, um animierte Visualisierungen zu erzeugen. Bis zu 32 grafische Fenster  können gleichzeitig versorgt und angezeigt werden.

 

Wenn eine DEBUG-Nachricht ein Backtick-Zeichen (`) (ASCII $60) enthält, wird eine Zeichenfolge, die alles vom Backtick bis zum Ende der Nachricht enthält, an den grafischen DEBUG-Anzeigeparser gesendet. Der Parser sucht nach mehreren verschiedenen Elementtypen und behandelt alle Kommas als Leerzeichen:

Abb. 1 - Entnommen aus "Parallax Spin 2 Documentation v35s (Parallax Inc.)

Bevor wir uns damit befassen, wie all dies zusammenpasst, müssen wir einige spezielle Darstellungen bei der DEBUG-Display-Syntax durchgehen.

 

Diese Syntax wird aufgerufen, wenn das erste Zeichen in einer DEBUG-Anweisung der Backtick ist. Dies bewirkt, dass alles in der DEBUG-Anweisung als Zeichenfolge betrachtet wird, außer wenn nachfolgende Backticks als 'Escape'-Zeichen fungieren, um normale oder abgekürzte DEBUG-Befehle zu ermöglichen.

Die Erstellung grafischer DEBUG-Displays erfolgt in zwei Schritten:

 

a - DEBUG-LOGIC Instanziierung

Abb. 2 - Entnommen aus "Parallax Spin 2 Documentation v35s (Parallax Inc.)

b - DEBUG-LOGIC Eingabe (feeding)

Abb. 3 - Entnommen aus "Parallax Spin 2 Documentation v35s (Parallax Inc.)

Schauen wir uns jetzt ein kleines Beispiel mit dem Anzeigetyp LOGIC an.

Übung 1 - DEBUG-LOGIC -> Einfaches Bitmuster erzeugen

In einer einfachen Übung wird ein erster Zugang zum grafischen Teil des DEBUG-Befehls gesucht. Gestartet wird mit dem Anzeigetyp LOGIC. Mit seiner Hilfe ersparen wir uns den Einsatz eines Oszilloskops.

Dafür stehen im Instanziierungs-Bereich verschiedene Instruktionen bereit (s. Abb. 4a), die ergänzt werden durch Instruktionen, die bei der "Datenfütterung" angewendet werden können (s. Abb. 4b).

Abb. 4a - Instruktionen zu DEBUG LOGIC -> Instanziierung

Abb. 4b - Instruktionen zu DEBUG LOGIC feeding-Bereich

Mit den Befehlen aus diesen beiden Instruktionsblöcken (Instanziierung, Feeding) kann die grafische Debug-Anzeige LOGIC verändert und an gegebene Wünsche angepasst werden.

Übung 1 - DEBUG LOGIC -> Einfaches Bitmuster erzeugen
Material
  • Grundausstattung Propeller 2
Aufgaben
  • Übertrage das Programm Bitmuster.spin2 in den Toolbar Editor und speichere es ab.
  • Beschreibe mit eigenen Worten, was jede Programmzeile (Zeilen 5 - 9) bewirkt.
  • Starte danach das Programm mit STRG-F10 und überprüfe, ob deine Beschreibung mit der Darstellung im DEBUG-Fenster übereinstimmt.

Das Programm Bitmuster.spin2

DEBUG - Output Fenster

 

 

 

 

Abb. 5

Ausgabe im Debug-Output Fenster.

DEBUG - LOGIC Fenster

 

 

 

 

 

Abb. 6

Anzeige des Bitmusters im Fenster "Bitmuster_erzeugen"

Wie arbeitet das Programm Bitmuster.spin2 ?

Die eingestellte Taktfrequenz muss, damit überhaupt der Debugger aufgerufen werden und arbeiten kann, größer oder gleich 10 MHz sein. Dies ist in Programmzeile 1 umgesetzt.

 

Das Hauptprogramm Bits() enthält nur fünf Programmzeilen. Der Graphikteil LOGIC wird in Programmzeile 5 instanziiert; die Fensterbeschriftung ist TITLE 'Bitmuster_erzeugen', das SPACING ist auf 24 gesetzt, damit wird die Zeitachse (Rechtsachse in der Abbildung) gestreckt.

Mit 3 Bits lassen sich insgesamt acht verschiedene Zustände erzeugen, deshalb wird SAMPLES auf 8 festgelegt.

Die Wiederholungsschleife wird achtmal durchlaufen (lokale Variable i). Der aktuelle Zählerstand von i wird binär im Fenster Bitmuster_erzeugen dargestellt.

Übung 2 - DEBUG LOGIC -> Wahrheitstafeln  von Gattern aufnehmen

In dieser Übung wird gezeigt, wie man die Wahrheitstabelle logischer Gatter mit Hilfe des Propeller P2 aufnehmen und graphisch darstellen kann. Das geht ohne Einsatz eines Oszilloskops und wird über ein SPIN2 Programm und dem Einsatz eines grafischen debug-Befehls erreicht.

Übung 2 - DEBUG LOGIC -> Wahrheitstafel NAND Gatter
Material
  • Grundausstattung Propeller P2
  • 1x  IC HD74LS00 (4x NAND) + Datenblatt
  • Optional: 1x IC 74HC08 (4x AND), 1x IC CD74HC32 (4x OR)
  • diverse Steckdrähte
Aufgaben
  • Baue die Schaltung nach Schaltskizze auf.
  • Übertrage das Programm debug_logic_nand.spin2 in den Toolbar Editor und speichere es ab.
  • Mache dich vertraut mit den Wahrheitstabellen der Logikgatter: NAND, NOR, AND, OR und EXOR.
  • Beschreibe mit eigenen Worten, was jede der beiden Methoden in dem vorliegenden Programm für eine Aufgabe hat.
  • Starte danach das Programm mit STRG-F10 und überprüfe die grafische Darstellung im NAND Fenster mit der Wahrheitstabelle des NAND-Gatters.
  • Option: Führe die gleichen Untersuchungen auch mit anderen Logikgattern durch.

Schaltskizze

 

 

 

 

 

 

Abb. 7

Aufbau auf einem P2-Edge Breadboard. Jedes andere Breadboard ist ebenfalls geeignet. Die Spannungsversorgung des IC erfolgt hier mit 3,3V vom Breadboard.

Bei TTL-Gattern mit 5V Versorgungsspannung müssen die Spannungspegel für den Propeller P2 (3,3V) unbedingt angepasst werden, damit der Controller nicht beschädigt wird.

Das Programm debug_logic_nand.spin2

Abb. 7 - Programm debug_logic_NAND.spin2

Anzeige im Debug-Output-Fenster

 

 

Abb. 8

Die vier möglichen Zustände in der Wahrheitstabelle werden in den letzten vier Zeilen dargestellt.

Anzeigen im Debug-LOGIC-Fenster

 

 

Abb. 9a

Die vier möglichen Eingangszustände sind in den Zeilen A und B dargestellt: 0-0, 1-0, 0-1 und 1-1. Zeile C zeigt die Ergebnisse am Ausgang eines NAND-Gatters. Der Ausgang ist immer 1, wenn nicht beide Eingänge A und B gleichzeitig 1 sind. Sind beide 1 ist Ausgang C 0.

 

 

 

 

 

Abb. 9b

Wahrheitstabelle eines AND-Gatters. Benutzt wurde das IC 74HC08, das vier AND-Gatter enthält. Ausgang C ist nur 1, wenn beide Eingänge A und B auf 1 sind, sonst 0.

 

 

 

 

 

Abb. 9c

Wahrheitstabelle eines OR-Gatters. Benutzt wurde das IC 74HC08, das vier OR-Gatter enthält. Ausgang C ist nur 0, wenn beide Eingänge A und B 0 sind, sonst immer 1.

Druckversion Druckversion | Sitemap
© Reinhard Rahner - Gettorf