Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
adc [2016/02/29 13:40] markadc [2020/01/06 14:22] (aktuell) – [Test] huwi
Zeile 16: Zeile 16:
 Basierend auf verfügbaren Klassen und Templates für ADC und UART soll entsprechend dem folgenden Blockbild eine Firmware erstellt werden. Die Klasse //PecUart// kennen wir bereits. Die Frameworklösung für den ADC schauen wir uns etwas näher an. Über den Explorer mit dem Suchtext **pec_Adc** lassen sich die einzelnen Bausteine erreichen. Es ergibt sich folgendes Gesamtbild zu der vorhandenen Lösung für die Klasse //PecAdcChannel//: Basierend auf verfügbaren Klassen und Templates für ADC und UART soll entsprechend dem folgenden Blockbild eine Firmware erstellt werden. Die Klasse //PecUart// kennen wir bereits. Die Frameworklösung für den ADC schauen wir uns etwas näher an. Über den Explorer mit dem Suchtext **pec_Adc** lassen sich die einzelnen Bausteine erreichen. Es ergibt sich folgendes Gesamtbild zu der vorhandenen Lösung für die Klasse //PecAdcChannel//:
  
-{{:adcchannel.png?580|}}  {{:adcsinglechannel2.png?200|}}+>{{:adcchannel.png?580|}}{{:adcsinglechannel2.png?200|}}
  
  
Zeile 28: Zeile 28:
 Wir setzen die geforderten Komponenten für die Abstraktion der PC-Konsole und des Potentiometers wie folgt aus den im Framework verfügbaren Bausteinen zusammen: Wir setzen die geforderten Komponenten für die Abstraktion der PC-Konsole und des Potentiometers wie folgt aus den im Framework verfügbaren Bausteinen zusammen:
  
->>>{{:analoguml.png?700|}}+>{{:analoguml.png?700|}}
  
->>>//**Controller::onWork:**// +>//**Controller::onWork:**// 
->>><code c>+><code c>
 // hole Wert vom Poti // hole Wert vom Poti
 // sende Wert an PC // sende Wert an PC
Zeile 40: Zeile 40:
 Wir realisieren das Erfassen des Analogwertes in der Operation //onWork//. Als Variable für den erfassten Wert legen wir uns vorausschauend einen vorzeichenlosen 8-Bit Wert an. Diesen sollten wir dann bei der Übergabe an die UART [[http://www.cplusplus.com/doc/tutorial/typecasting/|explizit casten]]. Wir realisieren das Erfassen des Analogwertes in der Operation //onWork//. Als Variable für den erfassten Wert legen wir uns vorausschauend einen vorzeichenlosen 8-Bit Wert an. Diesen sollten wir dann bei der Übergabe an die UART [[http://www.cplusplus.com/doc/tutorial/typecasting/|explizit casten]].
  
->>>//**Controller::onWork:**// +>//**Controller::onWork:**// 
->>><code c>+><code c>
 uint8_t wert; uint8_t wert;
 wert=poti.getValue(); wert=poti.getValue();
Zeile 47: Zeile 47:
 waitMs(100);</code> waitMs(100);</code>
  
->>>{{:analogseq1.jpg|}}+>{{:analogseq1.jpg|}}
  
 ===== Test ===== ===== Test =====
Zeile 57: Zeile 57:
 Verbinden Sie die USB-UART-Bridge auf dem Erweiterungsboard mit dem PC (Mini USB-Kabel), patchen Sie RxD mit PD8 und das Potentiometer mit Pin PC2 (vgl. Bild).  Verbinden Sie die USB-UART-Bridge auf dem Erweiterungsboard mit dem PC (Mini USB-Kabel), patchen Sie RxD mit PD8 und das Potentiometer mit Pin PC2 (vgl. Bild). 
  
- +>{{:analogdaten.png?500|}}
->>>{{:analogdaten.png?500|}}+
  
 Starten Sie das ControlCenter und beachten die korrekten Einstellungen für den COM-Port. Nachdem Sie die Verbindung mit geöffnet haben stellen Sie die Ansicht auf "Oszi" um. Sie können über die Optionen für die Oszi-Ansicht verschiedene Darstellungsvarianten auswählen. Nun können Sie jede Veränderung am Potentiometer auf dem Bildschirm verfolgen. Starten Sie das ControlCenter und beachten die korrekten Einstellungen für den COM-Port. Nachdem Sie die Verbindung mit geöffnet haben stellen Sie die Ansicht auf "Oszi" um. Sie können über die Optionen für die Oszi-Ansicht verschiedene Darstellungsvarianten auswählen. Nun können Sie jede Veränderung am Potentiometer auf dem Bildschirm verfolgen.
Zeile 65: Zeile 64:
  
 ===== Erweiterung ===== ===== Erweiterung =====
-Für genauere Messungen ist es nötig die Auflösung des ADC zu erhöhen. Der STM32F4 kann Analogwerte mit einer Auflösung von bis zu 12 Bit digitalisieren. Die 12 Bit lassen sich jetzt leider nicht mehr ganz so einfach an das ControlCenter schicken, um diese zu visualisieren. Die UART ist byteorientiert. Sollen Daten aus mehreren Bytes zusammengesetzt werden, muss das empfangende Programm genau wissen, wie die Informationen zusammengesetzt werden sollen. Das leisten einfache Terminalprogramme nicht. Eine verhältnismäßig einfache Variante unsere 12-Bit Daten trotzdem zu übertragen ist, diese in Text umzuwandeln. Dann lassen sich die Werte in der Textansicht verfolgen. Ergänzen Sie bitte in der Klasse Application das Attribut //buffer// vom Typ //String//.+Für genauere Messungen ist es nötig die Auflösung des ADC zu erhöhen. Der STM32F4 kann Analogwerte mit einer Auflösung von bis zu 12 Bit digitalisieren. Die 12 Bit lassen sich jetzt leider nicht mehr ganz so einfach an das ControlCenter schicken, um diese zu visualisieren. Die UART ist byteorientiert. Sollen Daten aus mehreren Bytes zusammengesetzt werden, muss das empfangende Programm genau wissen, wie die Informationen zusammengesetzt werden sollen. Das leisten einfache Terminalprogramme nicht. Eine verhältnismäßig einfache Variante unsere 12-Bit Daten trotzdem zu übertragen ist, diese in Text umzuwandeln. Dann lassen sich die Werte in der Textansicht verfolgen. Ergänzen Sie bitte in der Klasse Controller das Attribut //buffer// vom Typ //String//.
  
  
->>>//**onWork:**// +>//**Controller::onWork:**// 
->>><code cpp>+><code cpp>
 uint16_t wert; uint16_t wert;
 wert=poti.getValue(); wert=poti.getValue();
Zeile 77: Zeile 76:
 </code> </code>
  
->>>{{:analogsendensq.png?400|}}+>{{:analogsendensq.png?400|}}
  
  
Zeile 84: Zeile 83:
 Testen Sie die erweiterte Anwendung und variieren Sie die Einstellungen des Potentiometers. Testen Sie die erweiterte Anwendung und variieren Sie die Einstellungen des Potentiometers.
  
->>>>>{{:analogsenden.png?300|}}+>{{:analogsenden.png?300|}}
    
  
Zeile 92: Zeile 91:
  
   - Klassendiagramm anlegen und öffnen   - Klassendiagramm anlegen und öffnen
-  - Diagrammvorlage für PEC Applikation auswählen, laden und Treiberpaket für STM32F4 einfügen  - Navigator auf UML Pakete umschalten+  - Diagrammvorlage für PEC Applikation auswählen, laden und Treiberpaket für STM32F4 einfügen 
 +  - Navigator auf UML Pakete umschalten
   - gewünschte Klasse im Explorer suchen und ins Diagramm ziehen   - gewünschte Klasse im Explorer suchen und ins Diagramm ziehen
   - Klassen aggregieren   - Klassen aggregieren
Zeile 105: Zeile 105:
 Hier unsere übliche Videozusammenfassung. Hier unsere übliche Videozusammenfassung.
  
->>><flashplayer width="600" height="400" position="0">file=http://youtu.be/9ntPDTCE7VY</flashplayer> +><html><iframe width="640" height="400" src="https://www.youtube.com/embed/9ntPDTCE7VY" frameborder="0" allowfullscreen></iframe></html>
- +
->>>[[http://youtu.be/9ntPDTCE7VY|besser auf youTube]]+
  
 ====== Übung ====== ====== Übung ======