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
Lesezeichen