mikrocontroller.net

Forum: Compiler & IDEs Fehlerbehandlung / Exception-Handling, AVR-GCC, ATmega32


Autor: Guido (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Für die Ansteuerung eines GLCD möchte ich eine Funktion schreiben, die 
variable Argumente hat.
Bis dahin bin ich gekommen:
void message_center(char* string, uint8_t ver, ...)
{
  uint16_t fcolor, bcolor;

    va_list vlist;
    va_start (vlist, ver);

try 
{
  fcolor = va_arg (vlist, uint16_t); // wenn fcolor benutzt wurde und uint16_t ist, dann ist alles OK
}
catch( )
{    // ist fcolor fehlerhaft oder wurde nicht angegeben, dann Standardwert setzen
}   
    // Fehlerbehandlung von bcolor 
    bcolor = va_arg (vlist, uint16_t);

    va_end (vlist);

  // weiterer Code
  // Verarbeitung von fcolor und bcolor
}

Die Funktion soll folgendermaßen aufgerufen werden:
message_center(char* string, uint8_t ver, [uint16_t fcolor, [uint16_t bcolor]])

Mein Problem ist try und catch. Ich habe nur wenig Literatur gefunden. 
Welche Bibliothek muss ich einbinden, um try benutzen zu können?
Gibt es vielleicht eine einfachere Möglichkeit, um optionale Argumente 
zu verwenden?

Gruß
Guido

Autor: Mark Brandis (markbrandis)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guido schrieb:

> Welche Bibliothek muss ich einbinden, um try benutzen zu können?

z.B. C++ oder Java ;-)

Es gibt sowas wohl auch für C, aber ich bin a bissl skeptisch ob man das 
auch auf Mikrocontrollern einsetzt, wegen des begrenzten Speichers. 
Obwohl, wenn ich mir das so auf die Schnelle ansehe scheint es recht 
klein zu sein, also vielleicht einfach mal ausprobieren.

Link:
http://www.nicemice.net/cexcept/

(unter "Similar projects" findet man weitere Links)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.