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
1 2 3 4 | typedef enum { false = 0, true }bool; |
oder alternativ diese Include Zeile einfügen :
1 | #include |
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.
1 | // LinkerOption: -Wl,-u,vfprintf -lprintf_flt -lm |
Im AVR-Studio müssen diese zwei Librarys hinzugefügt werden :
1 2 | "libprintf_flt.a" "libm.a" |
Und zusätzlich muss unter “Custom Options” diese Zeile bei den Linker-Options hinzugefügt werden :
1 | -Wl,-u,vfprintf |
“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…
ups,…
#include “Pfeillinks”stdbool.h”Pfeilrechts
stimmt wahrscheinlich…hab ich noch gar nicht ausprobiert
werde es als Hinweis auflisten, Danke