- Terminal-Befehle sind <b>fett</b> gedruckt <br/>
- Als Student/Studentin können Sie davon ausgehen, dass die Steuersoftware auf Ihrem Arbeitsplatz bereits installiert ist <br/>
- D.h. Sie müssen zu Beginn jeder Übung nur die Firmware neu aufspielen (Installation Abschnitt 3) <br/>
</p>
<h1><aclass="anchor"id="autotoc_md1"></a>
Einführung</h1>
<p>Das gesamte Softwareprojekt besteht aus zwei Teilen: <br/>
Die <em><b>Firmware</b></em> ist die Software auf dem Mikrocontroller (MCU) des Board 15. Der Mikrocontroller steuert die Peripherie (ADCs, DACs, ...) über einen SPI-BUS. <br/>
Der zweite Teil von <aclass="el"href="classB15F.html">B15F</a> ist die <em><b>Steuersoftware</b></em>, die auf dem PC ausgeführt wird. Diese sendet über eine USART-Schnittstelle (RS-232) Befehle an den Mikrocontroller. <br/>
Die Steuersoftware besitzt ein <em>CLI</em> (command line interface) mit einer Benutzerschnittstelle für die einfache Fernsteuerung des <aclass="el"href="classB15F.html">B15F</a>. <br/>
Außerdem wird eine Bibliothek (<em>b15fdrv</em>) installiert, die eine einfache Entwicklung kleiner Steuerprogramme erlaubt.</p>
<h1><aclass="anchor"id="autotoc_md2"></a>
Installation</h1>
<h2><aclass="anchor"id="autotoc_md3"></a>
Installation mit Installationsscript (empfohlen)</h2>
<p>(a) Laden Sie das <ahref="https://raw.githubusercontent.com/devfix/b15f/master/install">Installationsscript</a> herunter <br/>
(b) Setzen Sie die Ausführungsberechtigung <br/>
(c) Starten Sie das Script <br/>
</p>
<h2><aclass="anchor"id="autotoc_md4"></a>
Installation von Hand (falls Installationsscript mit Fehler abbricht)</h2>
(g) "Installation von Hand" ab Schritt 3 durchführen</p>
<h1><aclass="anchor"id="autotoc_md12"></a>
Die CommandLineInterface (CLI) benutzen</h1>
<p>(a) Öffnen Sie ein Terminal und maximieren Sie das Fenster <br/>
(b) Start des CLI erfolgt durch <b>b15fcli</b><br/>
(c) Die Navigation erfolgt durch <Tab>, die Pfeiltasten und <Enter> oder die Maus <br/>
(d) Mit <Strg + c> kann das Programm sofort verlassen werden</p>
<h1><aclass="anchor"id="autotoc_md13"></a>
Eigene Programme mit B15F schreiben</h1>
<h2><aclass="anchor"id="autotoc_md14"></a>
Grundsätzliches</h2>
<p>Verwendet wird die Bibliothekt <em>b15fdrv</em>. Die wichtigste Klasse für die Steuerung des Board 15 ist <ahref="https://devfix.github.io/b15f/html/classB15F.html">B15F</a>. <br/>
Dort befindet sich auch eine Übersicht der verfügbaren Befehle. <br/>
</p>
<h2><aclass="anchor"id="autotoc_md15"></a>
Beispiele</h2>
<p>In dem Verzeichnis <ahref="https://github.com/devfix/b15f/tree/master/control/examples">b15f/control/examples</a> sind einige Beispiele für die Verwendung einzelner <aclass="el"href="classB15F.html">B15F</a> Funktionen. <br/>
Zu jedem Beispiel gehört eine <em>main.cpp</em> mit dem Quellcode und eine <em>Makefile</em>-Datei. Durch das Makefile wird beim Kompilieren und Linken die Bibliothek <em>b15fdrv</em> automatisch einbezogen. <br/>
Das Beispiel muss durch Sie also nur mit <b>make</b> kompiliert und mit .**/main.elf** gestartet werden.</p>
<h2><aclass="anchor"id="autotoc_md16"></a>
Den B15F Treiber verwenden</h2>
<p>Benötigt wird der B15F-Header: <br/>
<code>#include <b15f/b15f.h></code><br/>
und der Header für die plottyfile-Generierung, falls mit Kennlinien gearbeitet werden soll: <br/>
Falls noch keine existiert, wird automatisch eine erzeugt und Verbindung zum Board hergestellt. <br/>
Ab jetzt können auf dem Object <code>drv</code> verschiedene Methoden angewand werden, siehe <ahref="https://devfix.github.io/b15f/html/classB15F.html">B15F</a>. <br/>
</p>
<h2><aclass="anchor"id="autotoc_md17"></a>
Kennlinien mit plottyfile generieren</h2>
<p>Die Beschreibung zu Plottyfile befindet sich <ahref="https://devfix.github.io/b15f/html/classPlottyFile.html">hier</a>. <br/>
Nach dem Include von plottyfile kann ein neues Objekt erzeugt und konfiguriert werden: <br/>
</p><divclass="fragment"><divclass="line"> {C++}</div><divclass="line">PlottyFile pf; </div><divclass="line">pf.setUnitX("V"); </div><divclass="line">pf.setUnitY("V"); </div><divclass="line">pf.setUnitPara("V"); </div><divclass="line">pf.setDescX("U_{OUT}"); // Markdown wird unterstuetzt </div><divclass="line">pf.setDescY("U_{IN}"); </div><divclass="line">pf.setDescPara(""); </div><divclass="line">pf.setRefX(5); </div><divclass="line">pf.setRefY(5); </div><divclass="line">pf.setParaFirstCurve(0); </div><divclass="line">pf.setParaStepWidth(0);</div></div><!-- fragment --><p> Messpunkte können anschließend hinzugefügt werden. <br/>
Dabei gehören Punkte mit dem gleichen Index für <code>curve</code> (<em>uint8_t</em>) zur selben Kurve und erhalten durch Plotty automatisch die gleiche Farbe. <br/>
</p><divclass="fragment"><divclass="line"> {C++}</div><divclass="line">pf.addDot(Dot(x, y, curve));</div></div><!-- fragment --><p><em>Wichtig</em>: Die Werte für <code>x</code> und <code>y</code> sind <em>uint16_t</em>, also keine Gleitkommazahlen. Stattdessen sind sie auf RefX und RefY bezogen. </p>