- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 12

Thema: Wie geeignet ist C++ für Microcontroller?!

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.03.2006
    Ort
    Darmstadt
    Alter
    34
    Beiträge
    522
    Klar.

    Verwendung:
    ostream:
    Klasse zur Ausgabe von C-Strings sowie Zahlen über den Operator '<<'. Zusätzlich gibt es dort die Methode f(prog_char*), welche einen im Flash liegenden Sting einliest. Bei der Erstellung ist der erste Parameter der Zeiger auf die Funktion, über die ein Zeichen ausgegeben wird. Z.b..

    Code:
    #include "iostream.h"
    
    using namespace std;
    
    void uart_put_char(char c)
    {
       ...//gibt ein zeichen über den UART aus
    }
    
    int main()
    {
    	ostream cout(uart_put_char);
    	cout<<"Hallo!"<<123<<endl;
    }
    istream: Klasse zur Eingabe über den Operator '>>'. Der erste Parameter ist ein Zeiger auf auf eine Funktion, die ein Zeichen einliest, der zweite auf eine Funktion, die ein Zeichen ausgibt. Z.b.:

    Code:
    #include "iostream.h>"
    
    using namespace std;
    
    void uart_put_char(char c)
    {
       ...//gibt ein zeichen über UART aus
    }
    
    char uart_get_char()
    {
       ...//liest ein zeichen vom den UART
    }
    
    int main()
    {
    	int i;
    	ostream cout(uart_put_char);
    	istream cin(uart_get_char,uart_put_char);
    	cout<<"geben Sie eine Zahl ein>";
    	cin>>i;
    	cout<<"Sie haben "<<i<<" eingegeben"<<endl;
    }
    CFifo ist eine Warteschlange. Bei der Konstruktion ist der erste Parameter ein Zeiger auf den Buffer, wo die Werte aufbewahrt werden, der zweite die Größe des Buffers. Ich habe auf eine dynamische Speicherreservierung verzichtet, weil es Laufzeit und Speicher spart.


    Methoden:
    push_wait(wert): Waret, bis in dem Buffer wieder Platz ist und fügt dann den Wert ein.
    push_nowait(wert): fügt den Wert ein, ohne zu warten bis eine Stelle frei ist. Sollte der Buffer bereits voll sein, wird der letzte Wert gelöscht.
    pop(): wartet, bis mind. ein Wert in der Schalnge ist und gibt ihn dann zurück.
    empty(): true wenn leer, false wenn nicht
    full(): true wenn voll, false wenn nicht
    operator[]: gibt das entsprechende Element der Schange zurück.


    CLifo ist ein Stack. Die Parameter sind die gleichen wie bei CFifo.
    Methoden:
    push(wert): legt einen Wert auf den Stack
    pop(): nimmt ein Wert vom Stack
    top(): gibt das letzte Element zurück, ohne den framepointer zu dekrementieren.
    empty(), full() und operator[] wie bei CFifo.

    MfG Mark
    Angehängte Dateien Angehängte Dateien

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress