Pakete

Beschreibung

Zusammenstellung von myAVR-Paketen mit Klassen für komfortable objektorientierte Programmierung.

Inhalt

Name | Kurzbeschreibung
myAVR_7Segment | Dieses Paket ermöglicht das Ansteuern einer 7-Segment-Anzeige.
myAVR_ADC | Paket zur Benutzung der Analog-Digital-Wandlung (ADC)
myAVR_Debug | Stellt etwas Debug-Funktionalität mittels USART her.
myAVR_DigitalInOut | Digitale Ein-/Ausgangs-Pins
myAVR_Mk3Lcd | Paket zur Ansteuerung eines Grafik-LCD mit 128x64 Pixeln vom Typ 64128K, wie es sich auf dem myAVBR Board MK3 befindet.
myAVR_Mk3LcdExt | Erweiterte Klassen zum Mk3Lcd.
myAVR_Mk3_SdCard | Das Paket ermöglicht die sofortige Verwendung der microSD-Card durch die bereits enthaltene Initialisierung.
myAVR_myEthernet | Klassenstruktur zur Realisierung eines Webservers oder anderer Ethernetlösungen.
myAVR_SdCard | Paket für den Zugriff auf Dateien, die auf SD-Cards gespeichert sind.
myAVR_Spi | SPI-Klassen für ausgewähle Controller (z.B. ATmega8, ATmega48, ATmega88, ATmega168, ATmega328, ATmega2560, ATmega644P)
myAVR_String | Zeichenketten-Verwaltungs- und Manipulationsklassen.
myAVR_Timer | Paket mit Klassen zur Timerkonfiguration.
myAVR_TWI | Paket für die allgemeine TWI-Funktionalität.
myAVR_TWI_Devices | Verschiede TWI-Geräte und deren spezielle Funktionen.
myAVR_Uart | Paket zur Verwendung von UART-Kommunikationen.


myAVR_7Segment

Beschreibung

Dieses Paket ermöglicht das Ansteuern einer 7-Segment-Anzeige.

Umgesetzte Zeichen sind 0-9, A-F, Leerzeichen, Minuszeichen und 3 waagerechte Striche für unbekannt.

Inhalt

Name | Kurzbeschreibung
Led7Segment | Klasse zur Darstellung auf 7-Segment-Anzeigen


Led7Segment

Klasse zur Darstellung auf 7-Segment-Anzeigen [Mehr ...]

Vererbung

Basisklassen(n) abgeleitete Klassen
DigitalPort→
DigitalPortOutput→
Led7Segment

Attribute

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
operator = | uint8_t data | uint8_t | Operator '=' für die Zuweisung von Werten, siehe show(..)
show | uint8_t data | void | Gibt ein Zeichen aus.
showDot | bool on=true | void | Schaltet den Punkt ein oder aus.

Detailbeschreibung Led7Segment

Klasse zur Darstellung auf 7-Segment-Anzeigen

Die Schaltung dabei ist: Segment a (oben)=Bit0, b (oben rechts)=Bit1...usw, sowie g (mitte)=Bit6 und Punkt=Bit7.

Beispiel: Initalisierung

led.config(PORTB);
BSP: Verwendung
// folgendes ist identisch:
led.show( 3 );
led.show( '3' );
// auch folgendes ist identisch:
led.show( 0x0A );
led.show( 'A' );
led.show( 'a' );
// Punkt an
showDot();
// Punkt aus
showDot(false);

Funktionsbeschreibungen

operator =(uint8_t data) uint8_t

Operator '=' für die Zuweisung von Werten, siehe show(..)

show(uint8_t data) void

Gibt ein Zeichen aus.

Entweder aus ASCII-Zeichen oder als Zahl. Gültige ASCII-Zeichen sind 0-9, A-F, a-f, '-' und Leerzeichen. Gültige Zahlen sind 0-15. Der Status des Punktes wird beibehalten.

Parameter:

data Zeichen bzw. Zahl

showDot(bool on=true) void

Schaltet den Punkt ein oder aus.

Parameter:

no true, wenn angeschalten werden soll


myAVR_ADC

Beschreibung

Paket zur Benutzung der Analog-Digital-Wandlung (ADC)

Inhalt

Name | Kurzbeschreibung
Adc | Diese Klasse dient zur Verwendung des ADC.
AdcInt | Diese Klasse dient zur Verwendung des ADC auf Interrruptbasis.
AdcIntMulti | Diese Klasse dient zur Verwendung des ADC auf Interrruptbasis bei Verwendung mehrerer analoger Eingänge.


Adc

Diese Klasse dient zur Verwendung des ADC.

Vererbung

Basisklassen(n) abgeleitete Klassen
Adc
AdcInt

Attribute

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
config | uint8_t channel=0, uint8_t ref=0b01 | void | Initialisiert den ADC als Free-Running, 10bit-Auflösung und startet ihn.
getAdc |  | uint16_t | Gibt den aktuellen Wert zurück.
operator uint16_t |  |  | Dieser Operator ermöglicht die einfache Verwendung z.B. als Wertzuweisung.
selectChannel | uint8_t channel | void | Schaltet auf einen bbestimmten Eingan um.
setSpeed | uint8_t prescaler | void | Setzt den Vorteiler für den ADC.

Detailbeschreibung Adc

Diese Klasse dient zur Verwendung des ADC.

Funktionsbeschreibungen

config(uint8_t channel=0, uint8_t ref=0b01) void

Initialisiert den ADC als Free-Running, 10bit-Auflösung und startet ihn.

Parameter:

channel | zu verwendender Eingang 0..15 (je nach Controllertyp)
ref | zu verwendende Referenzspannung (siehe Datenblatt)

getAdc() uint16_t

Gibt den aktuellen Wert zurück.

operator uint16_t()

Dieser Operator ermöglicht die einfache Verwendung z.B. als Wertzuweisung.

Beispiel: Wertzuweisung

Adc myAdc;
...
wert=myAdc;

selectChannel(uint8_t channel) void

Schaltet auf einen bbestimmten Eingan um.

Parameter:

channel ab jetzt zu verwendender Eingang 0..15

setSpeed(uint8_t prescaler) void

Setzt den Vorteiler für den ADC.

Parameter:

prescaler Wert für Vorteiler (siehe Datenblatt)


AdcInt

Diese Klasse dient zur Verwendung des ADC auf Interrruptbasis.

Vererbung

Basisklassen(n) abgeleitete Klassen
Adc→
AdcInt
AdcIntMulti

Attribute

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
configInt | bool enable=true | void | Schaltet den Interrupt für ADC-Complete an oder aus.
onInt_AdcComplete |  | void | Funktion, auf die der Interrupthandler weitergeleitet werden muss. Durch Überschreiben der Funktion kann dieses Ereignis dann behandelt werden.

Detailbeschreibung AdcInt

Diese Klasse dient zur Verwendung des ADC auf Interrruptbasis.

Funktionsbeschreibungen

configInt(bool enable=true) void

Schaltet den Interrupt für ADC-Complete an oder aus.

Beim Anschalten wird auch das globale sei (SetEnableInterrupt) durchgeführt.

Parameter:

enable wenn true, wird der Interrupt eingeschalten, wenn false, wird er ausgeschalten.

onInt_AdcComplete() void

Funktion, auf die der Interrupthandler weitergeleitet werden muss. Durch Überschreiben der Funktion kann dieses Ereignis dann behandelt werden.


AdcIntMulti

Diese Klasse dient zur Verwendung des ADC auf Interrruptbasis bei Verwendung mehrerer analoger Eingänge. [Mehr ...]

Vererbung

Basisklassen(n) abgeleitete Klassen
Adc→
AdcInt→
AdcIntMulti

Attribute

public:

Attribut | Typ | Beschreibung
counter | volatile uint8_t | Zählt die Anzahl der vollständigen Konvertierungen aller Channel. Dieser Wert kann benutzt werden um die ersten ungültigen Werte zu verwerfen.
invalidConversions | volatile uint8_t | Anzahl der als ungültig zu betrachtenden A/D-Wandlungen je Kanal nach Kanalwechsel. Die Ergebnisse dieser A/D-Wandlungen werden ignoriert. Diese Zeit dient zum Einschwingen des A/D-Wandlers auf den Messwert, wodurch ein besseres Messergebnis erreicht wird.

protected:

Attribut | Typ | Beschreibung
channels[ADC_CHANNEL_COUNT] | volatile AdcChannel | Zwischenspeicher für jeweils zuletzt gemessenen Analogwerte je Kanal. Nicht benutzte Kanäle haben ChannelNr 0xFF.
currentOffset | volatile uint8_t | Index des aktuellen Kanals in channels[]

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
addChannel | uint8_t channel | bool | Fügt einen Analogeingang der Liste hinzu.
getAdcByChannel | uint8_t channel | uint16_t | Gibt den zuletzt gemessenen Wert eines Analogeinganges/Kanals zurück.
onInt_AdcComplete |  | void | Interruptbehandlungsroutine
removeAllChannels |  | void | Löscht alle Kanäle aus der Liste.
removeChannel | uint8_t channel | void | Löscht einen Kanal aus der Liste.

Detailbeschreibung AdcIntMulti

Diese Klasse dient zur Verwendung des ADC auf Interrruptbasis bei Verwendung mehrerer analoger Eingänge.

Hinweise:

  • möglichst erst addChannel() und dann configInt() aufrufen
  • durch Setzen von ADC_CHANNEL_COUNT auf die Anzahl der maximal gleichzeitig zu verwendenden Kanäle kann RAM gespart werden

Funktionsbeschreibungen

addChannel(uint8_t channel) bool

Fügt einen Analogeingang der Liste hinzu.

Parameter:

channel Kanalnummer 0-15 des Analogeingangs

Rückgabe:

ok false wenn schon in Liste oder die Liste voll

getAdcByChannel(uint8_t channel) uint16_t

Gibt den zuletzt gemessenen Wert eines Analogeinganges/Kanals zurück.

Parameter:

channel Kananlnummer

Rückgabe:

uint16_t Ananlogwert oder Null wenn er nicht in der Liste ist

onInt_AdcComplete() void

Interruptbehandlungsroutine

removeAllChannels() void

Löscht alle Kanäle aus der Liste.

removeChannel(uint8_t channel) void

Löscht einen Kanal aus der Liste.

Parameter:

channel Kanalnummer


myAVR_Debug

Beschreibung

Stellt etwas Debug-Funktionalität mittels USART her.

Einbindung in alle Dateien:
#define IsDEBUG
#include "debugUart.h"
zusätzlich optional:
#define DEBUG_BAUD 9600 // Standard=19200
#define DEBUG_UART_NR 3 // Standard=0

Inhalt

Name | Kurzbeschreibung
DebugUart | Führt Debug-Ausgaben per UART durch.


DebugUart

Führt Debug-Ausgaben per UART durch.

Vererbung

Basisklassen(n) abgeleitete Klassen
DebugUart

Attribute

protected:

Attribut | Typ | Beschreibung
storedSumFree | uint16_t |

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
checkFreeMem |  | bool | Vergleicht den aktuell verfügbaren Speicher mit dem durch storeFreeMem() gespeicherten, bei Ungleichheit wird ein Fehleroutput durchgeführt und kurz gewartet, sowie false zurückgegeben
getChar |  | short | Liest ein Zeichen von der DebugUart-Schittstelle, mit Warten bis Daten da sind
init |  | void |
printAllocFreelist |  | void | Gibt die Liste der freien Speicherblöcke im Heap aus.
printDez | uint32_t num | void |
printDump | uint8_t* buffer, uint32_t length | void |
printFlash | const char* PROGMEM ptext | void |
printFreeMem |  | void |
printHex | uint32_t num | void |
printRam | const char* ptext, uint16_t size=-1 | void | wenn size=-1 wird bis 0x00 ausgegeben
putChar | char data | void |
storeFreeMem |  | void | speichert den aktuell verfügbaren Speicher

Detailbeschreibung DebugUart

Führt Debug-Ausgaben per UART durch.

Funktionsbeschreibungen

checkFreeMem() bool

Vergleicht den aktuell verfügbaren Speicher mit dem durch storeFreeMem() gespeicherten, bei Ungleichheit wird ein Fehleroutput durchgeführt und kurz gewartet, sowie false zurückgegeben

getChar() short

Liest ein Zeichen von der DebugUart-Schittstelle, mit Warten bis Daten da sind

init() void

printAllocFreelist() void

Gibt die Liste der freien Speicherblöcke im Heap aus.

printDez(uint32_t num) void

printDump(uint8_t* buffer, uint32_t length) void

printFlash(const char* PROGMEM ptext) void

printFreeMem() void

printHex(uint32_t num) void

printRam(const char* ptext, uint16_t size=-1) void

wenn size=-1 wird bis 0x00 ausgegeben

putChar(char data) void

storeFreeMem() void

speichert den aktuell verfügbaren Speicher


myAVR_DigitalInOut

Beschreibung

Digitale Ein-/Ausgangs-Pins

Inhalt

Name | Kurzbeschreibung
DigitalIn | Digitaler Eingabe-Pin
DigitalLine | Verkörpert ein digitales Prozessor-Pin = I/O-Line
DigitalOut | Verkörpert ein digitales Prozessor-Pin als Ausgang.
DigitalOutLowActiv | Verkörpert ein digitales Prozessor-Pin als Ausgang, Low-Aktiv.
DigitalPort | Verkörpert einen digitalen Prozessor-Port.
DigitalPortInput | Verkörpert einen digitalen Eingabe-Port.
DigitalPortOutput | Verkörpert einen digitalen Ausgabe-Port.
PushButton | Taste, die beim Drücken auf Low zieht, d.h. Input-Pin mit Pullup, sie ist nicht entprellt.


DigitalIn

Digitaler Eingabe-Pin [Mehr ...]

Vererbung

Basisklassen(n) abgeleitete Klassen
DigitalLine→
DigitalIn
PushButton

Attribute

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
config | volatile uint8_t& adr, short bitmask, bool pullup | void | Konfiguriert das Pin und speichert die Zugriffsdaten.

Detailbeschreibung DigitalIn

Digitaler Eingabe-Pin

Beispiel: Initialisierung

config(PORTB,BIT5,PULLUP_ON);

Funktionsbeschreibungen

config(volatile uint8_t& adr, short bitmask, bool pullup) void

Konfiguriert das Pin und speichert die Zugriffsdaten.

Parameter:

adr | Portadresse
bit | Bitmaske
pullup | wenn true wir Pullup-Widerstand aktiviert


DigitalLine

Verkörpert ein digitales Prozessor-Pin = I/O-Line [Mehr ...]

Vererbung

Basisklassen(n) abgeleitete Klassen
DigitalLine
DigitalOutLowActiv
DigitalOut
DigitalIn

Attribute

protected:

Attribut | Typ | Beschreibung
bitmask | short | Bitmaske für das Bit der Line
port | volatile uint8_t* | Port der Line

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
getState |  | bool | Ermittelt den Status der Line.

protected:

Name | Parameter | Rückgabewert | Beschreibung
config | volatile unsigned char& adr, short bit, bool output | void | Konfigutiert eine Line und speichert die Zugriffsdaten.

Detailbeschreibung DigitalLine

Verkörpert ein digitales Prozessor-Pin = I/O-Line

Beispiel: Initialisierung

config(PORTC,BIT3,LINE_OUT);

Funktionsbeschreibungen

config(volatile unsigned char& adr, short bit, bool output) void

Konfigutiert eine Line und speichert die Zugriffsdaten.

Parameter:

adr | Portadresse
bit | Bitmaske
output | true wenn Ausgang, sonst Eingang

getState() bool

Ermittelt den Status der Line.

Rückgabe:

bool | false wenn Low
bool | true wenn High


DigitalOut

Verkörpert ein digitales Prozessor-Pin als Ausgang. [Mehr ...]

Vererbung

Basisklassen(n) abgeleitete Klassen
DigitalLine→
DigitalOut

Attribute

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
config | volatile uint8_t& adr, short bitmask | void | Konfiguriert das Pin und speichert die Zugriffsdaten.
off |  | void | Schaltet den Ausgang aus = auf Low
on |  | void | Schaltet den Ausgang an = auf High
toggle |  | void | Schaltet den Ausgang um.

Detailbeschreibung DigitalOut

Verkörpert ein digitales Prozessor-Pin als Ausgang.

Beispiel: Verwendung

...
DigitalOut pinA;
DigitalOut pinB;
...
pinA.config(PORTB,BIT0);
pinB.config(PORTB,BIT1);
pinA.on();
pinB.on();

Funktionsbeschreibungen

config(volatile uint8_t& adr, short bitmask) void

Konfiguriert das Pin und speichert die Zugriffsdaten.

Parameter:

adr | Portadresse
bit | Bitmaske

off() void

Schaltet den Ausgang aus = auf Low

on() void

Schaltet den Ausgang an = auf High

toggle() void

Schaltet den Ausgang um.


DigitalOutLowActiv

Verkörpert ein digitales Prozessor-Pin als Ausgang, Low-Aktiv. [Mehr ...]

Vererbung

Basisklassen(n) abgeleitete Klassen
DigitalLine→
DigitalOutLowActiv

Attribute

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
config | volatile uint8_t& adr, short bitmask | void | Konfiguriert das Pin und speichert die Zugriffsdaten.
off |  | void | Schaltet den Ausgang aus = auf High
on |  | void | Schaltet den Ausgang an = auf Low
toggle |  | void | Schaltet den Ausgang um.

Detailbeschreibung DigitalOutLowActiv

Verkörpert ein digitales Prozessor-Pin als Ausgang, Low-Aktiv.

Beispiel: Verwendung

...
DigitalOutLowActive pinA;
DigitalOutLowActive pinB;
...
pinA.config(PORTB,BIT0);
pinB.config(PORTB,BIT1);
pinA.on();
pinB.on();

Funktionsbeschreibungen

config(volatile uint8_t& adr, short bitmask) void

Konfiguriert das Pin und speichert die Zugriffsdaten.

Parameter:

adr | Portadresse
bit | Bitmaske

off() void

Schaltet den Ausgang aus = auf High

on() void

Schaltet den Ausgang an = auf Low

toggle() void

Schaltet den Ausgang um.


DigitalPort

Verkörpert einen digitalen Prozessor-Port.

Vererbung

Basisklassen(n) abgeleitete Klassen
DigitalPort
DigitalPortInput
DigitalPortOutput

Attribute

protected:

Attribut | Typ | Beschreibung
pinMask | uint8_t | Pin-Maske
port | volatile uint8_t* | Portadresse

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
config | volatile uint8_t& adr, bool output, uint8_t pinMask=0xFF | void | Konfiguriert den Port.

Detailbeschreibung DigitalPort

Verkörpert einen digitalen Prozessor-Port.

Funktionsbeschreibungen

config(volatile uint8_t& adr, bool output, uint8_t pinMask=0xFF) void

Konfiguriert den Port.

Parameter:

adr | Portadresse
output | Port ist Output oder Input
pinMask | Pin-Maske


DigitalPortInput

Verkörpert einen digitalen Eingabe-Port.

Vererbung

Basisklassen(n) abgeleitete Klassen
DigitalPort→
DigitalPortInput

Attribute

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
config | volatile uint8_t& adr, bool pullUp=true, uint8_t pinMask=0xFF | void | Konfiguriert den Port als Eingang.
getPins | volatile uint8_t bitmask | uint8_t | Liefert den aktuellen Wert des Ports unter Berücksichtigung von pinMask und bitmask.
getPort |  | uint8_t | Liefert den aktuellen Wert des Ports unter Berücksichtigung der pinMask.
operator uint8_t |  |  | Casting-Operator nach uint8_t (Byte).

Detailbeschreibung DigitalPortInput

Verkörpert einen digitalen Eingabe-Port.

Funktionsbeschreibungen

config(volatile uint8_t& adr, bool pullUp=true, uint8_t pinMask=0xFF) void

Konfiguriert den Port als Eingang.

Parameter:

adr | Portadresse
pinMask | Maske der zu verwendeneden Pins

getPins(volatile uint8_t bitmask) uint8_t

Liefert den aktuellen Wert des Ports unter Berücksichtigung von pinMask und bitmask.

getPort() uint8_t

Liefert den aktuellen Wert des Ports unter Berücksichtigung der pinMask.

operator uint8_t()

Casting-Operator nach uint8_t (Byte).

Liefert den aktuellen Wert des Ports unter Berücksichtigung der pinMask.


DigitalPortOutput

Verkörpert einen digitalen Ausgabe-Port.

Vererbung

Basisklassen(n) abgeleitete Klassen
DigitalPort→
DigitalPortOutput
Led7Segment

Attribute

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
clearPins | volatile uint8_t bitmask=0xFF | void | Löscht alle von pinMask und bitmask erfassten Pins des Ports.
config | volatile uint8_t& adr, uint8_t pinMask=0xFF | void | Konfiguriert den Port als Ausgang.
getPins | volatile uint8_t bitmask | uint8_t | Liefert den Portstatusunter berücksichtigung von bitmask.
getPort |  | uint8_t | Liefert den aktuellen Portstatus.
operator = | uint8_t data | uint8_t | Zuweisungsoperator für den Port.
setPins | volatile uint8_t bitmask=0xFF | void | Setzt die mit bitmask angegebenen Pins des ports.
setPort | volatile uint8_t state | void | Setzt den Port auf die angegebene Bitkombination unter berücksichtigung der pinMask.
togglePins | volatile uint8_t bitmask=0xFF | void | Schaltet die mit bitmask angegebenen Pins des Ports um.
tristate | bool setTristate=true | void | Schaltett den Port in den Tristate-Modus und wieder zurück.

Detailbeschreibung DigitalPortOutput

Verkörpert einen digitalen Ausgabe-Port.

Funktionsbeschreibungen

clearPins(volatile uint8_t bitmask=0xFF) void

Löscht alle von pinMask und bitmask erfassten Pins des Ports.

config(volatile uint8_t& adr, uint8_t pinMask=0xFF) void

Konfiguriert den Port als Ausgang.

Parameter:

adr | Portadresse
pinMask | Maske der zu verwendeneden Pins

getPins(volatile uint8_t bitmask) uint8_t

Liefert den Portstatusunter berücksichtigung von bitmask.

getPort() uint8_t

Liefert den aktuellen Portstatus.

Gibt den Inhalt des Port-Registers unter berücksichtigung der pinMask zurück.

operator =(uint8_t data) uint8_t

Zuweisungsoperator für den Port.

ermöglicht Portausgaben mit '='.

setPins(volatile uint8_t bitmask=0xFF) void

Setzt die mit bitmask angegebenen Pins des ports.

setPort(volatile uint8_t state) void

Setzt den Port auf die angegebene Bitkombination unter berücksichtigung der pinMask.

togglePins(volatile uint8_t bitmask=0xFF) void

Schaltet die mit bitmask angegebenen Pins des Ports um.

tristate(bool setTristate=true) void

Schaltett den Port in den Tristate-Modus und wieder zurück.

Beim Setzen des Tristate-Modus werder eventuelle PullUps deaktiviert, beim Verlassen werden diese nicht automatisch wiederhergestellt.


PushButton

Taste, die beim Drücken auf Low zieht, d.h. Input-Pin mit Pullup, sie ist nicht entprellt. [Mehr ...]

Vererbung

Basisklassen(n) abgeleitete Klassen
DigitalLine→
DigitalIn→
PushButton

Attribute

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
config | volatile uint8_t& adr, short bitmask | void | Konfiguriert das Pin und speichert die Zugriffsdaten.
isPressed |  | bool | Ermittelt den Button-Status.
operator bool |  |  | Ermittelt ob die konfigurierte Taste gedrückt ist.

Detailbeschreibung PushButton

Taste, die beim Drücken auf Low zieht, d.h. Input-Pin mit Pullup, sie ist nicht entprellt.

Beispiel:

PushButton taste1;
taste1.config(PORTD,BIT2);
if(taste1.isPressed())
{
    led2.on();
}

Funktionsbeschreibungen

config(volatile uint8_t& adr, short bitmask) void

Konfiguriert das Pin und speichert die Zugriffsdaten.

Parameter:

adr | Portadresse
bit | Bitmaske

isPressed() bool

Ermittelt den Button-Status.

Rückgabe:

bool gibt true zurück, wenn der Button gedrückt ist

operator bool()

Ermittelt ob die konfigurierte Taste gedrückt ist.


myAVR_Mk3Lcd

Beschreibung

Paket zur Ansteuerung eines Grafik-LCD mit 128x64 Pixeln vom Typ 64128K, wie es sich auf dem myAVBR Board MK3 befindet.

Inhalt

Name | Kurzbeschreibung
GraficLcd | Klasse, die ein 128x64 sw Grafik-LCD vom Typ 64128K verkörpert. Organisiert zu 8 Zeilen und 128 Spalten, links oben ist Adresse Null, die Bytes stehen senkrecht mit dem niederwertigsten Bit oben.


GraficLcd

Klasse, die ein 128x64 sw Grafik-LCD vom Typ 64128K verkörpert. Organisiert zu 8 Zeilen und 128 Spalten, links oben ist Adresse Null, die Bytes stehen senkrecht mit dem niederwertigsten Bit oben. [Mehr ...]

Vererbung

Basisklassen(n) abgeleitete Klassen
GraficLcd

Attribute

public:

Attribut | Typ | Beschreibung
fontStyle | uint8_t | Darstellungsweise des Fonts, eines von: LCD_FONT_NORMAL, LCD_FONT_FIXED, LCD_FONT_WIDE, LCD_FONT_FIXED+LCD_FONT_WIDE

protected:

Attribut | Typ | Beschreibung
lineC86 | DigitalOut | LCD-Pin: Festlegung des Kommunikationsmodus
lineCs | DigitalOutLowActiv | LCD-Pin: ChipSelect
lineE | DigitalOut | LCD-Pin
lineLight | DigitalOut | LCD-Pin: Schaltet die Hintergrundbeleuchtung
linePs | DigitalOut | LCD-Pin
lineRes | DigitalOutLowActiv | LCD-Pin
lineRs | DigitalOut | LCD-Pin
lineRw | DigitalOut | LCD-Pin
portData | volatile unsigned char* | LCD-Port für Daten (8bit)

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
bitmapFlash | uint8_t x, uint8_t y, const uint8_t* pFlash, uint8_t mode=LCD_MODE_SET | void | Stellt ein Bitmap aus dem Flash dar.
circle | uint8_t x0, uint8_t y0, uint8_t radius, bool fill=false, uint8_t mode=LCD_MODE_SET | void | Zeichnet einen Kreis.
clear |  | void | Löscht den Inhalt auf dem LCD.
configLcd | volatile unsigned char& portControl, volatile unsigned char& portData | void | Initialisiert das LCD.
line | uint8_t xstart, uint8_t ystart, uint8_t xend, uint8_t yend, uint8_t mode=LCD_MODE_SET | void | Zeichnet eine Linie auf dem LCD.
modify8Pixel | uint8_t data, uint8_t mode | void | Elementare Zugriffsfunktion auf das LCD. Es wird auf der aktuellen Adresse ein Byte geändert und der Adresszeiger weitergesetzt. Dadurch werden 8 Pixel bearbeitet.
readData |  | uint8_t | Elementare Zugriffsfunktion auf das LCD. Es wird von der aktuellen Adresse ein Byte gelesen. Dieses Byte verkörpert 8 Pixel.
rect | uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2, bool fill=false, uint8_t mode=LCD_MODE_SET | void | Zeichnet ein Rechteck.
sendCmd | uint8_t cmd | void | Elementare Zugriffsfunktion auf das LCD. Sendet ein Kommando an das LCD.
sendData | uint8_t data | void | Elementare Zugriffsfunktion auf das LCD.
setPixel | uint8_t x, uint8_t y, uint8_t mode=LCD_MODE_SET | void | Setzt ein Pixel.
setPos | uint8_t x, uint8_t y | void | Setzt die Position der nächsten Ausgabe, z.B. für Texte. Der y-Wert wird auf eine 8er Grenze abgerundet.
setReverse | bool reverse=1 | void | Setzt die Invers-Darstellungsform des LCD.
waitForReady |  | void | Elementare Zugriffsfunktion auf das LCD. Wartet auf die Bereitschaft des LCD-Controllers.
writeChar | uint8_t c, uint8_t mode=LCD_MODE_SET, uint8_t maxWidth=0xFF | uint8_t | Gibt ein Zeichen an aktueller Position aus. Die aktuelle Ausgabeposition wird weitergerückt. Es wird dabei die Fonteinstellung fontStyle berücksichtigt.
writeTextFlash | const prog_uchar* text, uint8_t mode=LCD_MODE_SET, uint8_t maxWidth=0xFF | uint8_t | Gibt einen Text aus dem Flash aus. Die aktuelle Ausgabeposition wird weitergerückt.
writeTextRam | const char* text, uint8_t mode=LCD_MODE_SET, uint8_t maxWidth=0xFF | uint8_t | Gibt einen Text aus dem RAM aus. Die aktuelle Ausgabeposition wird weitergerückt.

protected:

Name | Parameter | Rückgabewert | Beschreibung
initLcd |  | void | Interne Initialisierungsfunktion
send | uint8_t data | void | Elementare Zugriffsfunktion auf das LCD. Sendet ein Byte.

Detailbeschreibung GraficLcd

Klasse, die ein 128x64 sw Grafik-LCD vom Typ 64128K verkörpert. Organisiert zu 8 Zeilen und 128 Spalten, links oben ist Adresse Null, die Bytes stehen senkrecht mit dem niederwertigsten Bit oben.

Alle Koordinatenangaben beziehen sich auf die linke obere Ecke = 0,0.

Beispiel: Initialisierung

// Quick-Connect-Jumper auf myAVR Board MK3
lcd.configLcd(PORTA,PORTC);
Schaltung des Quick-Connect-Jumper auf myAVR Board MK3:
LCD-Control-Port = PortA
LCD-Data-Port = PortC
Bitbelegung des LCD-Control-Port:
7 = PS (std=High=parallel Mode)
    6 = C86 (std=High=6800 Mode)
    5 = unbenutzt
    4 = /RD = E (Schreibflanke H->L)
    3 = /WR = R/W (low=Schreiben)
    2 = RS (low=ControlData; high=DisplayData)
    1 = /RES (low=activ; std=high)
    0 = /CS1 (ChipSelect=muss low sein; std=high)

Funktionsbeschreibungen

bitmapFlash(uint8_t x,uint8_t y,const uint8_t* pFlash,uint8_t mode=LCD_MODE_SET) void

Stellt ein Bitmap aus dem Flash dar.

Datenaufbau: Breite (1 Byte), Höhe (1 Byte), Pixeldaten.

Beispiel:

// Bitmap-Daten generiert mit myAVR-BitmapConverter_MK3_LCD.exe
static const PROGMEM uint8_t bmp1[] =
{
88,23, // x,y
0x00, 0x80, 0xC0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
0xC0, 0x80, 0x00, 0x00, 0x00, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
0x00, 0x00, 0xE0, 0xF8, 0xFC, 0xFE, 0xFF, 0xFF, 0x1F, 0x1F, 0x1F, 0xFF, 0xFF, 0xFF, 0xFE, 0xFC, 0xF8, 0x00,
0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00,
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x0F, 0x1F, 0xFF, 0xFF, 0xFE, 0xFE, 0xFC, 0xF8, 0xFE, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFC, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1E, 0x1E, 0x1E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00,
0x00, 0x0F, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x07, 0x00, 0x00, 0x00, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xF0, 0x03, 0x03, 0x03, 0x03,
0x03, 0x03, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00,
0x00, 0x00, 0x00, 0x79, 0x79, 0x7B, 0x7B, 0x7B, 0x7F, 0x7F, 0x3F, 0x3F, 0x1F, 0x07, 0x00, 0x00, 0x03, 0x03,
0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03,
0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
0 // Ende
};
lcd.bitmapFlash(8,8,bmp1);

Parameter:

x | x-Koordinate der linken oberen Ecke
y | y-Koordinate der linken oberen Ecke (wird auf 8 abgerundet)
pFlash | Zeiger auf den Anfang der Bitmapdaten
mode | (optional) Darstellungsmodus, eines von LCD_MODE_SET, LCD_MODE_CLR, LCD_MODE_XOR

circle(uint8_t x0, uint8_t y0, uint8_t radius, bool fill=false,uint8_t mode=LCD_MODE_SET) void

Zeichnet einen Kreis.

Parameter:

x0 | x-Koordinate des Mittelpunktes
y0 | y-Koordinate des Mittelpunktes
radius | Radius
fill | (optional) wenn true, wird der Kreis gefüllt
mode | (optional) Darstellungsmodus, eines von LCD_MODE_SET, LCD_MODE_CLR, LCD_MODE_XOR

clear() void

Löscht den Inhalt auf dem LCD.

configLcd(volatile unsigned char& portControl, volatile unsigned char& portData) void

Initialisiert das LCD.

Beispiel: Initialisierung

// Quick-Connect-Jumper auf myAVR Board MK3
lcd.configLcd(PORTA,PORTC);

initLcd() void

Interne Initialisierungsfunktion

line(uint8_t xstart,uint8_t ystart,uint8_t xend, uint8_t yend, uint8_t mode=LCD_MODE_SET) void

Zeichnet eine Linie auf dem LCD.

Parameter:

xstart | x-Koordinate des Ausgangspunktes
ystart | y-Koordinate des Ausgangspunktes
xend | x-Koordinate des Endpunktes
yend | y-Koordinate des Endpunktes
mode | (optional) Darstellungsmodus, eines von LCD_MODE_SET, LCD_MODE_CLR, LCD_MODE_XOR

modify8Pixel(uint8_t data, uint8_t mode) void

Elementare Zugriffsfunktion auf das LCD. Es wird auf der aktuellen Adresse ein Byte geändert und der Adresszeiger weitergesetzt. Dadurch werden 8 Pixel bearbeitet.

Parameter:

data | zu schreibende Daten
mode | Darstellungsmodus, eines von LCD_MODE_SET, LCD_MODE_CLR, LCD_MODE_XOR

readData() uint8_t

Elementare Zugriffsfunktion auf das LCD. Es wird von der aktuellen Adresse ein Byte gelesen. Dieses Byte verkörpert 8 Pixel.

Rückgabe:

uint8_t gelesenes Byte

rect(uint8_t x1,uint8_t y1, uint8_t x2, uint8_t y2, bool fill=false, uint8_t mode=LCD_MODE_SET) void

Zeichnet ein Rechteck.

Parameter:

x1,y1 | Koordinaten einer beliebigen Ecke
x2,y2 | Koordinaten der diagonal entgegengesetzten Ecke
fill | (optional) wenn true, wird das Recheck gefüllt
mode | (optional) Darstellungsmodus, eines von LCD_MODE_SET, LCD_MODE_CLR, LCD_MODE_XOR

send(uint8_t data) void

Elementare Zugriffsfunktion auf das LCD. Sendet ein Byte.

sendCmd(uint8_t cmd) void

Elementare Zugriffsfunktion auf das LCD. Sendet ein Kommando an das LCD.

Parameter:

cmd Kommando

sendData(uint8_t data) void

Elementare Zugriffsfunktion auf das LCD.

Sendet ein Datenbyte an das LCD.
PE
data = Datenbyte

setPixel(uint8_t x,uint8_t y,uint8_t mode=LCD_MODE_SET) void

Setzt ein Pixel.

PE
x,y = Koordinaten des Pixel
mode = (optional) Darstellungsmodus, eines von LCD_MODE_SET, LCD_MODE_CLR, LCD_MODE_XOR

setPos(uint8_t x, uint8_t y) void

Setzt die Position der nächsten Ausgabe, z.B. für Texte. Der y-Wert wird auf eine 8er Grenze abgerundet.

Parameter:

x,y Koordinaten

setReverse(bool reverse=1) void

Setzt die Invers-Darstellungsform des LCD.

Parameter:

reverse wenn true wird alles Schwarz-Weiß-Vertauscht dargestellt

waitForReady() void

Elementare Zugriffsfunktion auf das LCD. Wartet auf die Bereitschaft des LCD-Controllers.

writeChar(uint8_t c, uint8_t mode=LCD_MODE_SET, uint8_t maxWidth=0xFF) uint8_t

Gibt ein Zeichen an aktueller Position aus. Die aktuelle Ausgabeposition wird weitergerückt. Es wird dabei die Fonteinstellung fontStyle berücksichtigt.

Parameter:

c | Zeichen (ASCII), das geschrieben werden soll
mode | Ausgabemode, eines von LCD_MODE_SET, LCD_MODE_INVERS, LCD_MODE_CLR, LCD_MODE_XOR
maxWidth | (optional) maximale Breite der Ausgabe

Rückgabe:

uint8_t Breite der erfolgten Ausgabe in Pixeln

writeTextFlash(const prog_uchar* text,uint8_t mode=LCD_MODE_SET, uint8_t maxWidth=0xFF) uint8_t

Gibt einen Text aus dem Flash aus. Die aktuelle Ausgabeposition wird weitergerückt.

Parameter:

text | Adresse des Textanfanges im Flash
mode | (optional) Darstellungsmodus, eines von LCD_MODE_SET, LCD_MODE_CLR, LCD_MODE_XOR
maxWidth | (optional) maximale Breite in Pixeln, die ausgegeben werden darf

Rückgabe:

uint8_t ausgegebene Breite

writeTextRam(const char* text,uint8_t mode=LCD_MODE_SET, uint8_t maxWidth=0xFF) uint8_t

Gibt einen Text aus dem RAM aus. Die aktuelle Ausgabeposition wird weitergerückt.

Parameter:

text | Adresse des Textanfanges im RAM
mode | (optional) Darstellungsmodus, eines von LCD_MODE_SET, LCD_MODE_CLR, LCD_MODE_XOR
maxWidth | (optional) maximale Breite in Pixeln, die ausgegeben werden darf

Rückgabe:

uint8_t ausgegebene Breite


myAVR_Mk3LcdExt

Beschreibung

Erweiterte Klassen zum Mk3Lcd.

Inhalt

Name | Kurzbeschreibung
LcdBitmap |
LcdMenu | Klasse zur Darstellung eines Menüs als Listbox, einschließlich Rollen.
LcdMenuModal |
LcdScrollBar | Klasse zur Darstellung eines Rollbalkens


LcdBitmap

Vererbung

Basisklassen(n) abgeleitete Klassen
LcdBitmap

Attribute

public:

Attribut | Typ | Beschreibung
background | uint8_t | Hintergrund, wird bei hide() und Positionsänderung verwendet. Eines von LCD_MODE_CLR oder LCD_MODE_SET.
mode | uint8_t | Darstellungsart, wird bei hide() und Positionsänderung verwendet. Eines von LCD_MODE_CLR, LCD_MODE_SEToder LCD_MODE_XOR.

protected:

Attribut | Typ | Beschreibung
currentShift | uint8_t | aktuelle Bitverschiebung 0..7
height | uint8_t | Höhe des Bitmaps in Pixeln
lcd | GraficLcd* | Zeiger auf das zu verwendende GraficLcd-Objekt
pData | uint8_t* | Beginn des Speicherbereiches der Bitmap-Daten inkl. zusätzlicher Shift-Zeile.
posX | uint8_t | x-Koordinate der linken oberen Ecke
posY | uint8_t | y-Koordinate der linken oberen Ecke
pSetData | uint8_t* | Zeiger für das Füllen der Bitmapdaten, er zeigt auf die nächste zu beschreibende Speicherstelle.
state | uint8_t | Status, eine Kombination aus: isVisible, isHidden
width | uint8_t | Breite des Bitmaps

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
config | GraficLcd* lcd | void | Initialisierung der Klasse.
deinit |  | void | Gibt den Speicher frei.
getHeight |  | uint8_t | Gibt die Höhe des Bitmaps zurück.
getWidth |  | uint8_t | Gibt die Breite des Bitmaps zurück.
getX |  | uint8_t | Gibt die x-Koordinate der linken oberen Ecke zurück.
getY |  | uint8_t | Gibt die y-Koordinate der linken oberen Ecke zurück.
hide |  | void | Löscht das Bitmap vom LCD und füllt ggf. den Bereich entsprechend background.
loadFromFlash | const uint8_t* pBitmap | bool | Lädt ein Bitmap aus dem Flash.
paint |  | void | Zeichnet das Bitmap.
setData | uint8_t data | void | Speichert ein Byte von Bitmapdaten.
setDataRam | uint8_t* pData, uint16_t size | void | Speichert mehrere Byte von Bitmapdaten.
setPos | uint8_t x, uint8_t y | void | Setzt die Position der Bitmaps auf dem LCD. Wenn das Bitmap bereits an dieser Postion sichtbar war, wird nicht neu gezeichnet.
setSize | uint8_t width, uint8_t height | bool | Initialisiert die Größe eines zu ladenden Bitmaps.
show |  | void | Zeigt das Bitmap, wenn es hidden oder nicht dargestellt war.

protected:

Name | Parameter | Rückgabewert | Beschreibung
shift | uint8_t newShift | void | Verschiebt das Bitmap in y-Position im RAM-Puffer, wenn es notwendig ist. newShift wird gespeichert.

Detailbeschreibung LcdBitmap

Funktionsbeschreibungen

config(GraficLcd* lcd) void

Initialisierung der Klasse.

Parameter:

lcd Zeiger auf zu verwendendes LCD

deinit() void

Gibt den Speicher frei.

getHeight() uint8_t

Gibt die Höhe des Bitmaps zurück.

getWidth() uint8_t

Gibt die Breite des Bitmaps zurück.

getX() uint8_t

Gibt die x-Koordinate der linken oberen Ecke zurück.

getY() uint8_t

Gibt die y-Koordinate der linken oberen Ecke zurück.

hide() void

Löscht das Bitmap vom LCD und füllt ggf. den Bereich entsprechend background.

loadFromFlash(const uint8_t* pBitmap) bool

Lädt ein Bitmap aus dem Flash.

Datenaufbau: Breite (1 Byte), Höhe (1 Byte), Pixeldaten.

Beispiel:

// Bitmap-Daten generiert mit myAVR-BitmapConverter_MK3_LCD.exe
static const PROGMEM uint8_t bmp1[] =
{
88,23, // x,y
0x00, 0x80, 0xC0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
0xC0, 0x80, 0x00, 0x00, 0x00, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
0x00, 0x00, 0xE0, 0xF8, 0xFC, 0xFE, 0xFF, 0xFF, 0x1F, 0x1F, 0x1F, 0xFF, 0xFF, 0xFF, 0xFE, 0xFC, 0xF8, 0x00,
0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00,
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x0F, 0x1F, 0xFF, 0xFF, 0xFE, 0xFE, 0xFC, 0xF8, 0xFE, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFC, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1E, 0x1E, 0x1E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00,
0x00, 0x0F, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x07, 0x00, 0x00, 0x00, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xF0, 0x03, 0x03, 0x03, 0x03,
0x03, 0x03, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00,
0x00, 0x00, 0x00, 0x79, 0x79, 0x7B, 0x7B, 0x7B, 0x7F, 0x7F, 0x3F, 0x3F, 0x1F, 0x07, 0x00, 0x00, 0x03, 0x03,
0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03,
0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
0 // Ende
};
lcd.bitmapFlash(8,8,bmp1);

Parameter:

pFlash Zeiger auf den Anfang der Bitmapdaten

paint() void

Zeichnet das Bitmap.

setData(uint8_t data) void

Speichert ein Byte von Bitmapdaten.

Parameter:

data zu speicherndes Byte

setDataRam(uint8_t* pData,uint16_t size) void

Speichert mehrere Byte von Bitmapdaten.

Parameter:

pData | Zeiger auf zu speicherndes Byte im RAM
size | Anzahl der Bytes

setPos(uint8_t x, uint8_t y) void

Setzt die Position der Bitmaps auf dem LCD. Wenn das Bitmap bereits an dieser Postion sichtbar war, wird nicht neu gezeichnet.

Parameter:

x | x-Koordinate der linken oberen Ecke
y | y-Koordinate der linken oberen Ecke

setSize(uint8_t width,uint8_t height) bool

Initialisiert die Größe eines zu ladenden Bitmaps.

Nachfolgend werden die Bitmapdaten erwartet. Siehe setData() und setDataRam()

Parameter:

width | Breite des Bitmaps
height | Höhe des Bitmaps

shift(uint8_t newShift) void

Verschiebt das Bitmap in y-Position im RAM-Puffer, wenn es notwendig ist. newShift wird gespeichert.

Parameter:

newShift neuer Shift-Wert

show() void

Zeigt das Bitmap, wenn es hidden oder nicht dargestellt war.


LcdMenu

Klasse zur Darstellung eines Menüs als Listbox, einschließlich Rollen. [Mehr ...]

Vererbung

Basisklassen(n) abgeleitete Klassen
LcdMenu
LcdMenuModal

Attribute

public:

Attribut | Typ | Beschreibung
title | String | Text des Titels, wenn leer wird keine Titelzeile dargestellt.

protected:

Attribut | Typ | Beschreibung
bottom | uint8_t | y-Koordinate des unteren Randes
content | String |
countEntries | uint8_t | Gesamtanzahl aller sichtbaren und nichtsichtbaren Einträge.
firstEntry | uint8_t | Index des obersten Eintrages, nullbasierend
fontStyle | uint8_t | Zu verwendender Font-Style. Bei config(..) wird der aktuelle gespeichert.
lcd | GraficLcd* | Zeiger auf das zu verwendende GraficLcd-Objekt
left | uint8_t | x-Koordinate des linken Randes
right | uint8_t | x-Koordinate des rechten Randes
selEntry | uint8_t | Index des ausgewählten Eintrages, nullbasierend
top | uint8_t | y-Koordinate des oberen Randes

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
action | uint8_t action | void | Löst eine Aktion im Menu aus.
clear | uint8_t mode=LCD_MODE_CLR | void | Löscht den Rechteck-Bereich, den das Menü einnimmt.
config | GraficLcd* lcd, uint8_t left, uint8_t top, uint8_t right, uint8_t bottom | void | Initialisierung der Klasse.
getSel |  | uint8_t | Gibt den Index des aktuell ausgewählten Eintrages wieder, nullbasierend..
getSelText |  | String | Gibt den vollständigen Text des aktuell ausgewählten Eintrages zurück.
paint | bool paintFrame=true | void | Zeichnet das Menü. In der Regel muss dies Funktion nicht separat aufgerufen werden.
setSel | uint8_t sel | bool | Legt das aktuell zu selektierende Element fest.
show | const String& entries | void | Initialisiert den Inhalt und stellt ihn erstmalig dar. Die Einträge werden als eine Zeichenkette, getrennt durch senkrechte Striche, übergeben.

protected:

Name | Parameter | Rückgabewert | Beschreibung
getLines |  | uint8_t | Ermittlung der Anzahl der sichtbaren Menü-Zeilen ohne Titelzeile.
onBack |  | void | Ereignis, das ausgelöst wird, wenn die Aktion 'b' = back ausgeführt wurde.
onChoice |  | void | Ereignis, das ausgelöst wird, wenn die Aktion 'c' = choice ausgeführt wurde.
onSelChange |  | void | Ereignis, wenn der ausgewählt dargestellte Eintrag geändert wurde.
onShow |  | void | Ereignis, wird in show() nach Speichern der Daten und vor Verarbeitung/Darstellung ausgelöst.
paintSel |  | void | Zeichnet den Auswahl-Marker neu.

Detailbeschreibung LcdMenu

Klasse zur Darstellung eines Menüs als Listbox, einschließlich Rollen.

Beispiel: Initialisierung

// LCD per Quick-Connect-Jumper
lcd.configLcd(PORTA,PORTC);
// Menü
menu.title="Auswahl";
menu.config(&lcd,10,0,100,63-8);
menu.show("ja|nein|sonstwas|nochwas|irgendwas|was anderes|was-weiss-ich-oder-etwas-ganz-anderes|nix weiter gjöäüß");
BSP: Verwendung - Steuerung
if(btnUp.isPressed())
    menu.work('u');		// Taste nach oben
...
Ereignisbehandlung in abgeleiteter Klasse
void MeinMenu::onSelect()
{
    // Ausgabebereich löschen
    app.lcd.rect(0,56,127,63,true,LCD_MODE_CLR);
    // Ausgabe
    app.lcd.setPos(1,56);
    String txt;
    txt.fromInt(getSel());
    app.lcd.writeTextRam(txt);
    app.lcd.writeTextRam(": ");
    app.lcd.writeTextRam(getSelText());
}

Funktionsbeschreibungen

action(uint8_t action) void

Löst eine Aktion im Menu aus.

Parameter:

action u=hoch(up), d=runter(down), c=Auswahl(choice), b=zurück(back)

clear(uint8_t mode=LCD_MODE_CLR) void

Löscht den Rechteck-Bereich, den das Menü einnimmt.

Parameter:

mode (optional) Darstellungsmodus, eines von LCD_MODE_SET, LCD_MODE_CLR, LCD_MODE_XOR

config(GraficLcd* lcd, uint8_t left, uint8_t top, uint8_t right, uint8_t bottom) void

Initialisierung der Klasse.

Beispiel:

// LCD per Quick-Connect-Jumper des MyAVR Board MK3
lcd.configLcd(PORTA,PORTC);

Parameter:

lcd | Zeiger auf zu verwendendes LCD
left, top, right, bottom | Koordinaten des Menübereiches, wobei top und bottom an die Text-Zeilen angepasst wird

getLines() uint8_t

Ermittlung der Anzahl der sichtbaren Menü-Zeilen ohne Titelzeile.

getSel() uint8_t

Gibt den Index des aktuell ausgewählten Eintrages wieder, nullbasierend..

Rückgabe:

uint8_t index, nullbasierend

getSelText() String

Gibt den vollständigen Text des aktuell ausgewählten Eintrages zurück.

Rückgabe:

String Text des Eintrages

onBack() void

Ereignis, das ausgelöst wird, wenn die Aktion 'b' = back ausgeführt wurde.

onChoice() void

Ereignis, das ausgelöst wird, wenn die Aktion 'c' = choice ausgeführt wurde.

onSelChange() void

Ereignis, wenn der ausgewählt dargestellte Eintrag geändert wurde.

onShow() void

Ereignis, wird in show() nach Speichern der Daten und vor Verarbeitung/Darstellung ausgelöst.

paint(bool paintFrame=true) void

Zeichnet das Menü. In der Regel muss dies Funktion nicht separat aufgerufen werden.

Parameter:

paintFrame wenn true wird auch der Rahmen und Titel gezeichnet

paintSel() void

Zeichnet den Auswahl-Marker neu.

setSel(uint8_t sel) bool

Legt das aktuell zu selektierende Element fest.

Es wird bei Bedarf gescrollt und neu gezeichnet.

Parameter:

sel index des Elementes, nullbasierend

Rückgabe:

bool true wenn erfolgreich

show(const String& entries) void

Initialisiert den Inhalt und stellt ihn erstmalig dar. Die Einträge werden als eine Zeichenkette, getrennt durch senkrechte Striche, übergeben.

Parameter:

entries Zeichenkette mit '|' zwischen den Einträgen


LcdMenuModal

Vererbung

Basisklassen(n) abgeleitete Klassen
LcdMenu→
LcdMenuModal

Attribute

protected:

Attribut | Typ | Beschreibung
joy | DigitalPortInput |

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
showModal |  | uint8_t | Führt die Menü-Auswahl durch.

protected:

Name | Parameter | Rückgabewert | Beschreibung
init |  | void | Initialisiert die Joystik-Hardware.
waitJoy |  | void | Wartet bis Tastenwiederholung.

Detailbeschreibung LcdMenuModal

Funktionsbeschreibungen

init() void

Initialisiert die Joystik-Hardware.

showModal() uint8_t

Führt die Menü-Auswahl durch.

Es wird das Menü angezeigt, die Navigation entsprechend der Joystick-Eingaben durchgeführt und bei Mittel-Betätigung des Joysticks (=choice) das Menü beendet. Es wird ein nullbasierender Index des gewählten Eintrages zurückgegeben.

Rückgabe:

uint8_t gewählter Index

waitJoy() void

Wartet bis Tastenwiederholung.


LcdScrollBar

Klasse zur Darstellung eines Rollbalkens

Vererbung

Basisklassen(n) abgeleitete Klassen
LcdScrollBar

Attribute

protected:

Attribut | Typ | Beschreibung
bottom | uint8_t | y-Koordinate des unteren Randes
fullRange | uint16_t | voller Bezugsbereich, der als Rollbalken visualisiert werden soll
lcd | GraficLcd* | Zeiger auf das zu verwendende GraficLcd-Objekt
left | uint8_t | x-Koordinate des linken Randes
right | uint8_t | x-Koordinate des rechten Randes
scrollPos | uint16_t | oberer nichtsichtbarer Bereich bzw. Beginn des sichtbaren Bereiches, der als Rollbalken visualisiert werden soll
top | uint8_t | y-Koordinate des oberen Randes
visibleRange | uint16_t | sichtbarer Teil des Bezugsbereiches, der als Rollbalken visualisiert werden soll

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
config | GraficLcd* lcd, uint8_t left, uint8_t top, uint8_t right, uint8_t bottom | void | Initialisierung der Klasse.
paint | bool all=true | void | Zeichnet den Rollbalken.
setFullRange | const uint16_t& fullRange, const uint16_t& scrollPos, const uint16_t& visibleRange | void | Setzt die Bezugswerte.
setScrollPos | const uint16_t& scrollPos | void | Setzt die aktuelle Position des sichtbaren Bereiches.

Detailbeschreibung LcdScrollBar

Klasse zur Darstellung eines Rollbalkens

Funktionsbeschreibungen

config(GraficLcd* lcd, uint8_t left,uint8_t top, uint8_t right,uint8_t bottom) void

Initialisierung der Klasse.

Parameter:

lcd | Zeiger auf zu verwendendes LCD
left, top, right, bottom | Koordinaten des Rollbalkens

paint(bool all=true) void

Zeichnet den Rollbalken.

Parameter:

all (optional) wenn true wird auch der Rand gezeichnet

setFullRange(const uint16_t& fullRange, const uint16_t& scrollPos, const uint16_t& visibleRange) void

Setzt die Bezugswerte.

Parameter:

fullRange | Bezugswert des Gesamtbereiches
scrollPos | Bezugswert des oberen nicht sichtbaren Bereiches bzw. der oberen Position des sichtbaren Bereiches
visibleRange | Bezugswert des sichtbaren Bereiches

setScrollPos(const uint16_t& scrollPos) void

Setzt die aktuelle Position des sichtbaren Bereiches.

Parameter:

scrollPos Bezugswert des oberen nicht sichtbaren Bereiches bzw. der oberen Position des sichtbaren Bereiches


myAVR_Mk3_SdCard

Beschreibung

Das Paket ermöglicht die sofortige Verwendung der microSD-Card durch die bereits enthaltene Initialisierung.

Zur Verwenung mit dem myAVR Board MK3 bzw der Stamp64/256 PLUS.

Inhalt

Name | Kurzbeschreibung
SdCardMK3 |


SdCardMK3

Vererbung

Basisklassen(n) abgeleitete Klassen
MmcCard→
Fat→
SdCardMK3

Attribute

protected:

Attribut | Typ | Beschreibung
spiMaster | SpiMaster | Instanz des SpiMasters.

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
config |  | bool | Initialisierung des SpiMasters und der Fat

Detailbeschreibung SdCardMK3

Funktionsbeschreibungen

config() bool

Initialisierung des SpiMasters und der Fat


myAVR_myEthernet

Beschreibung

Klassenstruktur zur Realisierung eines Webservers oder anderer Ethernetlösungen.

Inhalt

Name | Kurzbeschreibung
ENC28J60 | Klasse zur Hardwareverwaltung des Ethernet-Chips ENC28J60.
Ethernet | Klasse zur Behandlung von Ethernet-Datenverkehr.
EthernetTcp | Klasse zum Aufbau und Halten von TCP/IP-Verbindungen.
Webserver | Klasse zur Verwendung des Ethernet-Moduls als Webserver.


ENC28J60

Klasse zur Hardwareverwaltung des Ethernet-Chips ENC28J60.

Vererbung

Basisklassen(n) abgeleitete Klassen
ENC28J60
Ethernet

Attribute

public:

Attribut | Typ | Beschreibung
myMacAddress[6] | uint8_t | eigene MAC-Adresse

protected:

Attribut | Typ | Beschreibung
delayWert2 | volatile uint16_t | Down-Counter für Timeout2.
delayWert | volatile uint16_t | Down-Counter für Timeout.
nextPacketPtr | unsigned int | Zeiger auf nächste Daten innerhalb des ENC28J60.
spi | SpiMaster* | Zeiger auf den SPI-Master, der verwendet werden soll.

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
configEnc | uint16_t maxFrameLength | void | Initialisierung der ENC28J60.
receivePacket | unsigned int maxlen, unsigned char* packet | unsigned int | Holt ein empfangenes Paket.
sendPacket | unsigned int len, unsigned char* packet | void | Sendet ein Paket.
workOnTimer10ms |  | void | Von außen aufgerufen bei Timerinterrupt alle 10ms.

protected:

Name | Parameter | Rückgabewert | Beschreibung
checkConnection |  | bool | Prüft die Verbindung anhand des Lesens der MAC-Adresse.
delay | unsigned int us | void | Warteroutine, timergesteuert.
phyWrite | unsigned char address, unsigned int data | void | Schreibt ein PHY-Datenbyte und wartet bis es erfolgreich geschrieben wurde.
readBuffer | unsigned int len, unsigned char * data | void | Liest Daten aus dem BUF_MEM des Chips.
readCtrl | unsigned char address | unsigned char | Liest ein Byte aus dem CTRL_REG.
readOp | unsigned char op, unsigned char address | unsigned char | Sendet Read-Kommando und empfängt ein Byte, der Chip wird aktiviert und deaktiviert.
receivePacketLength |  | unsigned int | Paketlänge ermitteln.
setBank | unsigned char address | void | Setzt die aktuelle Bank-Adresse im Chip, falls es nicht die aktuelle ist.
write | unsigned char address, unsigned char data | void | Schreibt ein Byte in das CTRL_REG.
writeBuffer | unsigned int len, unsigned char * data | void | Schreibt Daten in den BUF_MEM des Chips.
writeOp | unsigned char op, unsigned char address, unsigned char data | void | Schreibt ein Byte und aktiviert/deaktiviert den Chip für diese Operation.

Detailbeschreibung ENC28J60

Klasse zur Hardwareverwaltung des Ethernet-Chips ENC28J60.

Funktionsbeschreibungen

checkConnection() bool

Prüft die Verbindung anhand des Lesens der MAC-Adresse.

configEnc(uint16_t maxFrameLength) void

Initialisierung der ENC28J60.

Parameter:

maxFrameLength maximale Paketgröße

delay(unsigned int us) void

Warteroutine, timergesteuert.

Parameter:

us Zeit in 1/10ms

phyWrite(unsigned char address, unsigned int data) void

Schreibt ein PHY-Datenbyte und wartet bis es erfolgreich geschrieben wurde.

Parameter:

address | Adresse
data | Daten

readBuffer(unsigned int len, unsigned char * data) void

Liest Daten aus dem BUF_MEM des Chips.

Parameter:

len | Länge
data | Zeiger auf die Daten

readCtrl(unsigned char address) unsigned char

Liest ein Byte aus dem CTRL_REG.

Parameter:

address Adresse

Rückgabe:

unsigned char Daten

readOp(unsigned char op, unsigned char address) unsigned char

Sendet Read-Kommando und empfängt ein Byte, der Chip wird aktiviert und deaktiviert.

Parameter:

op | Operation
adress | Adresse

Rückgabe:

unsigned char daten

receivePacket(unsigned int maxlen, unsigned char* packet) unsigned int

Holt ein empfangenes Paket.

Parameter:

maxlen | Puffergröße
packet | Puffer

Rückgabe:

unsigned int Länge

receivePacketLength() unsigned int

Paketlänge ermitteln.

Rückgabe:

unsigned int Länge

sendPacket(unsigned int len, unsigned char* packet) void

Sendet ein Paket.

Parameter:

len | Länge
packet | Buffer

setBank(unsigned char address) void

Setzt die aktuelle Bank-Adresse im Chip, falls es nicht die aktuelle ist.

Parameter:

address Soll-Bank-Adresse

workOnTimer10ms() void

Von außen aufgerufen bei Timerinterrupt alle 10ms.

Zählt die Timeout-Counter herunter.

write(unsigned char address, unsigned char data) void

Schreibt ein Byte in das CTRL_REG.

Parameter:

address | Adresse
data | Daten

writeBuffer(unsigned int len, unsigned char * data) void

Schreibt Daten in den BUF_MEM des Chips.

Parameter:

len | Länge
data | Zeiger auf die Daten

writeOp(unsigned char op, unsigned char address, unsigned char data) void

Schreibt ein Byte und aktiviert/deaktiviert den Chip für diese Operation.

Parameter:

op | Operation
adress | Adresse
data | daten


Ethernet

Klasse zur Behandlung von Ethernet-Datenverkehr.

Vererbung

Basisklassen(n) abgeleitete Klassen
ENC28J60→
Ethernet
EthernetUdp
EthernetTcp

Attribute

public:

Attribut | Typ | Beschreibung
myIP | uint32_t | Die eigene IP-Adresse.
myNetworkmask | uint32_t | Die eigene Subnetzmaske.

protected:

Attribut | Typ | Beschreibung
arpTable | ARP_TABLE | Eine ARP-Tabelle.
byteCounter | uint32_t | Zähler, wieviel Bytes übertragen wurden
locked | uint8_t | Dient zum Sperren der work-Funktion, wenn z.B. gerade eine Frame gesendet wird.
maxFrameLength | uint16_t |
packetCounter | uint32_t |

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
configEthernet | uint16_t maxFrameLength=400 | void | Konfiguration des Ethernets.
workEthernet |  | void | Bearbeitet Pakete.
workOnTimer10ms |  | void | Von außen aufgerufen, bei Timer INT alle 10ms.

protected:

Name | Parameter | Rückgabewert | Beschreibung
changeEndian16bit | uint16_t value | uint16_t | Vertauscht Low-Byte mit High-Byte einer 16-Bit-Zahl.
changeEndian32bit | uint32_t value | uint32_t | Vertauscht Low-Bytes mit High-Bytes einer 32-Bit-Zahl.
checksum16bit | uint8_t* pointer, uint16_t lenght | uint16_t | Berechnet eine 16-Bit Prüfsumme.
getFrame | unsigned int maxlen, unsigned char *ethernetbuffer | unsigned int | Holt einen Ethernet-Frame.
makeEthHeader | uint8_t* MACadress , uint8_t * ethernetbuffer | void | Erstellt den richtigen Ethernetheader zur passenden Verbindung, die gerade mit TCP_socket gewählt ist.
makeIpHeader | uint32_t SourceIP, uint8_t Protocoll, uint16_t lenght , uint8_t*ethernetBuffer | void | Baut den IP-Header, es wird die Datengröße ohne IP-Header und ein Pointer auf den Buffer übergeben.
onArpPacket | unsigned int lenght, unsigned char *ethernetBuffer | void | Wird ausgelöst, wenn ein ARP-Paket empfangen wurde.
onEncError |  | void | Wird aufgerufen, wenn ENC nicht reagiert.
onIpPacket | unsigned int lenght, unsigned char *ethernetBuffer | void | Wird ausgelöst, wenn ein IP-Paket empfangen wurde.
onIpPaketIcmp | unsigned int lenght, unsigned char *ethernetBuffer | void | Wird ausgelöst, wenn ein IP/ICMP-Paket (PING) empfangen wurde.
onTimer1s |  | void | Von innen aufgerufen, nach 100mal workOnTimer10ms().
sendFrame | unsigned int packet_lenght, unsigned char *ethernetbuffer | void | Sendet ein Ethernet-Frame.

Detailbeschreibung Ethernet

Klasse zur Behandlung von Ethernet-Datenverkehr.

Funktionsbeschreibungen

changeEndian16bit(uint16_t value) uint16_t

Vertauscht Low-Byte mit High-Byte einer 16-Bit-Zahl.

changeEndian32bit(uint32_t value) uint32_t

Vertauscht Low-Bytes mit High-Bytes einer 32-Bit-Zahl.

checksum16bit(uint8_t* pointer, uint16_t lenght) uint16_t

Berechnet eine 16-Bit Prüfsumme.

Parameter:

pointer | Zeiger auf Daten
length | Anzahl der Bytes

configEthernet(uint16_t maxFrameLength=400) void

Konfiguration des Ethernets.

Parameter:

maxFrameLength maximale Paketgröße

getFrame(unsigned int maxlen, unsigned char *ethernetbuffer) unsigned int

Holt einen Ethernet-Frame.

Rückgabe:

unsigned int Länge

makeEthHeader(uint8_t* MACadress , uint8_t * ethernetbuffer) void

Erstellt den richtigen Ethernetheader zur passenden Verbindung, die gerade mit TCP_socket gewählt ist.

Wird für TCP und UDP benötigt.

makeIpHeader(uint32_t SourceIP, uint8_t Protocoll, uint16_t lenght , uint8_t*ethernetBuffer) void

Baut den IP-Header, es wird die Datengröße ohne IP-Header und ein Pointer auf den Buffer übergeben.

Wird für TCP und UDP benötigt.

onArpPacket(unsigned int lenght, unsigned char *ethernetBuffer) void

Wird ausgelöst, wenn ein ARP-Paket empfangen wurde.

Das Address Resolution Protocol (ARP) ist ein Netzwerkprotokoll, das die Zuordnung von Netzwerkadressen zu Hardwareadressen möglich macht.

onEncError() void

Wird aufgerufen, wenn ENC nicht reagiert.

ACHTUNG dies wird im Interrupt aufgerufen.

onIpPacket(unsigned int lenght, unsigned char *ethernetBuffer) void

Wird ausgelöst, wenn ein IP-Paket empfangen wurde.

Parameter:

lenght | Anzahl der Bytes
ethernetBuffer | Zeiger auf Daten

onIpPaketIcmp(unsigned int lenght, unsigned char *ethernetBuffer) void

Wird ausgelöst, wenn ein IP/ICMP-Paket (PING) empfangen wurde.

Parameter:

lenght | Anzahl der Bytes
ethernetBuffer | Zeiger auf Daten

onTimer1s() void

Von innen aufgerufen, nach 100mal workOnTimer10ms().

sendFrame(unsigned int packet_lenght, unsigned char *ethernetbuffer) void

Sendet ein Ethernet-Frame.

workEthernet() void

Bearbeitet Pakete.

Muss von außen aufgerufen werden, bei INT vom Ethernet oder Poling oder Timer.

workOnTimer10ms() void

Von außen aufgerufen, bei Timer INT alle 10ms.


EthernetTcp

Klasse zum Aufbau und Halten von TCP/IP-Verbindungen.

Vererbung

Basisklassen(n) abgeleitete Klassen
ENC28J60→
Ethernet→
EthernetTcp
Webserver

Attribute

protected:

Attribut | Typ | Beschreibung
portTable[MAX_LISTEN_PORTS] | TcpPort | Liste der Ports, auf die reagiert wird.
rxErrorCounter | uint16_t | Empfangs-Fehlerzähler
tcpSocketTable[MAX_TCP_CONNECTIONS] | TcpSocket volatile | Liste von TCP-Sockets, d.h. gleichzeitigen Verbindungen.
txErrorCounter | uint16_t | Sende-Fehlerzähler

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
checkPortInList | uint16_t port | uint16_t | Prüft, ob ein Port in der Liste der gültigen Ports ist.
checkPortRequest | uint16_t port | uint16_t | Prüft, ob an einem Port eine Verbindung eingegangen ist.
checkSocketState | uint16_t socket | uint16_t | Gibt den Status des Socket zurück.
closeTcpSocket | uint16_t socket | void | Schließt ein Socket und beendet die TCP-Verbindung.
copyTCPdata2socketbuffer | uint16_t socket, uint16_t lenght , uint8_t *ethernetBuffer | uint16_t | Kopiert die Daten auf den TCP-packet in den Socketpuffer.
getFreeSocket |  | uint16_t | Holt das nächste freie Socket.
getSocketData | uint16_t socket , uint16_t bufferlen, uint8_t *buffer | uint16_t | Holt empfangene Daten aus den Socketpuffer.
getSocketDataNextLine | uint16_t socket , uint16_t bufferlen, uint8_t *buffer | uint16_t | Holt empfangene Daten bis zum "\r\n" aus den Socketpuffer.
putSocketData | uint16_t socket, uint8_t* sendbuffer, uint8_t memMode | uint8_t | Sendet Daten über ein Socket aus dem RAM/FLASH.
putSocketData | uint16_t socket, uint16_t lenght, uint8_t* sendbuffer, uint8_t memMode | uint8_t | Sendet Daten über ein Socket aus dem RAM/FLASH.
registerSocket | uint8_t* ethernetBuffer | uint16_t | Registriert einen neuen Socket, wenn noch einer frei ist und sichert alle nötigen Daten in ihm.
registerTcpPort | uint16_t port | uint8_t |
workEthernetTcp |  | void | Bearbeitet Pakete.

protected:

Name | Parameter | Rückgabewert | Beschreibung
getSocket | uint8_t* ethernetBuffer | uint16_t | Ermittelt den zugehörigen Socket zu einem vorliegenden Paket.
makeTcpHeaderAndSend | uint16_t socket, uint8_t TCP_flags, uint16_t lenght, uint16_t windowsize, uint8_t* ethernetBuffer | void | Erzeugt einen TCP-Header und sendet die Daten.
onIpPacket | unsigned int lenght, unsigned char *ethernetBuffer | void | Wird ausgelöst, wenn ein IP-Paket empfangen wurde.
onIpPacketTcp | unsigned int lenght, unsigned char *ethernetBuffer | void | Wird ausgelöst, wenn ein IP-Paket empfangen wurde.
onTimer1s |  | void | Von innen aufgerufen, nach 100mal workOnTimer1().
timeOutHandler |  | void | Geht alle Sockets durch und ermittelt jeweils, ob ein Timeout vorliegt

private:

Name | Parameter | Rückgabewert | Beschreibung
putSocketData2 | uint16_t socket, uint16_t lenght, uint8_t* sendbuffer, uint8_t memMode | uint8_t | Wird von putSocketData verwendet.

Detailbeschreibung EthernetTcp

Klasse zum Aufbau und Halten von TCP/IP-Verbindungen.

Funktionsbeschreibungen

checkPortInList(uint16_t port) uint16_t

Prüft, ob ein Port in der Liste der gültigen Ports ist.

Parameter:

port zu prüfender Port

checkPortRequest(uint16_t port) uint16_t

Prüft, ob an einem Port eine Verbindung eingegangen ist.

Parameter:

port zu behandelnder Port

Rückgabe:

uint16_t socket-Nummer, an dem eine Verbindung entgegengenommen (SOCKET_READY) wurde oder 0xffff wenn keine Verbindung vorhanden ist

checkSocketState(uint16_t socket) uint16_t

Gibt den Status des Socket zurück.

Parameter:

socket zu prüfender Socket

Rückgabe:

uint16_t Status

closeTcpSocket(uint16_t socket) void

Schließt ein Socket und beendet die TCP-Verbindung.

Parameter:

socket Socket-Nummer

copyTCPdata2socketbuffer(uint16_t socket, uint16_t lenght , uint8_t *ethernetBuffer) uint16_t

Kopiert die Daten auf den TCP-packet in den Socketpuffer.

getFreeSocket() uint16_t

Holt das nächste freie Socket.

getSocket(uint8_t* ethernetBuffer) uint16_t

Ermittelt den zugehörigen Socket zu einem vorliegenden Paket.

Parameter:

ethernetBuffer Zeiger auf Paket

Rückgabe:

uint16_t Socket-Nummer oder 0xffff, wenn nicht übereinstimmend

getSocketData(uint16_t socket , uint16_t bufferlen, uint8_t *buffer) uint16_t

Holt empfangene Daten aus den Socketpuffer.

Parameter:

buffer Ziel, wenn NULL wird der Inhalt nur verworfen

Rückgabe:

uint16_t Anzahl der kopierten Bytes

getSocketDataNextLine(uint16_t socket , uint16_t bufferlen, uint8_t *buffer) uint16_t

Holt empfangene Daten bis zum "\r\n" aus den Socketpuffer.

Rückgabe:

uint16_t Anzahl der kopierten Bytes

makeTcpHeaderAndSend(uint16_t socket, uint8_t TCP_flags, uint16_t lenght, uint16_t windowsize, uint8_t* ethernetBuffer) void

Erzeugt einen TCP-Header und sendet die Daten.

onIpPacket(unsigned int lenght, unsigned char *ethernetBuffer) void

Wird ausgelöst, wenn ein IP-Paket empfangen wurde.

Parameter:

lenght | Anzahl der Bytes
ethernetBuffer | Zeiger auf Daten

onIpPacketTcp(unsigned int lenght, unsigned char *ethernetBuffer) void

Wird ausgelöst, wenn ein IP-Paket empfangen wurde.

Parameter:

lenght | Anzahl der Bytes
ethernetBuffer | Zeiger auf Daten

onTimer1s() void

Von innen aufgerufen, nach 100mal workOnTimer1().

putSocketData(uint16_t socket, uint8_t* sendbuffer, uint8_t memMode) uint8_t

Sendet Daten über ein Socket aus dem RAM/FLASH.

Parameter:

memMode RAM|FLASH

putSocketData(uint16_t socket, uint16_t lenght, uint8_t* sendbuffer, uint8_t memMode) uint8_t

Sendet Daten über ein Socket aus dem RAM/FLASH.

Parameter:

memMode RAM|FLASH

putSocketData2(uint16_t socket, uint16_t lenght, uint8_t* sendbuffer, uint8_t memMode) uint8_t

Wird von putSocketData verwendet.

registerSocket(uint8_t* ethernetBuffer) uint16_t

Registriert einen neuen Socket, wenn noch einer frei ist und sichert alle nötigen Daten in ihm.

registerTcpPort(uint16_t port) uint8_t

Rückgabe:

uint8_t true wenn ok

timeOutHandler() void

Geht alle Sockets durch und ermittelt jeweils, ob ein Timeout vorliegt

workEthernetTcp() void

Bearbeitet Pakete.

Muss von außen aufgerufen werden, bei INT vom Ethernet oder Poling oder Timer.


Webserver

Klasse zur Verwendung des Ethernet-Moduls als Webserver.

Vererbung

Basisklassen(n) abgeleitete Klassen
ENC28J60→
Ethernet→
EthernetTcp→
Webserver

Attribute

protected:

Attribut | Typ | Beschreibung
getPara [ WEBSERVER_BUFFER_SIZE+1 ] | uint8_t |
getSocket | uint16_t | socket der bei GetEmpfang gerade benutzt wrid.
getState | uint8_t volatile | 0 = frei, Leerlauf 10 = beim Empfang, vor ersten Daten 20 = beim GET-Empfang 30 = Empfang vollständig 40 = GET wird bearbeitet/beantwortet
port | uint16_t | aktueller Port

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
config_webserver | uint16_t port | void | Konfiguration des Webservers.
sendHttpHeader | uint16_t socket, char type, uint8_t* addEntry=NULL | bool | Sendet einen HTTP-Header.
work |  | void | Muss kontinuierlich von außen aufgerufen werden, um eventuelle Anfragen zu bearbeiten.

protected:

Name | Parameter | Rückgabewert | Beschreibung
onIpPacketTcp | unsigned int lenght, unsigned char *ethernetBuffer | void | Wird ausgelöst, wenn ein IP-Paket empfangen wurde.
onWebRequest | uint16_t socket, volatile unsigned char * pRequest, uint16_t reqLen | void | Wird ausgelöst, wenn eine Web-Anfrage erfolgt.
onWebRequestGet | uint16_t socket, unsigned char * pFile, unsigned char * pPara, unsigned char * pParaEnd | void |

Detailbeschreibung Webserver

Klasse zur Verwendung des Ethernet-Moduls als Webserver.

Funktionsbeschreibungen

config_webserver(uint16_t port) void

Konfiguration des Webservers.

Parameter:

port Port, auf dem der Webserver arbeiten soll

onIpPacketTcp(unsigned int lenght, unsigned char *ethernetBuffer) void

Wird ausgelöst, wenn ein IP-Paket empfangen wurde.

Parameter:

lenght | Anzahl der Bytes
ethernetBuffer | Zeiger auf Daten

onWebRequest(uint16_t socket, volatile unsigned char * pRequest, uint16_t reqLen) void

Wird ausgelöst, wenn eine Web-Anfrage erfolgt.

Diese Funktion testet auf GET-Anfrage und ruft ggf. onWebRequestGet() auf.

Parameter:

socket | Socket-Nummer, auf der die Anfrage erfolgte.
pRequest | Anfragedaten
reqLen | Anfragelänge

onWebRequestGet(uint16_t socket, unsigned char * pFile, unsigned char * pPara, unsigned char * pParaEnd) void

Parameter:

socket | akteuller Socket
pFile | Zeiger auf URL, mit 0x00 abgeschlossen
pPara | Zeiger auf URL-Parameter-Start, mit 0x00 getrennt
pParaEnd | Zeiger auf Ende der Parameter, zeigt auf 0x00

sendHttpHeader(uint16_t socket, char type, uint8_t* addEntry=NULL) bool

Sendet einen HTTP-Header.

Parameter:

socket | Socket-Nummer
type | HeaderTyp: h = html, g=gif, j=jpg, p=pdf
addEntry | (optional) Zeiger auf zusätzlichen Headertext

work() void

Muss kontinuierlich von außen aufgerufen werden, um eventuelle Anfragen zu bearbeiten.


myAVR_SdCard

Beschreibung

Paket für den Zugriff auf Dateien, die auf SD-Cards gespeichert sind.

Die SD-Card muss mit FAT formatiert sein und die Dateien/Verzeichnisse müssen kurze Dateinamen verwenden. D.h. maximal 8 Zeichen für den Namen und maximal 3 Zeichen für die Erweiterung.
Beim Zugriff unter Windows sollte alles klein geschrieben werden, da sonst trotzdem die Namen im langen Format gespeichert werden.

Inhalt

Name | Kurzbeschreibung
Directory | Klasse zum Durchsuchen von Verzeichnissen und Lokalisieren von Dateien.
DirEntryCache | Verkörpert einen konkreten Verzeichniseintrag einschließlich Inhalt und Position innerhalb des FAT-Systems.
Fat | FAT - (File-Allocation-Table) - Dateisystem, es ermöglicht durch Dateien und Verzeichnisse zu navigieren.
File | Verkörpert eine Datei und ermöglicht das Byteweise lesen.
MmcCard | Klasse, die Lese- und Schreibzugriff auf eine SD-Card zur Verfügung stellt.
MmcCardBuffer | Puffer für einen Block der SD-Card.


Directory

Klasse zum Durchsuchen von Verzeichnissen und Lokalisieren von Dateien. [Mehr ...]

Vererbung

Basisklassen(n) abgeleitete Klassen
Directory

Attribute

public:

Attribut | Typ | Beschreibung
lastError | int8_t | Letzter Fehlercode

protected:

Attribut | Typ | Beschreibung
fileFindMask[13] | char | zwischengespeicherte Dateimaske für fileFindNext()

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
fileFindFirst | const char* mask | bool | Sucht den ersten Dateieintrag anhand des vollständigen Namens oder einer Maske.
fileFindNext |  | bool | Sucht den nächsten Dateieintrag entsprechend fileFindNext().
getDir | const char* path, uint16_t len | bool | Stellt entry auf den übergebenen Pfad ein.
getEntry |  | DirEntryCache& | Gibt eine Referenz auf sein DirEntryCache zurück.
init |  | void | Initialisierung des Objektes, wird vom Konstruktor aufgerufen.

Detailbeschreibung Directory

Klasse zum Durchsuchen von Verzeichnissen und Lokalisieren von Dateien.

Beispiel: Ein Verzeichnis verarbeiten.

Directory dir;
bool ok=dir.fileFindFirst( "*.txt" );
while(ok)
{
    DebugPrintDez("...gefunden, Länge=",file.getSize() );	//###DEBUG
    File file;
    file.open( dir.getEntry() );
    ....
    file.close();
    ok=dir.fileFindNext();
}

Funktionsbeschreibungen

fileFindFirst(const char* mask) bool

Sucht den ersten Dateieintrag anhand des vollständigen Namens oder einer Maske.

Die Angabe kann einen Pfad enthalten. Eine Maske kann einen Stern für den restlichen Namen bzw. die restliche Extension enthalten oder je beliebigen Buchstaben ein '?'.
z.B. *.txt oder hallo*.txt oder hallo*.* oder ha???.txt.

Parameter:

maske Maske oder Dateiname, ggf. mit Pfad, Kleinbuchstaben werden in Großbuchstaben gewandelt

Rückgabe:

false nicht gefunden, sonst entry gültig; bei fehlerhafter Syntax wird false zurückgegeben und lastError=11

fileFindNext() bool

Sucht den nächsten Dateieintrag entsprechend fileFindNext().

Rückgabe:

false nicht gefunden, sonst dir gültig

getDir(const char* path, uint16_t len) bool

Stellt entry auf den übergebenen Pfad ein.

Parameter:

path | relativer oder absoluter Pfad
len | Anzahl der zu verarbeitenden Zeichen

Rückgabe:

bool | ok, wenn erfolgreich
entry | immer verändert

getEntry() DirEntryCache&

Gibt eine Referenz auf sein DirEntryCache zurück.

init() void

Initialisierung des Objektes, wird vom Konstruktor aufgerufen.


DirEntryCache

Verkörpert einen konkreten Verzeichniseintrag einschließlich Inhalt und Position innerhalb des FAT-Systems.

Vererbung

Basisklassen(n) abgeleitete Klassen
DirEntryCache

Attribute

public:

Attribut | Typ | Beschreibung
dirChanged | bool | true, wenn der DirEntryCache nichtgespeicherte Daten enthält.
dirCluster | uint16_t | Nummer des Clusters, in dem sich der dirEntry befindet.
dirEntry | DirEntry | FAT-Directory-Eintrag
dirPosition | uint16_t | Position innerhalb des Sektors, in dem sich der dirEntry befindet.
dirSector | uint32_t | Nummer des Sektors, in dem sich der dirEntry befindet.
fat | Fat* | Zeiger auf zu verwendendes FAT-Objekt, wird nur ein FAT-Objekt verwendet, so wird dieses automatisch initialisiert.

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
flush |  | void | Schreibt, wenn benötigt, dirEntry und Fat-Buffer.
getName | char* pBuffer | void | Gibt den Dateinamen in einen bereitgestellten Buffer zurück. Die Rückgabe erfolgt ohne Leerzeichen, mit Punkt und mit abschließender Null.

Detailbeschreibung DirEntryCache

Verkörpert einen konkreten Verzeichniseintrag einschließlich Inhalt und Position innerhalb des FAT-Systems.

Funktionsbeschreibungen

flush() void

Schreibt, wenn benötigt, dirEntry und Fat-Buffer.

getName(char* pBuffer) void

Gibt den Dateinamen in einen bereitgestellten Buffer zurück. Die Rückgabe erfolgt ohne Leerzeichen, mit Punkt und mit abschließender Null.

Parameter:

pBuffer Zeiger auf Buffer, es werden bis zu 13 Zeichen benötigt


Fat

FAT - (File-Allocation-Table) - Dateisystem, es ermöglicht durch Dateien und Verzeichnisse zu navigieren.

Vererbung

Basisklassen(n) abgeleitete Klassen
MmcCard→
Fat
SdCardMK3

Attribute

public:

Attribut | Typ | Beschreibung
curDirCluster | uint16_t | Cluster des CurrentDirectorys.
fat | FatData | Ein FAT-Eintrag.
globCurrentFat | class Fat* | Zeiger auf die aktuell zu verwendende Fat, er wird von Directory und File verwendet. Bei Arbeit mit mehreren Fat muss hier immer die aktuelle Fat eingetragen werden.

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
absSecFromCluster | uint16_t cluster | uint32_t | Berechnet aus der Clusternummer den zugehörigen 1. Sektor.
addr |  | uint16_t | Auslesen der Adresse des Volume Boot Record von MBR.
clusterDataStore |  | uint8_t | Auslesen Cluster Size der MMC/SD Karte und Speichern der Größe ins RAM.
extractNextCluster | uint16_t aktCluster | uint16_t | Routine zum Extrahieren des Folge-Clustereintrags aus einer FatTabelle anhand der akt. Clusternummer.
fileDelete | DirEntryCache* dir | void | Löschen einer Datei.
findInit | uint16_t dirCluster, class DirEntryCache *directory | void | Initialisierungsroutine für fat_find_next(), wenn dir_cluster = 0 suche im RootDir.
findNext | class DirEntryCache *directory, bool getFreeEntry=false | bool | Holt nächsten gültigen Eintrag aus dem Directory.
getFreeCluster |  | uint16_t | Holt eine freie Clusternummer.
initFat |  | uint8_t | Initialisierung
setClusterFatEntry | uint16_t clusterNr, uint16_t entry | bool | Setzt einen FAT-ClusterEintrag.
setNextCluster | uint16_t oldCluster, uint16_t newCluster | bool | Trägt Cluster in FAT ein, ordnet einem Cluster 'old' einen Cluster 'new' zu und beendet die Datei im Cluster 'new' mit 0xffff.
writeBackBuffer |  | void | Rückschreiben des Buffers, wenn notwendig.
writeDirEntry | DirEntryCache* dir | void | Schreib DirEntryCache zurück, wenn er geändert wurde.

Detailbeschreibung Fat

FAT - (File-Allocation-Table) - Dateisystem, es ermöglicht durch Dateien und Verzeichnisse zu navigieren.

Funktionsbeschreibungen

absSecFromCluster(uint16_t cluster) uint32_t

Berechnet aus der Clusternummer den zugehörigen 1. Sektor.

addr() uint16_t

Auslesen der Adresse des Volume Boot Record von MBR.

clusterDataStore() uint8_t

Auslesen Cluster Size der MMC/SD Karte und Speichern der Größe ins RAM.

extractNextCluster(uint16_t aktCluster) uint16_t

Routine zum Extrahieren des Folge-Clustereintrags aus einer FatTabelle anhand der akt. Clusternummer.

Parameter:

aktCluster Cluster, für den der FolgeCluster gesucht wird fat.FatOffset

Rückgabe:

uint16_t 0xffff wenn Fehler oder nichts folgt

fileDelete(DirEntryCache* dir) void

Löschen einer Datei.

findInit(uint16_t dirCluster, class DirEntryCache *directory) void

Initialisierungsroutine für fat_find_next(), wenn dir_cluster = 0 suche im RootDir.

findNext(class DirEntryCache *directory, bool getFreeEntry=false) bool

Holt nächsten gültigen Eintrag aus dem Directory.

Einschränkung: es wird immer nur max. der Erste Cluster gelesen.

Parameter:

directory | zu verwendende DirEntryCache-Struktur
getFreeEntry | wenn true, wird nach freien Einträgen gesucht

Rückgabe:

false Fehler/nicht gefunden

getFreeCluster() uint16_t

Holt eine freie Clusternummer.

Rückgabe:

0 Error

initFat() uint8_t

Initialisierung

setClusterFatEntry(uint16_t clusterNr, uint16_t entry) bool

Setzt einen FAT-ClusterEintrag.

setNextCluster(uint16_t oldCluster, uint16_t newCluster) bool

Trägt Cluster in FAT ein, ordnet einem Cluster 'old' einen Cluster 'new' zu und beendet die Datei im Cluster 'new' mit 0xffff.

writeBackBuffer() void

Rückschreiben des Buffers, wenn notwendig.

writeDirEntry(DirEntryCache* dir) void

Schreib DirEntryCache zurück, wenn er geändert wurde.


File

Verkörpert eine Datei und ermöglicht das Byteweise lesen. [Mehr ...]

Vererbung

Basisklassen(n) abgeleitete Klassen
File

Attribute

public:

Attribut | Typ | Beschreibung
absFilePointer | uint32_t |
absSector | uint32_t | Sektor der aktuellen Position in der Datei.
cluster | uint16_t | Cluster der aktuellen Position in der Datei.
fstSecOffClu | uint32_t |
isOpen | bool | true, wenn Datei geöffnet ist.
lastError | int8_t | Fehlernummer des letzten Fehlers.
secPosition | uint16_t |

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
close |  | void | Schließ die Datei wenn sie offen ist.
getDirEntry |  | DirEntryCache& | Gibt eine Referenz auf sein DirEntryCache zurück.
getName |  | char* | Gibt einen Zeiger auf den 8.3 Dateinamen im FAT-Directory-Eintrag zurück.
getSize |  | uint32_t | Gibt die Dateigröße zurück.
isEof |  | bool | Testet auf End-Of-File, d.h. es gibt nichts mehr zu lesen.
open | DirEntryCache& dir | bool | Öffnet eine Datei
open | const char* fileName | bool | Öffnet eine Datei.
readByte |  | uint8_t | Lesen eines Bytes aus einer Datei.

Detailbeschreibung File

Verkörpert eine Datei und ermöglicht das Byteweise lesen.

Beispiel: Eine Datei verarbeiten.

File file;
bool ok=file.open( "/txt/test.txt" );
if(ok)
{
    .....
    file.close();
}

Funktionsbeschreibungen

close() void

Schließ die Datei wenn sie offen ist.

getDirEntry() DirEntryCache&

Gibt eine Referenz auf sein DirEntryCache zurück.

getName() char*

Gibt einen Zeiger auf den 8.3 Dateinamen im FAT-Directory-Eintrag zurück.

Die ersten 8 Zeichen sind der Dateiname die folgenden 3 Zeichen sind die Erweiterung. Nicht benötigte Zeichen sind Leerzeichen (0x20).

getSize() uint32_t

Gibt die Dateigröße zurück.

isEof() bool

Testet auf End-Of-File, d.h. es gibt nichts mehr zu lesen.

Der Dateizeiger steht dann hinter dem letztem Zeichen.

Rückgabe:

bool true, wenn EOF

open(DirEntryCache& dir) bool

Öffnet eine Datei

Parameter:

DirEntryCache gültiger DirEntryCache mit der zu öffnenden Datei

Rückgabe:

bool true, wenn erfolgreich

open(const char* fileName) bool

Öffnet eine Datei.

Parameter:

fileName Zeiger auf Dateinamen, ggf. mit Pfad

Rückgabe:

bool true, wenn erfolgreich

readByte() uint8_t

Lesen eines Bytes aus einer Datei.

Rückgabe:

gelesenes Byte, wenn Fehler ist lastError! 0


MmcCard

Klasse, die Lese- und Schreibzugriff auf eine SD-Card zur Verfügung stellt.

Vererbung

Basisklassen(n) abgeleitete Klassen
MmcCard
Fat

Attribute

public:

Attribut | Typ | Beschreibung
isInit | bool | true, wenn configMmc erfolgreich war.
lastError | uint8_t | letzter Fehler

protected:

Attribut | Typ | Beschreibung
spi | SpiMaster* | Zeiger auf SpiMaster, der zur Kommunikation verwendet werden soll.

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
configMmc |  | bool | Konfiguration und Initialisierung.
readSector | uint32_t addr | bool | Lesen eines Sektors.
writeSector | uint32_t addr | uint8_t | Schreiben eines Sektors.

protected:

Name | Parameter | Rückgabewert | Beschreibung
readBlock | uint8_t *cmd, uint8_t *buffer, uint16_t bytes | bool | Lesen eines Blockes.
writeCommand | uint8_t* cmd | uint8_t | Schreibt ein 6-Byte-Commando an die MMC-Card.

Detailbeschreibung MmcCard

Klasse, die Lese- und Schreibzugriff auf eine SD-Card zur Verfügung stellt.

Funktionsbeschreibungen

configMmc() bool

Konfiguration und Initialisierung.

readBlock(uint8_t *cmd,uint8_t *buffer,uint16_t bytes) bool

Lesen eines Blockes.

readSector(uint32_t addr) bool

Lesen eines Sektors.

writeCommand(uint8_t* cmd) uint8_t

Schreibt ein 6-Byte-Commando an die MMC-Card.

Setzt slaveSelect.on(); und lässt es an.

Rückgabe:

uint8_t | SPI-Antwort nach dem Kommando, die nicht 0xff war,
bei TimeOut | 0xff

writeSector(uint32_t addr) uint8_t

Schreiben eines Sektors.


MmcCardBuffer

Puffer für einen Block der SD-Card.

Vererbung

Basisklassen(n) abgeleitete Klassen
MmcCardBuffer

Attribute

public:

Attribut | Typ | Beschreibung
changed | bool | true, wenn data nicht gespeicherte Daten enthält.
data[512] | uint8_t | Daten-Buffer zum Lesen und Schreiben der SD-Card.
loaded | bool | true, wenn data und sectorAddress gültige Daten enthält.
sectorAddress | uint32_t | Sektornummer des im Buffer befindlichen Sektors/Datenblockes.

Operationen

Detailbeschreibung MmcCardBuffer

Puffer für einen Block der SD-Card.

Funktionsbeschreibungen

<< Gesamtübersicht << Klassenübersicht Details der Klasse Funktionsbeschreibungen


myAVR_Spi

Beschreibung

SPI-Klassen für ausgewähle Controller (z.B. ATmega8, ATmega48, ATmega88, ATmega168, ATmega328, ATmega2560, ATmega644P)

Inhalt

Name | Kurzbeschreibung
Spi | SPI-Interface des Mikrocontrollers.
SpiMaster | SPI-Interface des Mikrocontrollers als Master.
SpiMasterUart | SPI-Master, der über eine USART im SPI-Mode angesteuert wird.
SpiSlave | SPI-Interface des Mikrocontrollers als Slave.


Spi

SPI-Interface des Mikrocontrollers.

Vererbung

Basisklassen(n) abgeleitete Klassen
Spi
SpiSlave
SpiMaster

Attribute

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
configInt | bool enable | void | Schaltet den SPI-Interrupt an bzw. aus.
stop |  | void | Stoppt die SPI-Kommunikation.

Detailbeschreibung Spi

SPI-Interface des Mikrocontrollers.

Funktionsbeschreibungen

configInt(bool enable) void

Schaltet den SPI-Interrupt an bzw. aus.

Beim Anschalten wird gleichzeitig sei() aufgerufen.

Parameter:

enable wenn an, werden SPI-Interrupts eingeschalten

stop() void

Stoppt die SPI-Kommunikation.


SpiMaster

SPI-Interface des Mikrocontrollers als Master. [Mehr ...]

Vererbung

Basisklassen(n) abgeleitete Klassen
Spi→
SpiMaster
SpiMasterUart

Attribute

public:

Attribut | Typ | Beschreibung
slaveSelect | DigitalOutLowActiv | Pin mit dem der Slave aktiviert wird.

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
configSpi | uint8_t prescaler, volatile unsigned char& slavePortAdr, short slavePortBitmask=0 | void | Konfiguriert die SPI-Schnittstelle als SPI-Master, einschließlich des slaveSelect-Pins.
isTransmitComplete |  | bool | Testet, ob die aktuelle Übertragung beendet ist.
resetSlave |  | void | Stellt einen High-Impuls auf SS sicher, um die Kommunikation zurückzusetzen.
sendAndWait | uint8_t dataIn | uint8_t | Sendet und empfängt ein Byte, wartet bis die Übertragung beendet ist.
spiRead | uint8_t * buffer, unsigned int length | void | Empfängt Daten in einen Buffer.
spiWrite | uint8_t * buffer, unsigned int length | void | Sendet Daten aus einem Buffer.

protected:

Name | Parameter | Rückgabewert | Beschreibung
configSpi | uint8_t prescaler | void | Konfiguriert die SPI-Schnittstelle als SPI-Master.
_sendAndWait | uint8_t data | uint8_t | Interne Funktion, die ein Byte sendet und empfängt.

Detailbeschreibung SpiMaster

SPI-Interface des Mikrocontrollers als Master.

Beispiel: SPI-Master

spi.configSpi(SpiMaster::prescale2,PORTB,BIT0);
uint8_t data;
spi.sendAndWait(0x01);
data=spi.sendAndWait(0x00);

Info:
- wenn SS=Eingang und SS=low, dann ist SlaveMode aktiv
Info zu Multimaster-Mode:
- wenn Master und SS=Eingang und SS=low, dann wird MSTR-Bit gelöscht und SPI wechselt in den SlaveMode
- bei INT-Verwendung ist MSTR-Bit immer zu prüfen

Funktionsbeschreibungen

configSpi(uint8_t prescaler,volatile unsigned char& slavePortAdr, short slavePortBitmask=0) void

Konfiguriert die SPI-Schnittstelle als SPI-Master, einschließlich des slaveSelect-Pins.

Parameter:

prescaler eines von prescale2, prescale4, prescale8, prescale16, prescale32, prescale64, prescale128

configSpi(uint8_t prescaler) void

Konfiguriert die SPI-Schnittstelle als SPI-Master.

Parameter:

presacler eines von prescale2, prescale4, prescale8, prescale16, prescale32, prescale64, prescale128

isTransmitComplete() bool

Testet, ob die aktuelle Übertragung beendet ist.

Rückgabe:

bool true, wenn Übertragung beendet

resetSlave() void

Stellt einen High-Impuls auf SS sicher, um die Kommunikation zurückzusetzen.

sendAndWait(uint8_t dataIn) uint8_t

Sendet und empfängt ein Byte, wartet bis die Übertragung beendet ist.

spiRead(uint8_t * buffer, unsigned int length) void

Empfängt Daten in einen Buffer.

Parameter:

buffer | Zeiger auf Daten
length | Anzahl der Bytes

spiWrite(uint8_t * buffer, unsigned int length) void

Sendet Daten aus einem Buffer.

Parameter:

buffer | Zeiger auf Daten
length | Anzahl der Bytes

_sendAndWait(uint8_t data) uint8_t

Interne Funktion, die ein Byte sendet und empfängt.


SpiMasterUart

SPI-Master, der über eine USART im SPI-Mode angesteuert wird. [Mehr ...]

Vererbung

Basisklassen(n) abgeleitete Klassen
Spi→
SpiMaster→
SpiMasterUart

Attribute

protected:

Attribut | Typ | Beschreibung
port | volatile unsigned char* | Port der UART = Adresse des UDRx-Registers

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
configUsart | uint8_t prescaler, volatile unsigned char& udrPort, volatile unsigned char& xckPort, uint8_t xckBitmask | void | Konfiguriert eine USART im SPI-Mode.

protected:

Name | Parameter | Rückgabewert | Beschreibung
_sendAndWait | uint8_t dataIn | uint8_t | Sendet und empfängt ein Byte.

private:

Name | Parameter | Rückgabewert | Beschreibung
configSpi | uint8_t prescaler, volatile unsigned char& slavePortAdr, short slavePortBitmask=0 | void | Dummy zur Deaktivierung der Basis-Member.

Detailbeschreibung SpiMasterUart

SPI-Master, der über eine USART im SPI-Mode angesteuert wird.

Standardeinstellung: MSB first, SpiMode=0

Beispiel:

spiMaster.slaveSelect.config(PORTC,BIT6);
spiMaster.slaveSelect.off();
spiMaster.configUsart(0,UDR1,DDRD,BIT4);

Funktionsbeschreibungen

configSpi(uint8_t prescaler,volatile unsigned char& slavePortAdr, short slavePortBitmask=0) void

Dummy zur Deaktivierung der Basis-Member.

configUsart(uint8_t prescaler, volatile unsigned char& udrPort, volatile unsigned char& xckPort, uint8_t xckBitmask) void

Konfiguriert eine USART im SPI-Mode.

Parameter:

prescaler | Vorteilerwert für UBRRn
udrPort | Basis-Adresse der USART = Datenregister (z.B. UDR0)
xckPort | DDR-Adresse des XCKn-Pins (z.B. XCK0_DDR oder DDRD)
xckBitmask | Bitmaske des XCKn-Pins (z.B. XCK0 oder BIT4)

_sendAndWait(uint8_t dataIn) uint8_t

Sendet und empfängt ein Byte.


SpiSlave

SPI-Interface des Mikrocontrollers als Slave. [Mehr ...]

Vererbung

Basisklassen(n) abgeleitete Klassen
Spi→
SpiSlave

Attribute

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
configSpi |  | void | Konfiguriert die SPI-Schnittstelle als Slave.
getData |  | uint8_t | Liest das zuletzt empfangene Byte ein.
isReceiveComplete |  | bool |
setSendData | uint8_t data | bool | Legt die als nächstes zu sendenden Daten bereit.
waitForData |  | uint8_t | Wartet bis eine laufende Übertragung beendet ist und gibt das empfangene Byte zurück.

Detailbeschreibung SpiSlave

SPI-Interface des Mikrocontrollers als Slave.

Beispiel: SPI-Slave

spi.config();
while(1)
{
    uint8_t data;
    data=spi.waitForData();
    data=data+2;
    spi.setSendData(data);
}

Funktionsbeschreibungen

configSpi() void

Konfiguriert die SPI-Schnittstelle als Slave.

getData() uint8_t

Liest das zuletzt empfangene Byte ein.

Es wird keine Datenübertragung durchgeführt.

Rückgabe:

uint8_t Datenbyte

isReceiveComplete() bool

Rückgabe:

bool true, wenn eine Übertragung beendet ist.

setSendData(uint8_t data) bool

Legt die als nächstes zu sendenden Daten bereit.

Rückgabe:

bool true, wenn ok; false, wenn Kollision

waitForData() uint8_t

Wartet bis eine laufende Übertragung beendet ist und gibt das empfangene Byte zurück.

Rückgabe:

uint8_t empfangenes Datenbyte


myAVR_String

Beschreibung

Zeichenketten-Verwaltungs- und Manipulationsklassen.

Zur Verwendung sollte im Projekt (Klassendiagramm-Einstellungen) unter "Includes für alle Klassen dieser Anwendung:" der zu verwendende Typ global festgelegt werden.

Inhalt

Name | Kurzbeschreibung
String16 |
String16m |
String8 |
StringBig |


String16

Vererbung

Basisklassen(n) abgeleitete Klassen
String16

Attribute

public:

Attribut | Typ | Beschreibung
len | uint16_t | aktuelle Stringlänge
pBuffer | uint8_t* | Datenpuffer des Strings

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
String16 | const char* text |  | Erstellt einen String aus einer konstanten Zeichenkette.
String16 | const String16& text |  | Copy-Konstruktor
addContent | const char* text, uint16_t size=-1 | void | Fügt an einen vorhandenen String an.
addContent | const prog_uchar* text, uint16_t size=-1 | void | Fügt aus dem Flash an einen vorhandenen String an.
deinit |  | void | Deinitialisierung/Speicherfreigabe
find | char c, uint16_t startPos=0 | uint16_t | Liefert das erste Auftreten eines Zeichens im String.
find | char* search, uint16_t startPos=0 | uint16_t | Liefert das erste Auftreten einer Zeichenkette im String.
fromInt | uint32_t num, uint8_t base=10 | void | Füllt den String mit der umgewandelten Zahl.
getPart | uint16_t startPos, uint16_t anz | String16 | Gibt eine Teilzeichenkette zurück.
getSize |  | uint16_t | Liefert die Größe des Strings.
operator char* |  |  | Casting-Operator nach char*
operator const char* |  |  | Casting-Operator nach const char*
operator+ | const String16& text | String16 | Operator für das Zusammensetzen von Strings.
operator+ | const char* txt1, const String16& txt2 | String16 | Zusammensetzen von Zeichenketten.
operator+= | const String16& text | String16& | Operator für das Anfügen von Strings.
operator+= | const char c | String16& | Operator für das Anfügen eines Zeichens.
operator+= | const prog_uchar* c | String16& | Fügt aus dem Flash an einen vorhandenen String an.
operator= | const char* text | String16& | Zuweisungsoperator mit const char*
operator= | const String16& text | String16& | Zuweisungsoperator mit String
operator= | const prog_uchar* text | String16& | Setzt den Inhalt des Strings aus dem Flash.
operator== | const String16& text | bool | Operator zum Vergleich mit einem anderen String.
operator== | const prog_uchar* pText | bool | Operator zum Vergleich mit einer Flash-Zeichenkette.
setContent | const char* text, uint16_t size = -1 | bool | Setzt den Inhalt eines Strings.
setContent | const prog_uchar* text, uint16_t size = -1 | bool | Setzt den Inhalt des Strings aus dem Flash.
setSize | uint16_t newSize | bool | Setzt die Größe des Strings.
toInt | uint8_t** endPt=NULL /*Out*/ | uint32_t | Wandelt einen String in eine Zahl um. Es werden Hexadezimal-Zahlen (0x..), Binärzahlen (0b...) und Dezimalzahlen erkannt.

Detailbeschreibung String16

Funktionsbeschreibungen

String16(const char* text)

Erstellt einen String aus einer konstanten Zeichenkette.

Parameter:

text Zeichenkette, z.B. "der Text"

String16(const String16& text)

Copy-Konstruktor

addContent(const char* text, uint16_t size=-1) void

Fügt an einen vorhandenen String an.

Parameter:

text | anzufügender Text
size | Anzahl der anzufügenden Zeichen, wenn -1 wird strlen verwendet

addContent(const prog_uchar* text, uint16_t size=-1) void

Fügt aus dem Flash an einen vorhandenen String an.

Parameter:

text | Flash-String der angefügt werden soll
size | Anzahl der anzufügenden Zeichen, wenn -1 wird strlen verwendet

deinit() void

Deinitialisierung/Speicherfreigabe

find(char c, uint16_t startPos=0) uint16_t

Liefert das erste Auftreten eines Zeichens im String.

Parameter:

c | Zeichen
startPos | die Start-Position der Suche

Rückgabe:

uint16_t Zeichenposition oder -1, wenn nicht gefunden

find(char* search, uint16_t startPos=0) uint16_t

Liefert das erste Auftreten einer Zeichenkette im String.

Parameter:

search | Zeichenkette, die gesucht wird
startPos | (optional) die Start-Position der Suche

Rückgabe:

uint16_t Startposition oder -1, wenn nicht gefunden

fromInt(uint32_t num, uint8_t base=10) void

Füllt den String mit der umgewandelten Zahl.

Es werden bei base=2 "0b" und bei base=16 "0x" vorangestellt.

Parameter:

num | umzuwandelnde Zahl
base | Zahlenbasis, 2=binär, 10=dezimal, 16=hexadezimal

getPart(uint16_t startPos, uint16_t anz) String16

Gibt eine Teilzeichenkette zurück.

Wenn zu viel angegeben wurde, wird nur bis zum Ende zurückgegeben. Wenn die Startposition zu groß oder anz gleich Null ist, wird eine leere Zeichenkette zurückgegeben.

Parameter:

startPos | Offset des ersten Zeichens (mit Null beginnend)
anz | Anzahl der gewünschten Zeichen

getSize() const uint16_t

Liefert die Größe des Strings.

operator char*()

Casting-Operator nach char*

operator const char*() const

Casting-Operator nach const char*

operator+(const String16& text) String16

Operator für das Zusammensetzen von Strings.

operator+(const char* txt1, const String16& txt2) String16

Zusammensetzen von Zeichenketten.

operator+=(const String16& text) String16&

Operator für das Anfügen von Strings.

operator+=(const char c) String16&

Operator für das Anfügen eines Zeichens.

operator+=(const prog_uchar* c) String16&

Fügt aus dem Flash an einen vorhandenen String an.

operator=(const char* text) String16&

Zuweisungsoperator mit const char*

Beispiel:

text="Zeichenkette";

operator=(const String16& text) String16&

Zuweisungsoperator mit String

Beispiel:

text2 = text1;

operator=(const prog_uchar* text) String16&

Setzt den Inhalt des Strings aus dem Flash.

operator==(const String16& text) const bool

Operator zum Vergleich mit einem anderen String.

operator==(const prog_uchar* pText) const bool

Operator zum Vergleich mit einer Flash-Zeichenkette.

setContent(const char* text, uint16_t size = -1) bool

Setzt den Inhalt eines Strings.

Parameter:

text | zu verwendender Text
size | Anzal der aus text zu übertragenden Zeichen

setContent(const prog_uchar* text, uint16_t size = -1) bool

Setzt den Inhalt des Strings aus dem Flash.

setSize(uint16_t newSize) bool

Setzt die Größe des Strings.

Die Funktion allokiert Speicher für den String in 4-Byte-Blöcken.
Bei OutOfMemory wird ein Watchdog-Reset ausgelöst.

Parameter:

newSize benötigte Speicher-Größe

toInt(uint8_t** endPt=NULL /*Out*/) uint32_t

Wandelt einen String in eine Zahl um. Es werden Hexadezimal-Zahlen (0x..), Binärzahlen (0b...) und Dezimalzahlen erkannt.

Parameter:

endPt (optional) Zeiger auf Zeiger für die Rückgabe der Position, an der das erste unbekannte Zeichen auftrat.

Rückgabe:

uint32_t erkannte Zahl, Null bei Fehler


String16m

Vererbung

Basisklassen(n) abgeleitete Klassen
String16m

Attribute

public:

Attribut | Typ | Beschreibung
len | uint16_t | aktuelle Stringlänge
pBuffer | uint8_t* | Datenpuffer des Strings

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
String16m | const char* text |  | Erstellt einen String aus einer konstanten Zeichenkette.
String16m | const String16m& text |  | Copy-Konstruktor
addContent | const char* text, uint16_t size=-1 | void | Fügt an einen vorhandenen String an.
addContent | const prog_uchar* text, uint16_t size=-1 | void | Fügt aus dem Flash an einen vorhandenen String an.
deinit |  | void | Deinitialisierung/Speicherfreigabe
find | char c, uint16_t startPos=0 | uint16_t | Liefert das erste Auftreten eines Zeichens im String.
find | char* search, uint16_t startPos=0 | uint16_t | Liefert das erste Auftreten einer Zeichenkette im String.
fromInt | uint32_t num, uint8_t base=10 | void | Füllt den String mit der umgewandelten Zahl.
getPart | uint16_t startPos, uint16_t anz | String16m | Gibt eine Teilzeichenkette zurück.
getPartTo | char trenn | String16m | Liefert den Teilstring bis zum ersten Auftreten des Trennzeichens.
getSize |  | uint16_t | Liefert die Größe des Strings.
insert | const String16m& text, uint16_t startPos | void | Fügt einen String in einen vorhandenen, an einer bestimmten Position, ein.
isspace | uint8_t c | bool | Hilfsfunktion, prüft ob ein Zeichen ein Freiraum (Whitespace) ist.
operator char* |  |  | Casting-Operator nach char*
operator const char* |  |  | Casting-Operator nach const char*
operator+ | const String16m& text | String16m | Operator für das Zusammensetzen von Strings.
operator+ | const char* txt1, const String16m& txt2 | String16m | Zusammensetzen von Zeichenketten.
operator+= | const String16m& text | String16m& | Operator für das Anfügen von Strings.
operator+= | const char c | String16m& | Operator für das Anfügen eines Zeichens.
operator+= | const prog_uchar* c | String16m& | Fügt aus dem Flash an einen vorhandenen String an.
operator= | const char* text | String16m& | Zuweisungsoperator mit const char*
operator= | const String16m& text | String16m& | Zuweisungsoperator mit String
operator= | const prog_uchar* text | String16m& | Setzt den Inhalt des Strings aus dem Flash.
operator== | const String16m& text | bool | Operator zum Vergleich mit einem anderen String.
operator== | const prog_uchar* pText | bool | Operator zum Vergleich mit einer Flash-Zeichenkette.
remove | uint16_t startPos, uint16_t anz | void | Entfernt einen Teil eines Strings.
replace | const char* txtOld, const char* txtNew | void | Ersetzt Texte innerhalb eines Strings.
setContent | const char* text, uint16_t size = -1 | bool | Setzt den Inhalt eines Strings.
setContent | const prog_uchar* text, uint16_t size = -1 | bool | Setzt den Inhalt des Strings aus dem Flash.
setSize | uint16_t newSize | bool | Setzt die Größe des Strings.
toInt | uint8_t** endPt=NULL /*Out*/ | uint32_t | Wandelt einen String in eine Zahl um. Es werden Hexadezimal-Zahlen (0x..), Binärzahlen (0b...) und Dezimalzahlen erkannt.
toLowerCase |  | void | Wandelt den String in Kleinbuchstaben.
toUpperCase |  | void | Wandelt den String in Großbuchstaben.
trim |  | void | Entfernt führende und abschließende Leerstellen.

Detailbeschreibung String16m

Funktionsbeschreibungen

String16m(const char* text)

Erstellt einen String aus einer konstanten Zeichenkette.

Parameter:

text Zeichenkette, z.B. "der Text"

String16m(const String16m& text)

Copy-Konstruktor

addContent(const char* text, uint16_t size=-1) void

Fügt an einen vorhandenen String an.

Parameter:

text | anzufügender Text
size | Anzahl der anzufügenden Zeichen, wenn -1 wird strlen verwendet

addContent(const prog_uchar* text, uint16_t size=-1) void

Fügt aus dem Flash an einen vorhandenen String an.

Parameter:

text | Flash-String der angefügt werden soll
size | Anzahl der anzufügenden Zeichen, wenn -1 wird strlen verwendet

deinit() void

Deinitialisierung/Speicherfreigabe

find(char c, uint16_t startPos=0) uint16_t

Liefert das erste Auftreten eines Zeichens im String.

Parameter:

c | Zeichen
startPos | die Start-Position der Suche

Rückgabe:

uint16_t Zeichenposition oder -1, wenn nicht gefunden

find(char* search, uint16_t startPos=0) uint16_t

Liefert das erste Auftreten einer Zeichenkette im String.

Parameter:

search | Zeichenkette, die gesucht wird
startPos | (optional) die Start-Position der Suche

Rückgabe:

uint16_t Startposition oder -1, wenn nicht gefunden

fromInt(uint32_t num, uint8_t base=10) void

Füllt den String mit der umgewandelten Zahl.

Es werden bei base=2 "0b" und bei base=16 "0x" vorangestellt.

Parameter:

num | umzuwandelnde Zahl
base | Zahlenbasis, 2=binär, 10=dezimal, 16=hexadezimal

getPart(uint16_t startPos, uint16_t anz) String16m

Gibt eine Teilzeichenkette zurück.

Wenn zu viel angegeben wurde, wird nur bis zum Ende zurückgegeben. Wenn die Startposition zu groß oder anz gleich Null ist, wird eine leere Zeichenkette zurückgegeben.

Parameter:

startPos | Offset des ersten Zeichens (mit Null beginnend)
anz | Anzahl der gewünschten Zeichen

getPartTo(char trenn) String16m

Liefert den Teilstring bis zum ersten Auftreten des Trennzeichens.

Der gefundene Teilstring sowie das Trennzeichen werden aus dem Ausgangsstring entfernt.
Ist das angegebene Trennzeichen nicht enthalten wird der gesamte String zurückgegeben und er Ausgangsstring geleert.

Parameter:

trenn Trennzeichen

Rückgabe:

String16m Teilstring ohne Trennzeichen

getSize() const uint16_t

Liefert die Größe des Strings.

insert(const String16m& text, uint16_t startPos) void

Fügt einen String in einen vorhandenen, an einer bestimmten Position, ein.

Parameter:

text | einzufügender Text
startPos | Einfügeposition

isspace(uint8_t c) bool

Hilfsfunktion, prüft ob ein Zeichen ein Freiraum (Whitespace) ist.

Parameter:

c Zeichen

Rückgabe:

bool true, wenn Freiraum (Whitespace)

operator char*()

Casting-Operator nach char*

operator const char*() const

Casting-Operator nach const char*

operator+(const String16m& text) String16m

Operator für das Zusammensetzen von Strings.

operator+(const char* txt1, const String16m& txt2) String16m

Zusammensetzen von Zeichenketten.

operator+=(const String16m& text) String16m&

Operator für das Anfügen von Strings.

operator+=(const char c) String16m&

Operator für das Anfügen eines Zeichens.

operator+=(const prog_uchar* c) String16m&

Fügt aus dem Flash an einen vorhandenen String an.

operator=(const char* text) String16m&

Zuweisungsoperator mit const char*

Beispiel:

text="Zeichenkette";

operator=(const String16m& text) String16m&

Zuweisungsoperator mit String

Beispiel:

text2 = text1;

operator=(const prog_uchar* text) String16m&

Setzt den Inhalt des Strings aus dem Flash.

operator==(const String16m& text) const bool

Operator zum Vergleich mit einem anderen String.

operator==(const prog_uchar* pText) const bool

Operator zum Vergleich mit einer Flash-Zeichenkette.

remove(uint16_t startPos, uint16_t anz) void

Entfernt einen Teil eines Strings.

Ab 'startPos' werden 'anz' Zeichen entfernt.

Parameter:

startPos | Position, ab der entfernt werden soll
anz | Anzahl der zu entfernenden Zeichen

replace(const char* txtOld, const char* txtNew) void

Ersetzt Texte innerhalb eines Strings.

setContent(const char* text, uint16_t size = -1) bool

Setzt den Inhalt eines Strings.

Parameter:

text | zu verwendender Text
size | Anzal der aus text zu übertragenden Zeichen

setContent(const prog_uchar* text, uint16_t size = -1) bool

Setzt den Inhalt des Strings aus dem Flash.

setSize(uint16_t newSize) bool

Setzt die Größe des Strings.

Die Funktion allokiert Speicher für den String in 4-Byte-Blöcken.
Bei OutOfMemory wird ein Watchdog-Reset ausgelöst.

Parameter:

newSize benötigte Speicher-Größe

toInt(uint8_t** endPt=NULL /*Out*/) uint32_t

Wandelt einen String in eine Zahl um. Es werden Hexadezimal-Zahlen (0x..), Binärzahlen (0b...) und Dezimalzahlen erkannt.

Parameter:

endPt (optional) Zeiger auf Zeiger für die Rückgabe der Position, an der das erste unbekannte Zeichen auftrat.

Rückgabe:

uint32_t erkannte Zahl, Null bei Fehler

toLowerCase() void

Wandelt den String in Kleinbuchstaben.

toUpperCase() void

Wandelt den String in Großbuchstaben.

trim() void

Entfernt führende und abschließende Leerstellen.


String8

Vererbung

Basisklassen(n) abgeleitete Klassen
String8

Attribute

public:

Attribut | Typ | Beschreibung
len | uint8_t | aktuelle Stringlänge
pBuffer | uint8_t* | Datenpuffer des Strings

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
String8 | const char* text |  | Erstellt einen String aus einer konstanten Zeichenkette.
String8 | const String8& text |  | Copy-Konstruktor
addContent | const char* text, uint8_t size=-1 | void | Fügt an einen vorhandenen String an.
addContent | const prog_uchar* text, uint8_t size=-1 | void | Fügt aus dem Flash an einen vorhandenen String an.
deinit |  | void | Deinitialisierung/Speicherfreigabe
find | char c, uint8_t startPos=0 | uint8_t | Liefert das erste Auftreten eines Zeichens im String.
find | char* search, uint8_t startPos=0 | uint8_t | Liefert das erste Auftreten einer Zeichenkette im String.
fromInt | uint32_t num, uint8_t base=10 | void | Füllt den String mit der umgewandelten Zahl.
getPart | uint8_t startPos, uint8_t anz | String8 | Gibt eine Teilzeichenkette zurück.
getSize |  | uint8_t | Liefert die Größe des Strings.
operator char* |  |  | Casting-Operator nach char*
operator const char* |  |  | Casting-Operator nach const char*
operator+ | const String8& text | String8 | Operator für das Zusammensetzen von Strings.
operator+ | const char* txt1, const String8& txt2 | String8 | Zusammensetzen von Zeichenketten.
operator+= | const String8& text | String8& | Operator für das Anfügen von Strings.
operator+= | const char c | String8& | Operator für das Anfügen eines Zeichens.
operator+= | const prog_uchar* c | String8& | Fügt aus dem Flash an einen vorhandenen String an.
operator= | const char* text | String8& | Zuweisungsoperator mit const char*
operator= | const String8& text | String8& | Zuweisungsoperator mit String
operator= | const prog_uchar* text | String8& | Setzt den Inhalt des Strings aus dem Flash.
operator== | const String8& text | bool | Operator zum Vergleich mit einem anderen String.
operator== | const prog_uchar* pText | bool | Operator zum Vergleich mit einer Flash-Zeichenkette.
setContent | const char* text, uint8_t size = -1 | bool | Setzt den Inhalt eines Strings.
setContent | const prog_uchar* text, uint8_t size = -1 | bool | Setzt den Inhalt des Strings aus dem Flash.
setSize | uint8_t newSize | bool | Setzt die Größe des Strings.
toInt | uint8_t** endPt=NULL /*Out*/ | uint32_t | Wandelt einen String in eine Zahl um. Es werden Hexadezimal-Zahlen (0x..), Binärzahlen (0b...) und Dezimalzahlen erkannt.

Detailbeschreibung String8

Funktionsbeschreibungen

String8(const char* text)

Erstellt einen String aus einer konstanten Zeichenkette.

Parameter:

text Zeichenkette, z.B. "der Text"

String8(const String8& text)

Copy-Konstruktor

addContent(const char* text, uint8_t size=-1) void

Fügt an einen vorhandenen String an.

Parameter:

text | anzufügender Text
size | Anzahl der anzufügenden Zeichen, wenn -1 wird strlen verwendet

addContent(const prog_uchar* text, uint8_t size=-1) void

Fügt aus dem Flash an einen vorhandenen String an.

Parameter:

text | Flash-String der angefügt werden soll
size | Anzahl der anzufügenden Zeichen, wenn -1 wird strlen verwendet

deinit() void

Deinitialisierung/Speicherfreigabe

find(char c, uint8_t startPos=0) uint8_t

Liefert das erste Auftreten eines Zeichens im String.

Parameter:

c | Zeichen
startPos | die Start-Position der Suche

Rückgabe:

uint8_t Zeichenposition oder -1, wenn nicht gefunden

find(char* search, uint8_t startPos=0) uint8_t

Liefert das erste Auftreten einer Zeichenkette im String.

Parameter:

search | Zeichenkette, die gesucht wird
startPos | (optional) die Start-Position der Suche

Rückgabe:

uint8_t Startposition oder -1, wenn nicht gefunden

fromInt(uint32_t num, uint8_t base=10) void

Füllt den String mit der umgewandelten Zahl.

Es werden bei base=2 "0b" und bei base=16 "0x" vorangestellt.

Parameter:

num | umzuwandelnde Zahl
base | Zahlenbasis, 2=binär, 10=dezimal, 16=hexadezimal

getPart(uint8_t startPos, uint8_t anz) String8

Gibt eine Teilzeichenkette zurück.

Wenn zu viel angegeben wurde, wird nur bis zum Ende zurückgegeben. Wenn die Startposition zu groß oder anz gleich Null ist, wird eine leere Zeichenkette zurückgegeben.

Parameter:

startPos | Offset des ersten Zeichens (mit Null beginnend)
anz | Anzahl der gewünschten Zeichen

getSize() const uint8_t

Liefert die Größe des Strings.

operator char*()

Casting-Operator nach char*

operator const char*() const

Casting-Operator nach const char*

operator+(const String8& text) String8

Operator für das Zusammensetzen von Strings.

operator+(const char* txt1, const String8& txt2) String8

Zusammensetzen von Zeichenketten.

operator+=(const String8& text) String8&

Operator für das Anfügen von Strings.

operator+=(const char c) String8&

Operator für das Anfügen eines Zeichens.

operator+=(const prog_uchar* c) String8&

Fügt aus dem Flash an einen vorhandenen String an.

operator=(const char* text) String8&

Zuweisungsoperator mit const char*

Beispiel:

text="Zeichenkette";

operator=(const String8& text) String8&

Zuweisungsoperator mit String

Beispiel:

text2 = text1;

operator=(const prog_uchar* text) String8&

Setzt den Inhalt des Strings aus dem Flash.

operator==(const String8& text) const bool

Operator zum Vergleich mit einem anderen String.

operator==(const prog_uchar* pText) const bool

Operator zum Vergleich mit einer Flash-Zeichenkette.

setContent(const char* text, uint8_t size = -1) bool

Setzt den Inhalt eines Strings.

Parameter:

text | zu verwendender Text
size | Anzal der aus text zu übertragenden Zeichen

setContent(const prog_uchar* text, uint8_t size = -1) bool

Setzt den Inhalt des Strings aus dem Flash.

setSize(uint8_t newSize) bool

Setzt die Größe des Strings.

Die Funktion allokiert Speicher für den String in 4-Byte-Blöcken.
Bei OutOfMemory wird ein Watchdog-Reset ausgelöst.

Parameter:

newSize benötigte Speicher-Größe

toInt(uint8_t** endPt=NULL /*Out*/) uint32_t

Wandelt einen String in eine Zahl um. Es werden Hexadezimal-Zahlen (0x..), Binärzahlen (0b...) und Dezimalzahlen erkannt.

Parameter:

endPt (optional) Zeiger auf Zeiger für die Rückgabe der Position, an der das erste unbekannte Zeichen auftrat.

Rückgabe:

uint32_t erkannte Zahl, Null bei Fehler


StringBig

Vererbung

Basisklassen(n) abgeleitete Klassen
StringBig

Attribute

public:

Attribut | Typ | Beschreibung
len | uint16_t | aktuelle Stringlänge
pBuffer | uint8_t* | Datenpuffer des Strings

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
StringBig | const char* text |  | Erstellt einen String aus einer konstanten Zeichenkette.
StringBig | const StringBig& text |  | Copy-Konstruktor
addContent | const char* text, uint16_t size=-1 | void | Fügt an einen vorhandenen String an.
addContent | const prog_uchar* text, uint16_t size=-1 | void | Fügt aus dem Flash an einen vorhandenen String an.
deinit |  | void | Deinitialisierung/Speicherfreigabe
find | char c, uint16_t startPos=0 | uint16_t | Liefert das erste Auftreten eines Zeichens im String.
find | char* search, uint16_t startPos=0 | uint16_t | Liefert das erste Auftreten einer Zeichenkette im String.
format | const char* format, ... | void | Beachte: es werden immer 16bit-Zahlen umgesetzt, d.h. keine Vorzeichen bei 8-bit-Zahlen und keinerlei 32bit-Zahlen.
fromInt | uint32_t num, uint8_t base=10 | void | Füllt den String mit der umgewandelten Zahl.
getPart | uint16_t startPos, uint16_t anz | StringBig | Gibt eine Teilzeichenkette zurück.
getPartTo | char trenn | StringBig | Liefert den Teilstring bis zum ersten Auftreten des Trennzeichens.
getSize |  | uint16_t | Liefert die Größe des Strings.
insert | const StringBig& text, uint16_t startPos | void | Fügt einen String in einen vorhandenen, an einer bestimmten Position, ein.
isspace | uint8_t c | bool | Hilfsfunktion, prüft ob ein Zeichen ein Freiraum (Whitespace) ist.
operator char* |  |  | Casting-Operator nach char*
operator const char* |  |  | Casting-Operator nach const char*
operator+ | const StringBig& text | StringBig | Operator für das Zusammensetzen von Strings.
operator+ | const char* txt1, const StringBig& txt2 | StringBig | Zusammensetzen von Zeichenketten.
operator+= | const StringBig& text | StringBig& | Operator für das Anfügen von Strings.
operator+= | const char c | StringBig& | Operator für das Anfügen eines Zeichens.
operator+= | const prog_uchar* c | StringBig& | Fügt aus dem Flash an einen vorhandenen String an.
operator= | const char* text | StringBig& | Zuweisungsoperator mit const char*
operator= | const StringBig& text | StringBig& | Zuweisungsoperator mit String
operator= | const prog_uchar* text | StringBig& | Setzt den Inhalt des Strings aus dem Flash.
operator== | const StringBig& text | bool | Operator zum Vergleich mit einem anderen String.
operator== | const prog_uchar* pText | bool | Operator zum Vergleich mit einer Flash-Zeichenkette.
remove | uint16_t startPos, uint16_t anz | void | Entfernt einen Teil eines Strings.
replace | const char* txtOld, const char* txtNew | void | Ersetzt Texte innerhalb eines Strings.
setContent | const char* text, uint16_t size = -1 | bool | Setzt den Inhalt eines Strings.
setContent | const prog_uchar* text, uint16_t size = -1 | bool | Setzt den Inhalt des Strings aus dem Flash.
setSize | uint16_t newSize | bool | Setzt die Größe des Strings.
toInt | uint8_t** endPt=NULL /*Out*/ | uint32_t | Wandelt einen String in eine Zahl um. Es werden Hexadezimal-Zahlen (0x..), Binärzahlen (0b...) und Dezimalzahlen erkannt.
toLowerCase |  | void | Wandelt den String in Kleinbuchstaben.
toUpperCase |  | void | Wandelt den String in Großbuchstaben.
trim |  | void | Entfernt führende und abschließende Leerstellen.
urlDecode |  | void |

Detailbeschreibung StringBig

Funktionsbeschreibungen

StringBig(const char* text)

Erstellt einen String aus einer konstanten Zeichenkette.

Parameter:

text Zeichenkette, z.B. "der Text"

StringBig(const StringBig& text)

Copy-Konstruktor

addContent(const char* text, uint16_t size=-1) void

Fügt an einen vorhandenen String an.

Parameter:

text | anzufügender Text
size | Anzahl der anzufügenden Zeichen, wenn -1 wird strlen verwendet

addContent(const prog_uchar* text, uint16_t size=-1) void

Fügt aus dem Flash an einen vorhandenen String an.

Parameter:

text | Flash-String der angefügt werden soll
size | Anzahl der anzufügenden Zeichen, wenn -1 wird strlen verwendet

deinit() void

Deinitialisierung/Speicherfreigabe

find(char c, uint16_t startPos=0) uint16_t

Liefert das erste Auftreten eines Zeichens im String.

Parameter:

c | Zeichen
startPos | die Start-Position der Suche

Rückgabe:

uint16_t Zeichenposition oder -1, wenn nicht gefunden

find(char* search, uint16_t startPos=0) uint16_t

Liefert das erste Auftreten einer Zeichenkette im String.

Parameter:

search | Zeichenkette, die gesucht wird
startPos | (optional) die Start-Position der Suche

Rückgabe:

uint16_t Startposition oder -1, wenn nicht gefunden

format(const char* format, ...) void

Beachte: es werden immer 16bit-Zahlen umgesetzt, d.h. keine Vorzeichen bei 8-bit-Zahlen und keinerlei 32bit-Zahlen.

fromInt(uint32_t num, uint8_t base=10) void

Füllt den String mit der umgewandelten Zahl.

Es werden bei base=2 "0b" und bei base=16 "0x" vorangestellt.

Parameter:

num | umzuwandelnde Zahl
base | Zahlenbasis, 2=binär, 10=dezimal, 16=hexadezimal

getPart(uint16_t startPos, uint16_t anz) StringBig

Gibt eine Teilzeichenkette zurück.

Wenn zu viel angegeben wurde, wird nur bis zum Ende zurückgegeben. Wenn die Startposition zu groß oder anz gleich Null ist, wird eine leere Zeichenkette zurückgegeben.

Parameter:

startPos | Offset des ersten Zeichens (mit Null beginnend)
anz | Anzahl der gewünschten Zeichen

getPartTo(char trenn) StringBig

Liefert den Teilstring bis zum ersten Auftreten des Trennzeichens.

Der gefundene Teilstring sowie das Trennzeichen werden aus dem Ausgangsstring entfernt.
Ist das angegebene Trennzeichen nicht enthalten wird der gesamte String zurückgegeben und er Ausgangsstring geleert.

Parameter:

trenn Trennzeichen

Rückgabe:

StringBig Teilstring ohne Trennzeichen

getSize() const uint16_t

Liefert die Größe des Strings.

insert(const StringBig& text, uint16_t startPos) void

Fügt einen String in einen vorhandenen, an einer bestimmten Position, ein.

Parameter:

text | einzufügender Text
startPos | Einfügeposition

isspace(uint8_t c) bool

Hilfsfunktion, prüft ob ein Zeichen ein Freiraum (Whitespace) ist.

Parameter:

c Zeichen

Rückgabe:

bool true, wenn Freiraum (Whitespace)

operator char*()

Casting-Operator nach char*

operator const char*() const

Casting-Operator nach const char*

operator+(const StringBig& text) StringBig

Operator für das Zusammensetzen von Strings.

operator+(const char* txt1, const StringBig& txt2) StringBig

Zusammensetzen von Zeichenketten.

operator+=(const StringBig& text) StringBig&

Operator für das Anfügen von Strings.

operator+=(const char c) StringBig&

Operator für das Anfügen eines Zeichens.

operator+=(const prog_uchar* c) StringBig&

Fügt aus dem Flash an einen vorhandenen String an.

operator=(const char* text) StringBig&

Zuweisungsoperator mit const char*

Beispiel:

text="Zeichenkette";

operator=(const StringBig& text) StringBig&

Zuweisungsoperator mit String

Beispiel:

text2 = text1;

operator=(const prog_uchar* text) StringBig&

Setzt den Inhalt des Strings aus dem Flash.

operator==(const StringBig& text) const bool

Operator zum Vergleich mit einem anderen String.

operator==(const prog_uchar* pText) const bool

Operator zum Vergleich mit einer Flash-Zeichenkette.

remove(uint16_t startPos, uint16_t anz) void

Entfernt einen Teil eines Strings.

Ab 'startPos' werden 'anz' Zeichen entfernt.

Parameter:

startPos | Position, ab der entfernt werden soll
anz | Anzahl der zu entfernenden Zeichen

replace(const char* txtOld, const char* txtNew) void

Ersetzt Texte innerhalb eines Strings.

setContent(const char* text, uint16_t size = -1) bool

Setzt den Inhalt eines Strings.

Parameter:

text | zu verwendender Text
size | Anzal der aus text zu übertragenden Zeichen

setContent(const prog_uchar* text, uint16_t size = -1) bool

Setzt den Inhalt des Strings aus dem Flash.

setSize(uint16_t newSize) bool

Setzt die Größe des Strings.

Die Funktion allokiert Speicher für den String in 4-Byte-Blöcken.
Bei OutOfMemory wird ein Watchdog-Reset ausgelöst.

Parameter:

newSize benötigte Speicher-Größe

toInt(uint8_t** endPt=NULL /*Out*/) uint32_t

Wandelt einen String in eine Zahl um. Es werden Hexadezimal-Zahlen (0x..), Binärzahlen (0b...) und Dezimalzahlen erkannt.

Parameter:

endPt (optional) Zeiger auf Zeiger für die Rückgabe der Position, an der das erste unbekannte Zeichen auftrat.

Rückgabe:

uint32_t erkannte Zahl, Null bei Fehler

toLowerCase() void

Wandelt den String in Kleinbuchstaben.

toUpperCase() void

Wandelt den String in Großbuchstaben.

trim() void

Entfernt führende und abschließende Leerstellen.


myAVR_Timer

Beschreibung

Paket mit Klassen zur Timerkonfiguration.

Getestet mit den Controllerreihen ATmega48/88/168/328(P) ATmega164/324/644(P), ATmega640/1280/2560, ATmega1281/2561.

Inhalt

Name | Kurzbeschreibung
Timer0 | 8-Bit-Timer0
Timer1 | 16-Bit-Timer
Timer16bit | 16-Bit Timer mit CompareMatch, externe Quelle möglich.
Timer2 | 8-Bit-Timer2
Timer3 | 16-Bit-Timer
Timer4 | 16-Bit-Timer
Timer5 | 16-Bit-Timer
Timer8bit | 8-Bit Timer mit CompareMatch, mit externem Eingang, 2 PWM Ausgänge.


Timer0

8-Bit-Timer0

Vererbung

Basisklassen(n) abgeleitete Klassen
Timer8bit→
Timer0

Attribute

Operationen

Detailbeschreibung Timer0

8-Bit-Timer0

Funktionsbeschreibungen

<< Gesamtübersicht << Klassenübersicht Details der Klasse Funktionsbeschreibungen


Timer1

16-Bit-Timer

Vererbung

Basisklassen(n) abgeleitete Klassen
Timer16bit→
Timer1

Attribute

Operationen

Detailbeschreibung Timer1

16-Bit-Timer

Funktionsbeschreibungen

<< Gesamtübersicht << Klassenübersicht Details der Klasse Funktionsbeschreibungen


Timer16bit

16-Bit Timer mit CompareMatch, externe Quelle möglich. [Mehr ...]

Vererbung

Basisklassen(n) abgeleitete Klassen
Timer16bit
Timer1
Timer3
Timer4
Timer5

Attribute

protected:

Attribut | Typ | Beschreibung
port | volatile uint8_t* | TCCRnA Port des Timers
portTimsk | volatile uint8_t* | TIMSKn Port des Timers

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
configInt_compare | bool enableA, bool enableB=false, bool enableC=false | void | Funktion zum Erlauben und Sperren des CompareMatch-Interrupts, einschließlich sei().
configInt_overflow | bool enable=true | void | Funktion zum Setzen und Sperren des Überlauf-Interrupts, einschließlich sei().
config_compareMatch | uint8_t source, uint16_t matchValueA, uint16_t matchValueB=0 | void | Initialisiert den 16-Bit Timer als "Zähler bis VergleichswertA". Wobei source den Vorteiler bezogen auf den Systemtakt beschreibt und matchValueA der Grenzwert beim Zählen ist.
config_overflow | uint8_t source | void | Konfiguriert den 16-Bit-Timer als "Zähler mit Überlauf", wobei source der Vorteiler bezogen auf den Systemtakt ist.
stop |  | void | Stoppt den Timer.

Detailbeschreibung Timer16bit

16-Bit Timer mit CompareMatch, externe Quelle möglich.

Beispiel: Verwendung

timer1.config_compareMatch( Timer1::sourcePrescale8, 10000);
timer1.configInt_compare(true);

Funktionsbeschreibungen

configInt_compare(bool enableA, bool enableB=false, bool enableC=false) void

Funktion zum Erlauben und Sperren des CompareMatch-Interrupts, einschließlich sei().

Beachte: enableC ist nur bei einigen Controllern verfügbar

Parameter:

enableA/B/C wenn false, wird der Interrupt deaktiviert

configInt_overflow(bool enable=true) void

Funktion zum Setzen und Sperren des Überlauf-Interrupts, einschließlich sei().

Parameter:

enable wenn false; wird der Interrupt deaktiviert

config_compareMatch(uint8_t source, uint16_t matchValueA, uint16_t matchValueB=0) void

Initialisiert den 16-Bit Timer als "Zähler bis VergleichswertA". Wobei source den Vorteiler bezogen auf den Systemtakt beschreibt und matchValueA der Grenzwert beim Zählen ist.

Parameter:

source | einer von: sourceStop, sourcePrescale1, sourcePrescale8, sourcePrescale64, sourcePrescale256, ourcePrescale1024, sourcePinT1falling, sourcePinT1rising
matchValueA | Vergleichswert A

config_overflow(uint8_t source) void

Konfiguriert den 16-Bit-Timer als "Zähler mit Überlauf", wobei source der Vorteiler bezogen auf den Systemtakt ist.

Parameter:

source einer von: sourceStop, sourcePrescale1, sourcePrescale8, sourcePrescale32, sourcePrescale64, sourcePrescale128, sourcePrescale256, sourcePrescale1024

stop() void

Stoppt den Timer.


Timer2

8-Bit-Timer2

Vererbung

Basisklassen(n) abgeleitete Klassen
Timer8bit→
Timer2

Attribute

Operationen

Detailbeschreibung Timer2

8-Bit-Timer2

Funktionsbeschreibungen

<< Gesamtübersicht << Klassenübersicht Details der Klasse Funktionsbeschreibungen


Timer3

16-Bit-Timer

Vererbung

Basisklassen(n) abgeleitete Klassen
Timer16bit→
Timer3

Attribute

Operationen

Detailbeschreibung Timer3

16-Bit-Timer

Funktionsbeschreibungen

<< Gesamtübersicht << Klassenübersicht Details der Klasse Funktionsbeschreibungen


Timer4

16-Bit-Timer

Vererbung

Basisklassen(n) abgeleitete Klassen
Timer16bit→
Timer4

Attribute

Operationen

Detailbeschreibung Timer4

16-Bit-Timer

Funktionsbeschreibungen

<< Gesamtübersicht << Klassenübersicht Details der Klasse Funktionsbeschreibungen


Timer5

16-Bit-Timer

Vererbung

Basisklassen(n) abgeleitete Klassen
Timer16bit→
Timer5

Attribute

Operationen

Detailbeschreibung Timer5

16-Bit-Timer

Funktionsbeschreibungen

<< Gesamtübersicht << Klassenübersicht Details der Klasse Funktionsbeschreibungen


Timer8bit

8-Bit Timer mit CompareMatch, mit externem Eingang, 2 PWM Ausgänge.

Vererbung

Basisklassen(n) abgeleitete Klassen
Timer8bit
Timer0
Timer2

Attribute

protected:

Attribut | Typ | Beschreibung
port | volatile uint8_t* | TCCRnA Port des Timers
portTimsk | volatile uint8_t* | TIMSKn Port des Timers

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
configInt_compare | bool enableA, bool enableB | void | Funktion zum Erlauben und Sperren des CompareMatch-Interrupts, einschließlich sei().
configInt_overflow | bool enable | void | Funktion zum Setzen und Sperren des Überlauf-Interrupts, einschließlich sei().
config_compareMatch | uint8_t source, uint8_t matchValueA | void | Initialisiert den 8-Bit Timer als "Zähler bis VergleichswertA". Wobei source den Vorteiler bezogen auf den Systemtakt beschreibt und matchValueA der Grenzwert beim Zählen ist.
config_overflow | uint8_t source | void | Konfiguriert den 8-Bit-Timer als "Zähler mit Überlauf", wobei source der Vorteiler bezogen auf den Systemtakt ist.
config_pwm | uint8_t source, volatile uint8_t* portOutA, uint8_t bitmaskOutA, volatile uint8_t* portOutB=0, uint8_t bitmaskOutB=0 | void | Konfiguriert beide PWM-Ausgänge des Timers als Phasenkorrekte PWM.
setValueA | uint8_t valueA | void | Setzt einen neuen Wert für OCRxA.
setValueB | uint8_t valueB | void | Setzt einen neuen Wert für OCRxB.
stop |  | void | Stoppt den Timer.

Detailbeschreibung Timer8bit

8-Bit Timer mit CompareMatch, mit externem Eingang, 2 PWM Ausgänge.

Funktionsbeschreibungen

configInt_compare(bool enableA,bool enableB) void

Funktion zum Erlauben und Sperren des CompareMatch-Interrupts, einschließlich sei().

Parameter:

enableA/B wenn false, wird der Interrupt deaktiviert

configInt_overflow(bool enable) void

Funktion zum Setzen und Sperren des Überlauf-Interrupts, einschließlich sei().

Parameter:

enable wenn false, wird der Interrupt deaktiviert

config_compareMatch(uint8_t source, uint8_t matchValueA) void

Initialisiert den 8-Bit Timer als "Zähler bis VergleichswertA". Wobei source den Vorteiler bezogen auf den Systemtakt beschreibt und matchValueA der Grenzwert beim Zählen ist.

Parameter:

source: einer von: sourceStop | 0, sourcePrescale1=1, sourcePrescale8=2, sourcePrescale64=3, sourcePrescale256=4, sourcePrescale1024=5, sourcePinT0falling=6, sourcePinT0rising=7,
matchValueA | Vergleichswert A

config_overflow(uint8_t source) void

Konfiguriert den 8-Bit-Timer als "Zähler mit Überlauf", wobei source der Vorteiler bezogen auf den Systemtakt ist.

Parameter:

source einer von: sourceStop, sourcePrescale1, sourcePrescale8, sourcePrescale32, sourcePrescale64, sourcePrescale128, sourcePrescale256, sourcePrescale1024

config_pwm(uint8_t source, volatile uint8_t* portOutA, uint8_t bitmaskOutA, volatile uint8_t* portOutB=0, uint8_t bitmaskOutB=0) void

Konfiguriert beide PWM-Ausgänge des Timers als Phasenkorrekte PWM.

Parameter:

source | einer von: sourceStop=0, sourcePrescale1=1, sourcePrescale8=2, sourcePrescale64=3, sourcePrescale256=4, sourcePrescale1024=5, sourcePinT0falling=6, sourcePinT0rising=7,
portOutA,portOutB | Port des Ausgabepins OCnA / OCnB
bitmaskOutA,bitmaskOutB | Bitmask des Ausgabepins OCnA / OCnB

setValueA(uint8_t valueA) void

Setzt einen neuen Wert für OCRxA.

setValueB(uint8_t valueB) void

Setzt einen neuen Wert für OCRxB.

stop() void

Stoppt den Timer.


myAVR_TWI

Beschreibung

Paket für die allgemeine TWI-Funktionalität.

Verwendbar im Zusammenspiel mit myAVR_TWI_Devices.

Inhalt

Name | Kurzbeschreibung
Twi | Grundlegende Klasse für TWI.
TwiMaster | Representiert sowohl die MCU als auch das TWI-Gerät.
TwiMasterSlaveInt | Angedachte Konstruktion unbenutzt und ungetestet.
TwiSlave | Angedachte Konstruktion unbenutzt und ungetestet.
TwiSlaveInt | Angedachte Konstruktion unbenutzt und ungetestet.


Twi

Grundlegende Klasse für TWI.

Vererbung

Basisklassen(n) abgeleitete Klassen
Twi
TwiMaster
TwiSlave

Attribute

public:

Attribut | Typ | Beschreibung
errorcode | uint8_t | Fehlercode: Wenn ungleich Null ist ein Fehler (Timeout) aufgetreten.
timeOut | uint8_t | Zeit bis Timeout in Millisekunden.

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
getState |  | uint8_t | Gibt den TWI-Status-Code zurück.
isJobFinished |  | bool | Gibt true zurück, wenn die TWI-Hardware eine Aktion beendet hat und eine Softwarebehandlung notwendig ist.
readByte | uint8_t ackn | uint8_t | Liest ein Datenbyte per TWI (ohne Interrupt)
start |  | bool | Startet die TWI Übertragung.
stop |  | void | Stoppt die TWI Übertragung
writeByte | uint8_t data, uint8_t ackn | bool | Schreibt Daten per TWI (ohne Interrupt)

protected:

Name | Parameter | Rückgabewert | Beschreibung
waitForReady |  | bool | Warten auf TWI Übertragung fertig.

Detailbeschreibung Twi

Grundlegende Klasse für TWI.

Funktionsbeschreibungen

getState() uint8_t

Gibt den TWI-Status-Code zurück.

isJobFinished() bool

Gibt true zurück, wenn die TWI-Hardware eine Aktion beendet hat und eine Softwarebehandlung notwendig ist.

Der Status wird durch Schreiben von high auf TWCD:TWINT gelöscht. (z.B. TWCR|=_TWINT).
Bis der Status gelöscht wird, wird die TWI-Kommunikation gedehnt (der Bus ist blockiert).

readByte(uint8_t ackn) uint8_t

Liest ein Datenbyte per TWI (ohne Interrupt)

Parameter:

ackn wenn !=0 wird Acknowledge (=TWEA) gesetzt

Rückgabe:

uint8_t Data

start() bool

Startet die TWI Übertragung.

stop() void

Stoppt die TWI Übertragung

waitForReady() bool

Warten auf TWI Übertragung fertig.

Rückgabe:

errorcode 'T' bei timeout, sonst errorcode=0

writeByte(uint8_t data, uint8_t ackn) bool

Schreibt Daten per TWI (ohne Interrupt)

Parameter:

data | zu sendende Daten
ackn | wenn !=0 wird Acknowledge (=TWEA) gesetzt, es werden Daten angefordert


TwiMaster

Representiert sowohl die MCU als auch das TWI-Gerät.

Vererbung

Basisklassen(n) abgeleitete Klassen
Twi→
TwiMaster
Twi_LM75
Twi_Time_DS1307
Twi_EEPROM
Twi_PCA9555

Attribute

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
config |  | void | Konfiguriert ein TWI-Gerät.

Detailbeschreibung TwiMaster

Representiert sowohl die MCU als auch das TWI-Gerät.

Funktionsbeschreibungen

static config() void

Konfiguriert ein TWI-Gerät.

Siehe Paket TWI-Devices für Geräte.


TwiMasterSlaveInt

Angedachte Konstruktion unbenutzt und ungetestet.

Vererbung

Basisklassen(n) abgeleitete Klassen
Twi→
TwiSlave→
TwiSlaveInt→
TwiMasterSlaveInt

Attribute

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
config | uint8_t myTwiAdr | void | myTwiAdr = eigene TWI-Slave-Adresse

Detailbeschreibung TwiMasterSlaveInt

Angedachte Konstruktion unbenutzt und ungetestet.

Funktionsbeschreibungen

static config(uint8_t myTwiAdr) void

myTwiAdr = eigene TWI-Slave-Adresse


TwiSlave

Angedachte Konstruktion unbenutzt und ungetestet.

Vererbung

Basisklassen(n) abgeleitete Klassen
Twi→
TwiSlave
TwiSlaveInt

Attribute

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
config | uint8_t myTwiAdr | void | myTwiAdr = eigene TWI-Slave-Adresse

Detailbeschreibung TwiSlave

Angedachte Konstruktion unbenutzt und ungetestet.

Funktionsbeschreibungen

static config(uint8_t myTwiAdr) void

myTwiAdr = eigene TWI-Slave-Adresse


TwiSlaveInt

Angedachte Konstruktion unbenutzt und ungetestet. [Mehr ...]

Vererbung

Basisklassen(n) abgeleitete Klassen
Twi→
TwiSlave→
TwiSlaveInt
TwiMasterSlaveInt

Attribute

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
configInt | bool enable | void |
onInt |  | void |

protected:

Name | Parameter | Rückgabewert | Beschreibung
onConnectAsSlaveForWrite |  | bool | Wird ausgelöst, wenn die eigene SlaveAdresse angesprochen wurde.
onIntDataRec | uint8_t data, bool lastData | void | wird ausgelöst wenn Daten empfangen wurden
onIntDataSend | bool &isLastData | uint8_t | wird ausgelöst wenn Daten gesendet werden sollen

Detailbeschreibung TwiSlaveInt

Angedachte Konstruktion unbenutzt und ungetestet.

- agiert als TWI-Slave
- benutzt INT
- Controller muss bei onInt_twi(..) onInt() aufrufen

Beispiel: Bsp:

config:

TwiSlave::config( 0x02 );		// TWI-Adresse
configInt(true);
onIntDataSend(..)
uint8_t data='*';		// zusendende Daten

Funktionsbeschreibungen

configInt(bool enable) void

onConnectAsSlaveForWrite() bool

Wird ausgelöst, wenn die eigene SlaveAdresse angesprochen wurde.

Danach wird eine Bestätigung gesendet, falls diese Funktion true zurück gibt.

onInt() void

onIntDataRec(uint8_t data, bool lastData) void

wird ausgelöst wenn Daten empfangen wurden

Parameter:

data | empfangene Daten
lastData | wenn true wurde kein ACK gesendet, d.h. es sind die 'letzten' Daten des Masters

onIntDataSend(bool &isLastData) uint8_t

wird ausgelöst wenn Daten gesendet werden sollen

Rückgabe:

isLastData | true wenn dies die letzten Daten sind
returnWert | zu sendende Daten


myAVR_TWI_Devices

Beschreibung

Verschiede TWI-Geräte und deren spezielle Funktionen.

Inhalt

Name | Kurzbeschreibung
Twi_EEPROM | Klasse für das TWI Add-On myTWI EEPROM.
Twi_LM75 | Klasse für das TWI Add-On myTWI Temperatursensor.
Twi_PCA9555 | Klasse für das TWI Add-On myTWI Portexpander.
Twi_Time_DS1307 | Klasse für das TWI Add-On myTWI Echtzeituhr.


Twi_EEPROM

Klasse für das TWI Add-On myTWI EEPROM.

Vererbung

Basisklassen(n) abgeleitete Klassen
Twi→
TwiMaster→
Twi_EEPROM

Attribute

protected:

Attribut | Typ | Beschreibung
adr | uint8_t | Die TWI Geräteadresse des EEPROM.

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
config | uint8_t twiAdr | void | Initialisiert das EEPROM-Modul.
readData | uint8_t adress | uint8_t | Liest an einer Adresse im EEPROM ein Byte aus.
writeData | uint8_t adress, uint8_t data | bool | Schreibt an einer Adresse im EEPROM ein Byte.

Detailbeschreibung Twi_EEPROM

Klasse für das TWI Add-On myTWI EEPROM.

Funktionsbeschreibungen

config(uint8_t twiAdr) void

Initialisiert das EEPROM-Modul.

Parameter:

twiAdr Geräteadresse des jeweiligen EEPROM-Modul

readData(uint8_t adress) uint8_t

Liest an einer Adresse im EEPROM ein Byte aus.

Parameter:

adress die Speicheradresse im EEPROM

Rückgabe:

data das ausgelesene Byte

writeData(uint8_t adress, uint8_t data) bool

Schreibt an einer Adresse im EEPROM ein Byte.

Parameter:

adress | die Speicheradresse im EEPROM
data | das zu schreibende Byte

Rückgabe:

ok ob Aktion erfolgreich war


Twi_LM75

Klasse für das TWI Add-On myTWI Temperatursensor.

Vererbung

Basisklassen(n) abgeleitete Klassen
Twi→
TwiMaster→
Twi_LM75

Attribute

protected:

Attribut | Typ | Beschreibung
adr | uint8_t | TWI-Adresse des Temp-Sensors: 0x90 + JumperStellung = 0b1001xxx0

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
config | uint8_t twiAdr | void | Initialisiert den Temperatursensor
getGrad |  | uint8_t | Gibt die Temperatur in Grad zuück.
getHalfGrad |  | uint8_t | Gibt die Temperatur in 1/2-Grad-Basis zurück.
setComperator | uint8_t tempHigh, uint8_t tempHighHalf, uint8_t tempLow, uint8_t tempLowHalf | void | Setzt die Temperaturwerte bei denen der etxerne Pin aktiviert bzw. deaktiviert wird.

protected:

Name | Parameter | Rückgabewert | Beschreibung
setRegister | uint8_t reg, uint8_t highData, uint8_t lowData | void | schreibt ein Register des LM75

Detailbeschreibung Twi_LM75

Klasse für das TWI Add-On myTWI Temperatursensor.

Funktionsbeschreibungen

config(uint8_t twiAdr) void

Initialisiert den Temperatursensor

Parameter:

twiAdr Geräteadresse des jeweiligen Tempsensors

getGrad() uint8_t

Gibt die Temperatur in Grad zuück.

getHalfGrad() uint8_t

Gibt die Temperatur in 1/2-Grad-Basis zurück.

Beispiel:

21 steht für 10,5 Grad
60 steht für 30,0 Grad

setComperator(uint8_t tempHigh, uint8_t tempHighHalf, uint8_t tempLow, uint8_t tempLowHalf) void

Setzt die Temperaturwerte bei denen der etxerne Pin aktiviert bzw. deaktiviert wird.

Parameter:

tempHigh | Temperatur ab der Ext.Pin eingeschalten wird
tempHighHalf | 1/2 Grad = 0x00 oder 0x80
tempLow | Temperatur unter der Ext.Pin ausgeschalten wird
tempLowHalf | 1/2 Grad = 0x00 oder 0x80

setRegister(uint8_t reg, uint8_t highData, uint8_t lowData) void

schreibt ein Register des LM75

Parameter:

Register | REG_CONFIG,REG_HYST,REG_SET
lowData,highData | zu schreibende Werte


Twi_PCA9555

Klasse für das TWI Add-On myTWI Portexpander.

Vererbung

Basisklassen(n) abgeleitete Klassen
Twi→
TwiMaster→
Twi_PCA9555

Attribute

protected:

Attribut | Typ | Beschreibung
adr | uint8_t | Die TWI Geräteadresse des Portexpanders

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
config | uint8_t twiAdr | void | Initialisiert das Portexpander-Modul.
configPorts | uint8_t confPortA, uint8_t confPortB | void | Konfiguriert die beiden Ports des Portexpanders.
outPorts | uint8_t port, uint8_t data | void | Setzt den Ausgang des gewünschten Ports auf den Wert von data.
readPorts | uint8_t port | uint8_t | Liest das Inputregister des gewünschten Ports aus.

Detailbeschreibung Twi_PCA9555

Klasse für das TWI Add-On myTWI Portexpander.

Funktionsbeschreibungen

config(uint8_t twiAdr) void

Initialisiert das Portexpander-Modul.

Parameter:

twiAdr Geräteadresse des jeweiligen Portexpander-Modul

configPorts(uint8_t confPortA, uint8_t confPortB) void

Konfiguriert die beiden Ports des Portexpanders.

Parameter:

confPortA | Eine 8bit-Zahl die A0-A7 konfiguriert. Je Pin ein Bit, Null steht für Ausgang und Eins steht für Eingang.
confPortB | Eine 8bit-Zahl die B0-B7 konfiguriert. Je Pin ein Bit, Null steht für Ausgang und Eins steht für Eingang.

outPorts(uint8_t port, uint8_t data) void

Setzt den Ausgang des gewünschten Ports auf den Wert von data.

Parameter:

port | Der Port den man nutzen möchte. 0 für PortA oder 1 für PortB
data | Eine 8bit-Zahl deren Bits je für ein Pin stehen. (Portx0-Portx7) Null = output-low, Eins = output-high

readPorts(uint8_t port) uint8_t

Liest das Inputregister des gewünschten Ports aus.

Parameter:

port Der Port den man lesen möchte. 0 für PortA oder 1 für PortB

Rückgabe:

data Eine 8bit-Zahl deren Bits je für ein Pin stehen. (Portx0-Portx7)


Twi_Time_DS1307

Klasse für das TWI Add-On myTWI Echtzeituhr.

Vererbung

Basisklassen(n) abgeleitete Klassen
Twi→
TwiMaster→
Twi_Time_DS1307

Attribute

protected:

Attribut | Typ | Beschreibung
adr | uint8_t | Die TWI Geräteadresse der Echtzeituhr.

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
config | uint8_t twiAdr | void | Initialisiert die Echtzeituhr.
getTime | char* time, char* mask | void | Gibt aktuelles Datum und Uhrzeit zurück.
setDate | char* date | void | Setzt das Datum.
setTime | char* time, bool in24h=true | void | Setzt die Uhrzeit.
startClock |  | void | Startet die Uhr wieder falls sie angehalten war.
stopClock |  | void | Hält die Uhr an.

protected:

Name | Parameter | Rückgabewert | Beschreibung
setDay | uint8_t day | void | Setzt den Datumstag (1 - 31)
setHours | uint8_t hours | void | Setzt die Stunden (1 - 12 + am/pm oder 0 - 23)
setMinutes | uint8_t minutes | void | Setzt die Minuten (0 - 59)
setMonth | uint8_t month | void | Setzt den Datumsmonat (1 - 12)
setSeconds | uint8_t seconds | void | Setzt die Sekunden (0 - 59)
setWeekDay | uint8_t weekday | void | Setzt den Wochentag (Montag = 1,..., Sonntag = 7)
setYear | uint8_t year | void | Setzt das Datumsjahr zweistellig (0 - 99)

Detailbeschreibung Twi_Time_DS1307

Klasse für das TWI Add-On myTWI Echtzeituhr.

Funktionsbeschreibungen

config(uint8_t twiAdr) void

Initialisiert die Echtzeituhr.

Startet und Stellt die Uhr aber nicht!

Parameter:

twiAdr Geräteadresse der jeweiligen Echtzeituhr.

getTime(char* time, char* mask) void

Gibt aktuelles Datum und Uhrzeit zurück.

Das Format der Rückgabe kann mittels einer Maske formatiert und individuell angepasst werden.

Beispiel:

Datum = Montag der 2009.04.20, Zeit = 16:30:00
mask = "Am %d.%m.%Y um %h:%i:%s Uhr." ergibt: "Am 20.04.2009 um 16:30:00 Uhr."

Parameter:

time | Zeiger auf die Ergebniszeichenkette
mask | Zeiger auf die Zeichenkette mit der Maske für das Ergebnis

setDate(char* date) void

Setzt das Datum.

Beispiel:

0904201 oder 09-04-20-1 = Mo der 20.04.2009

Parameter:

date Die Zeichenkette mit dem Datum welches einstellt werden soll. Format: Jahr zweistellig, Monat zweistellig, Tag zweistellig und Wochentag als Zahl (1 für Montag, 7 für Sonntag). Die einzelnen Angaben können durch ein Trennzeichen abgetrennt werden, gültige Zeichen sind :, / und -.

setDay(uint8_t day) void

Setzt den Datumstag (1 - 31)

Das Byte muß schon fertig als BCD formatiert sein.

Parameter:

day Datumstag als BCD-Zahl, 01 - 31

setHours(uint8_t hours) void

Setzt die Stunden (1 - 12 + am/pm oder 0 - 23)

Das Byte muß schon fertig als BCD formatiert sein.

Parameter:

hours Stunden als BCD Zahl, 1 - 12 + am/pm oder 0 - 23

setMinutes(uint8_t minutes) void

Setzt die Minuten (0 - 59)

Das Byte muß schon fertig als BCD formatiert sein.

Parameter:

minutes minuten als BCD Zahl, 0 - 59

setMonth(uint8_t month) void

Setzt den Datumsmonat (1 - 12)

Das Byte muß schon fertig als BCD formatiert sein.

Parameter:

monat Datumsmonat als BCD-Zahl, 1- 12

setSeconds(uint8_t seconds) void

Setzt die Sekunden (0 - 59)

Das Byte muß schon fertig als BCD formatiert sein.

Parameter:

seconds Sekunden als BCD Zahl, 0 - 59

setTime(char* time, bool in24h=true) void

Setzt die Uhrzeit.

Beispiel:

040000a oder 04:00:00:a = 04 Uhr 0 min 0 sek am
163050 oder 16-30-50 = 16 Uhr 30 min 50 sek

Parameter:

time | Zeichenkette mit der Uhrzeit die einstellt werden soll. Format: Stunden zweistellig, Minuten zweistellig, Sekunden zweistellig, wenn 12-Stunden Format ein 'p' für pm oder ein 'a' für am. Die einzelnen Angaben können durch ein Trennzeichen abgetrennt werden, gültige Zeichen sind :, /, -.
in24h | ob die Zeit als 24 oder 12 Stundenformat angegeben ist, 24-Stundenformat ist Standard.

setWeekDay(uint8_t weekday) void

Setzt den Wochentag (Montag = 1,..., Sonntag = 7)

Das Byte muß schon fertig als BCD formatiert sein.

Parameter:

weekday Wochentag als BCD-Zahl, 1 - 7

setYear(uint8_t year) void

Setzt das Datumsjahr zweistellig (0 - 99)

Das Byte muß schon fertig als BCD formatiert sein.

Parameter:

year Datumsjahr zweistellig als BCD Zahl, 0 - 99

startClock() void

Startet die Uhr wieder falls sie angehalten war.

stopClock() void

Hält die Uhr an.


myAVR_Uart

Beschreibung

Paket zur Verwendung von UART-Kommunikationen.

Inhalt

Name | Kurzbeschreibung
Uart | Die USART Schnittstelle der MCU.


Uart

Die USART Schnittstelle der MCU. [Mehr ...]

Vererbung

Basisklassen(n) abgeleitete Klassen
Uart

Attribute

protected:

Attribut | Typ | Beschreibung
port | volatile unsigned char* | Port der UART = Adresse des UDRx-Registers.

Operationen

public:

Name | Parameter | Rückgabewert | Beschreibung
config | unsigned long baud, volatile unsigned char& udrPort | void | RxD und TxD werden aktiviert und die Baudrate gesetzt.
getChar |  | short | Empfang eines Bytes mit Warten bis Daten da sind.
hasChar |  | bool | Ermittelt, ob empfangene Daten vorhanden sind.
put | uint16_t& data | void | Sendet einen 16-Bit-Wert. Falls notwendig wird gewartet.
put | uint32_t& data | void | Sendet einen 32-Bit-Wert. Falls notwendig wird gewartet.
putAscii | uint32_t num, uint8_t basis=10 | void | Sendet eine Zahl als Ascii-Zeichenkette. Es wird kein prefix vorangestellt. Falls notwendig wird gewartet.
putChar | uint8_t data | void | Sendet ein Byte. Falls notwendig wird gewartet.
putMem | uint8_t* buffer, uint8_t size | void | Sendet Bytes aus einem Puffer. Falls notwendig wird gewartet.
putString | const char* buffer | void | Sendet eine Zeichenkette bis zur abschließenden Null. Die Null wird nicht mit gesendet. Falls notwendig wird gewartet.
putStringFlash | const char* PROGMEM ptext | void | Sendet eine Zeichenkette bis zur abschließenden Null. Die Null wird nicht mit gesendet. Falls notwendig wird gewartet.

Detailbeschreibung Uart

Die USART Schnittstelle der MCU.

Beispiel:

uart.config(19200,UDR0);

Funktionsbeschreibungen

config(unsigned long baud,volatile unsigned char& udrPort) void

RxD und TxD werden aktiviert und die Baudrate gesetzt.

Parameter:

udrPort Basis-Adresse der USART = Datenregister (z.B. UDR0)

getChar() short

Empfang eines Bytes mit Warten bis Daten da sind.

Rückgabe:

short empfangenes Datenbyte

hasChar() bool

Ermittelt, ob empfangene Daten vorhanden sind.

Rückgabe:

bool false, wenn keine Empfangsdaten vorliegen

put(uint16_t& data) void

Sendet einen 16-Bit-Wert. Falls notwendig wird gewartet.

Parameter:

data zu sendender Wert

put(uint32_t& data) void

Sendet einen 32-Bit-Wert. Falls notwendig wird gewartet.

Parameter:

data zu sendender Wert

putAscii(uint32_t num, uint8_t basis=10) void

Sendet eine Zahl als Ascii-Zeichenkette. Es wird kein prefix vorangestellt. Falls notwendig wird gewartet.

Parameter:

num | zu sendende Zahl
basis | Zahlenbasis zu Umwandlung

putChar(uint8_t data) void

Sendet ein Byte. Falls notwendig wird gewartet.

Parameter:

data zu sendendes Byte

putMem(uint8_t* buffer, uint8_t size) void

Sendet Bytes aus einem Puffer. Falls notwendig wird gewartet.

Parameter:

buffer | Zeiger auf die zu sendenden Daten im RAM
size | Anzahl der zu sendenden Bytes

putString(const char* buffer) void

Sendet eine Zeichenkette bis zur abschließenden Null. Die Null wird nicht mit gesendet. Falls notwendig wird gewartet.

Parameter:

buffer Zeiger auf die Zeichenkette im RAM

putStringFlash(const char* PROGMEM ptext) void

Sendet eine Zeichenkette bis zur abschließenden Null. Die Null wird nicht mit gesendet. Falls notwendig wird gewartet.

Beispiel: Verwendung

uart.putStringFlash(PSTR("Hallo"));

Parameter:

buffer Zeiger auf die Zeichenkette im RAM