Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
sdio [2017/03/17 18:00] – huwaldt | sdio [2021/01/11 18:08] (aktuell) – [Realisierung] huwi | ||
---|---|---|---|
Zeile 11: | Zeile 11: | ||
Legen Sie ein neues Klassendiagramm an, wählen Sie die Sprache ARM C++ und stellen Sie die Hardware (STM32F407) ein. Beim Öffnen des Diagramms (rechte Maustaste, nach unten) laden Sie aus dem SiSy LibStore die Diagrammvorlage // | Legen Sie ein neues Klassendiagramm an, wählen Sie die Sprache ARM C++ und stellen Sie die Hardware (STM32F407) ein. Beim Öffnen des Diagramms (rechte Maustaste, nach unten) laden Sie aus dem SiSy LibStore die Diagrammvorlage // | ||
- | {{: | + | >{{: |
===== Lösungsansatz ===== | ===== Lösungsansatz ===== | ||
Wenn wir im vorhandenen // | Wenn wir im vorhandenen // | ||
- | >>>< | + | >< |
> | > | ||
Zeile 24: | Zeile 24: | ||
Die ausgewählte Lösung für ein Dateisystem auf SD-Karte bietet uns ein schmales Interface zum Umgang mit unserer µSD-Karte. Von besonderem Interesse sind für uns die Klasse // | Die ausgewählte Lösung für ein Dateisystem auf SD-Karte bietet uns ein schmales Interface zum Umgang mit unserer µSD-Karte. Von besonderem Interesse sind für uns die Klasse // | ||
- | >>> | + | > |
Wir müssen eine Datei **anlegen** oder **finden**, können diese dann **öffen**, darin schreiben und zum Schluss auch wieder **schließen**. All das bieten uns diese Klassen. Jetzt bleibt nur noch die Frage wo wir die SD-Karte an unseren Controller anschließen. Der STM32F4 besitzt für den physischen Zugriff auf Speicherkarten einen speziellen Baustein // | Wir müssen eine Datei **anlegen** oder **finden**, können diese dann **öffen**, darin schreiben und zum Schluss auch wieder **schließen**. All das bieten uns diese Klassen. Jetzt bleibt nur noch die Frage wo wir die SD-Karte an unseren Controller anschließen. Der STM32F4 besitzt für den physischen Zugriff auf Speicherkarten einen speziellen Baustein // | ||
Zeile 36: | Zeile 36: | ||
> | > | ||
- | >>> | + | > |
- | >>>< | + | >< |
// µSD-Karte initialisieren | // µSD-Karte initialisieren | ||
// Baudrate für das Terminal einstellen | // Baudrate für das Terminal einstellen | ||
Zeile 47: | Zeile 47: | ||
Zur Abwechslung binden wir die gewünschte Baudrate für unsere UART-Übertragung nicht als Template an, sondern initialisieren diese in der Startsequenz. Der Einfachheit halber legen wir unsere Datei erst mal in das Wurzelverzeichnis der Speicherkarte. Achten Sie darauf, dass Ihre Speicherkarte auch als [[http:// | Zur Abwechslung binden wir die gewünschte Baudrate für unsere UART-Übertragung nicht als Template an, sondern initialisieren diese in der Startsequenz. Der Einfachheit halber legen wir unsere Datei erst mal in das Wurzelverzeichnis der Speicherkarte. Achten Sie darauf, dass Ihre Speicherkarte auch als [[http:// | ||
- | >>> | + | > |
- | >>>< | + | >< |
// Analogwert erfassen | // Analogwert erfassen | ||
// erfassten Wert als Textzeile für die CSV-Datei formatieren | // erfassten Wert als Textzeile für die CSV-Datei formatieren | ||
Zeile 61: | Zeile 61: | ||
Wir schauen uns den Entwurf nochmal in Ruhe an und realisieren diesen dann Schritt für Schritt. Zur Sicherheit ergänzen wir Protokollausgaben über die UART. | Wir schauen uns den Entwurf nochmal in Ruhe an und realisieren diesen dann Schritt für Schritt. Zur Sicherheit ergänzen wir Protokollausgaben über die UART. | ||
- | >>> | + | > |
- | >>>< | + | >< |
sdCard.mount(); | sdCard.mount(); | ||
- | terminal.config(9600); | + | FileFind ff; |
- | if(!sdCard.findFirst("/ | + | if(!ff.findFirst("/ |
{ | { | ||
if (sdCard.logfile.create("/ | if (sdCard.logfile.create("/ | ||
- | terminal.sendString(" | + | terminal.writeString(" |
else | else | ||
- | terminal.sendString(" | + | terminal.writeString(" |
} | } | ||
else | else | ||
{ | { | ||
- | terminal.sendString(" | + | terminal.writeString(" |
} | } | ||
</ | </ | ||
- | >>> | + | > |
- | >>> | + | > |
- | >>>< | + | >< |
String txt; | String txt; | ||
int wert; | int wert; | ||
Zeile 91: | Zeile 91: | ||
sdCard.logfile.append(txt); | sdCard.logfile.append(txt); | ||
sdCard.logfile.close(); | sdCard.logfile.close(); | ||
- | terminal.sendString(" | + | terminal.writeString(" |
- | terminal.sendString(txt); | + | terminal.writeString(txt); |
} | } | ||
else | else | ||
{ | { | ||
- | terminal.sendString(" | + | terminal.writeString(" |
} | } | ||
waitMs(1000); | waitMs(1000); | ||
</ | </ | ||
- | >>> | + | > |
===== Test ===== | ===== Test ===== | ||
Zeile 111: | Zeile 111: | ||
Stellen Sie im ControlCenter die Parameter für die Verbindung mit dem Board ein. Achten Sie auf den richtigen COM-Port und die korrekte Baudrate. Beachten Sie, dass der Controller mit korrekt formatierter SD-Karte eingelegt, mindestens einen Startzyklus (ggf. manuelles RESET) durchlaufen muss, um die Datei " | Stellen Sie im ControlCenter die Parameter für die Verbindung mit dem Board ein. Achten Sie auf den richtigen COM-Port und die korrekte Baudrate. Beachten Sie, dass der Controller mit korrekt formatierter SD-Karte eingelegt, mindestens einen Startzyklus (ggf. manuelles RESET) durchlaufen muss, um die Datei " | ||
- | >>> | + | > |
Nach der Aufzeichnung der Daten können Sie die SD-Karte mit einem entsprechenden [[http:// | Nach der Aufzeichnung der Daten können Sie die SD-Karte mit einem entsprechenden [[http:// | ||
Zeile 127: | Zeile 127: | ||
Und natürlich diesen Abschnitt wiederum als Videozusammenfassung. | Und natürlich diesen Abschnitt wiederum als Videozusammenfassung. | ||
- | >>>< | + | >< |
====== Übung ====== | ====== Übung ====== |