Lehre.IW_P7 (Struktur)


Informatikwerkstatt - Gruppe MR, Interaktive Übungen zu Foliensatz 7

Test Treiber der mit Schrittfunktion (P07\F7-comsf\comsf)

Hardware-Konfiguration:
  • LC-Display Stecker J2 über Y-Kabel mit dem Stecker JD oben.
  • LC-Display JP2 Jumper MD0 und MD2 stecken (Übertragungsprotokolls 8N1, 9600 Baud).
  • Ultraschallsensormodul über dasselbe Y-Kabel mit dem Stecker JD unten verbinden.
  • Jumper JDX gekreuzt.
  • PModUSBUSART an JH stecken und über USB mit dem PC verbinden.
  • JHX gekreuzt.

Programmdateien: comsf_lcd.h , comsf_lcd.c , comsf_pc.h , comsf_pc.c , comsf_sonar.h , comsf_sonar.c , test_comsf.c

Die Treiber "comsf_lcd", "comsf_pc" und "comsf_sonar" stellen Initialisierungsfunktionen, Schrittfunktionen sowie blockierungsfreie Lese- und Schreibfunktionen für die Ansteuerung des LC-Displays, die PC-Kommunikation und den Ultraschallsensor bereit.

Anwenderfunktionen des LCD-Treibers:

  • Fehlerzähler erhöhen.
  • Einzelzeichen auf LCD ausgeben.
  • Text auf LCD ausgeben.
  • Zahl auf LCD ausgeben.
Anwenderfunktionen des Treibers für die PC-Kommunikation:
  • Lesen einer Nachricht vom PC.
  • Versenden einer Nachricht an den PC.
  • Lesen des zuletzt empfangenen Bytes.
  • Löschen empfangener Bytes (Empfangspuffer leeren).
Anwenderfunktionen des Treibers für den Sonarsensor:
  • Abstandswert lesen.

Der Testrahmen "test_comsf" wartet auf Einzelbytes und 4-Byte-Nachrichten von der seriellen Schnittstelle, sendet bei Empfang einer 4-Byte-Nachricht eine andere 4-Byte-Nachricht zurück und zeigt auf dem LC-Display an:

  • den Abstandswert des Sonarsensors in Zoll,
  • die zuletzt empfangene 4-Byte-Nachricht als ASCII-Zeichenkette,
  • das zuletzt empfangene Zeichen,
  • die Anzahl der Abstandsmessungen durch 50,
  • die Anzahl der empfangenen Nachrichten seit Programmstart und
  • zwei Fehlerzähler, einmal für Empfangsfehler und einmal zu Testzwecken für die Anzahl der emfangenen Nachrichten.
Die zurück gesendeten Nachrichten besteht aus dem Sonarwert (2 Byte) und dem Sonarwertzähler (gleichfalls 2 Byte).

Test: Programm normal starten. HTerm starten. Im HTerm COM-Port der seriellen Schnittstelle, 8N1 und 9600 Baud einstellen. Verbinden. Einzel- und 4-Byte-Nachrichten schicken. Dabei Hand vor dem Sensor in einem Abstand größer 6 Zoll bewegen. Empfangene Nachrichten und LCD-Ausgabe kontrollieren:

  • Der Abstandswert hinter "S:" muss der Abstand vom Ultraschallsensor bis zum nächsten Gegenstand in Zoll sein.
  • Der Wert hinter "s:" muss etwa im Sekundentakt weiterzählen und von "999" nach "?00" wechseln. (Bei Überlauf wird aus der ersten Ziffer ein "?").
  • Beim Senden einzelner Zeichen mit dem HTerm muss hinter "L:" immer das zuletzt empfangene Zeichen und hinter "I:" die zuletzt empfangene 4-Byte-Nachricht stehen.
  • Beim Empang einer 4-Byte-Nachricht muss sich der Wert hinter "i:" erhöhen und der zweite Fehlerzäher hinter "E:" um einen Schritt weiterschalten.
  • Der Fehlerzähler muss in der Reihenfolge ". 1 2 ... 9 a b ... z" zählen und im Zustand "z" verbleiben.

Test der Zeitabläufe mit dem Logikanalysator (P05\USBLOGI\test_comsf.xml)

Hardware-Konfiguration:
  • Ansteckmodule wie im Projekt "F7-comsf" zuvor.
  • Zwischen Baugruppenstecker JH und PmodUSBUART zusätzlich wie vorherigen Versuch mit dem Logikanalysator ein Adaperboard PModTPH2 einzufügen.
  • USBLogi ist wie folgt anzuschließen:
    • GND (schwarz) an einen Massenanschlus des Mikrorechner-Boards.
    • CH0 (gelb) PModTPH2 P3 (RxD).
    • CH1 (braun) PModTPH2 P2 (TxD).
    • CH2 (orange) PG0.
    • CH3 (weiß) PG1.
    • CH4 (grün) PG2.

Programmdatei: test_comsf.xml

Test:

  • Auf den Mikrorechner das Programm aus dem Projekt "F7-test_comsf" zuvor starten.
  • Konsole öffnen und in das Verzeichnis ...\USBLOGI wechseln.
  • HTerm starten. COM für serielle Verbindung, 8N1 und 9600 Baud einstellen. Verbinden.
  • Auf der USBLOGI-Konsole den Logikanalysator starten mit:
    usb-logi test_comsf.xml test_comsf.sav
  • Vom HTerm die Zeichenfolge "asdf" schicken.
  • Im sich öffnenden GTKWave-Fenster Anzeige und Zoom anpassen und Signalverläufe kontrollieren.


Autor: gkemnitz, Letzte Änderung: 06.11.2024 20:33:29


 TU Clausthal 2020  Impressum