Hallo, Ich habe winavr installiert, und möchte von avr-lib einige Funktionen verwenden. avr-lib habe ich als zip rutnergeladen, und in c:\avrlib entpackt. Mit Programmers Notpads von WINAVR habe ich ein Projekt erstellt. Im main.h habe ich folgende anweisung: #include <i2C.h> Im Tools\[WinAVR] Make All bekomme folgende Fehlermeldung: main.h:45:17: i2C.h: No such file or directory Wo und wie kann ich avrlib einbinden. soll in Make oder in Umgebungsvariable irgend eine Eintrag gemacht werden?, wo genau ??? Dnake
Welche avr-lib, avrlib genau? Wenn es die avr-libc ist (http://www.nongnu.org/avr-libc/), dann ist die bereits im WinAVR integriert. Eine zusätzliche "Installation" waäre nur nötig, wenn man die Quelltexte der Libraryfunktionen betrachten oder ändern will. Die Includefiles werden im Verzeichnis avr\include des WinAVR-Installationsverzeichnisses gefunden, WENN der systemweite Pfad (PATH) auf das WinAVR-Installationsverzeichnis\bin zeigt. Diese Einstellung des PATH kann normalerweise bei der Installation des WINAVR automatisch gemacht werden. Näheres im Abschnitt Layout des Usermanuals http://winavr.sourceforge.net/WinAVR-user-manual.html Dort steht auch: IMPORTANT: On Windows NT/2K/XP you must have Administrator priviledges for the installer to automatically put these directories in your PATH environment variable. Möglichrweise hat das bei deiner Installation den automatischen Eintrag in PATH verhindert.
> Im main.h habe ich folgende anweisung: > > #include <i2C.h> > > Im Tools\[WinAVR] Make All bekomme folgende Fehlermeldung: > main.h:45:17: i2C.h: No such file or directory main.h gehört zu keiner Library sondern zu einem Anwendungsprogramm. Vielleicht hat der Programmierer dieses Anwendungsprogramms auch ein i2c.h (Wirklich i2C.h also gemischte Gross-/Kleinschreibung?) erstellt oder von sonstwo verwendet und der (irrigen, falschen) Einfachheit halber in den großen Includeodner geschmissen und später vergessen diese Datei mitzuliefern. Normalerweise hält man Includedateien, die nicht zur Toolchain gehören in anderen Ordnern, also beispielsweise beim Projekt selber und macht das #include mit einem Suchpfad ab Projekt: #include "i2c.h" Vielleicht hefen dir auch die Bitmasken aus dem avr/twi.h Includefile der Avr-libc weiter: http://www.nongnu.org/avr-libc/user-manual/group__util__twi.html
mittwoch schrieb: > avr-lib habe ich als zip rutnergeladen, und in c:\avrlib entpackt Wenn es (z.B.) um diese hier geht: http://www.mil.ufl.edu/~chrisarnold/components/microcontrollerBoard/AVR/avrlib/ dann musst du, wie bei allen libs, dem Compiler auch noch die dazugehörigen Pfade zu den Includeverzeichnissen mitteilen. Wie da geht, steht alles in der Doku zu dieser lib, oder in der Hilfe zum Compilerflag -I. Oliver
Vielen dank für die schnelle Antworten. Ich habe AVR-LIB von hier gezogen: http://www.nongnu.org/avr-libc/ und avrlib.zip in c:\avrlib entpackt ABER, WIE und WO kann ich dem Compiler mitteilen, daß es avrlib gibt. In der Umgebungsvariblen\Systemvariable PATH steht: C:\WinAVR\bin;C:\WinAVR\utils\bin; MUß im Programmer Notpad irgend ein Path definiert werden? Und was ist mit Make, soll dort irgend was hinzugefügt werden? danke
> Ich habe AVR-LIB von hier gezogen: > http://www.nongnu.org/avr-libc/ Die hast Du bereits mitinstalliert, als Du WinAVR installiert hast. Mach' Dir nicht die Mühe, die ein zweites Mal zu installieren - die ist bereits so eingebunden, dass Dein Compiler sie findet.
Der WinAVR weiss schon, dass es die AVR-LIBC gibt. WinAVR sucht die Includefiles der Library auch, allerdings nicht in deinem Verzeichnis sondern in dem Verzeichnis C:\WinAVR\avr\include. Der Suchpfad <WinAVR-Installationsverzeichnis>\avr\include ist in WinAVR einkompiliert. Wenn du dies ohne Fehlermeldungen übersetzen kannst, stimmt die Installation:
1 | #include <avr/io.h> |
2 | |
3 | int main(void) |
4 | {
|
5 | while(1); |
6 | return 0; |
7 | }
|
Wenn du eine andere Version der AVR-LIBC installieren möchtest, dann hast du zwei Wege: 1/ die vorhandene Version überschreiben (nicht empfehlenswert) 2/ anderes Verzeichnis anlegen, Libarydateien erzeugen und Include- und Librarypfade mit Compileroptionen in der Projektdatei oder Makefile anpassen. Das Includefile i2C.h gehört nicht zur offziellen AVR-LIBC. Es kommt von irgendwo anders her. Genaueres müsste derjenige wissen, der die main.h geschrieben hat.
fragen schrieb: > Ich habe AVR-LIB von hier gezogen: > http://www.nongnu.org/avr-libc/ > > und avrlib.zip in c:\avrlib entpackt Nett, aber sinnlos. Wie schon geschrieben wurde, ist die avr-libc (jawoll, das Dings nennt sich avr-libc) Teil des WinAVR-Pakets, und wenn du dieses richtig installiert hast (was anscheinend der Fall ist), findet der Compiler auch alles, was er daraus benötigt. mittwoch schrieb: > Im main.h habe ich folgende anweisung: > > #include <i2C.h> Auch das ist nett, dein Problem hat aber mit der avr-libc nichts zu tun. In der gibt es kein i2C.h. (und auch kein I2C.h, auch kein i2c.h, nur so als Hinweis, das das durchaus verschiedene Files wären, wenn es sie den gäbe). Mit der avr-libc kommt "<util/twi.h>: TWI bit mask definitions", aber ob das das ist, was du benötigst, musst du (oder derjenige, der das Programm geschrieben hat) schon selber herausfinden. Also bleibt die Frage zu: mittwoch schrieb: > Im main.h habe ich folgende anweisung: > > #include <i2C.h> Warum hast du da diese Anweisung? Es gibt tatsächlich auch (mindestens) eine avrlib, zu finden hier: http://hubbard.engr.scu.edu/embedded/avr/avrlib/ Da drin gibt es auch eine i2c.h (aber keine i2C.h). Vielleicht brauchst du ja diese. Installtaion geht einfach mit dem Installer. Oliver
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.