Informatikwerkstatt - Gruppe MR, Interaktive Übungen zu Foliensatz 7
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:
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:
Autor: gkemnitz, Letzte Änderung: 06.11.2024 20:33:29