Hinweise myAVR-Workpad und AVR-Studio

Ich habe zu Anfang alle Librarys für das myAVR-Wordpad ausgelegt. Weil bei diesem keine C-Files eingebunden werden können, habe ich alle Files als H-Files erstellt. Das ist zwar nicht sehr elegant aber es ging halt nicht anders.

Nach einiger Zeit bin ich dann auf das kostenlose AVR-Studio-4 gewechselt (was einen sehr viel besseren Editor besitzt) habe aber wegen der Kompatibilität weiterhin alle Librarys als H-Files erstellt.

AVR-Studio :

Bei der Benutzung der Librarys mit dem AVR-Studio muss folgendes beachtet werden :

1. der Variablen-Typ “bool” der in einigen Librarys benutzt wird ist beim AVR-Studio nicht definiert. Um diesen Fehler zu beseitigen einfach diese Enumeration ganz zu Anfang im Programm (noch vor allen Includes) einfügen

typedef enum {
  false = 0,
  true
}bool;

oder alternativ diese Include Zeile einfügen :


#include <stdbool.h>

2. in den Compiler-Options muss die Optimierung abgeschaltet werden. Sonst werden leere Warteschleifen wegoptimiert und einige Librarys funktionieren dann nicht mehr. Dazu unter “Project/Options/General” die “Optimization” auf “-O0″ einstellen.

Float-Ausgabe :

Falls in einem Programm eine Float Variable in einen String gewandelt werden soll, um diesen z.B. auf dem Display anzuzeigen oder per RS232 zu senden, dann muss folgendes beachtet werden :

Im myAVR-Wordpad muss diese Zeile in den Header vom Hauptprogramm eingetragen werden.

// LinkerOption:    -Wl,-u,vfprintf -lprintf_flt -lm

Im AVR-Studio müssen diese zwei Librarys hinzugefügt werden :

"libprintf_flt.a"
"libm.a"

Und zusätzlich muss unter “Custom Options” diese Zeile bei den Linker-Options hinzugefügt werden :

-Wl,-u,vfprintf

3 Antworten auf Hinweise myAVR-Workpad und AVR-Studio

  1. Holger sagt:

    “1. der Variablen-Typ “bool” der in einigen Librarys benutzt wird ist beim AVR-Studio nicht definiert.”

    Doch!
    AVR-Studio (4.18) mit WINAVR-Toolchain:

    #include
    und schon gibt’s true und false.

    Gruß Holger…

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *


+ zwei = drei

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>