Hi!
Ich probier grad herum und viele Sachen in der AVR Programmierung sind
nach wie vor ein Rätzel für mich.
Zum Beispiel, wie ich externe Libraries, zB die Procyon AVRlib in das
AVR Studio 5 einbinden kann.
Kann mir jemand helfen?
Danke!
Procyon AVRlibhttps://ccrma.stanford.edu/courses/250a/docs/avrlib/html/index.html
Was genau sind die Probleme: Wie man den Include-Pfad in AVR Studio 5
setzt oder wie man die Dateien auf der Platte ablegt oder wie man die
Dateien in sein Projekt aufnimmt oder wie man eine Binärlibrary macht?
Wie gesagt, bin Anfänger.
Ich hab in Windows 7 die PATH variablen eingetragen. Nichts.
Ich hab versucht, den avrlibb ordner in den AVRStudio toolchain ordner
zu kopieren, geht auch nicht, weil der eben reinkopierte Ordner nicht
sichtbar ist, kein Ahnung warum.
Ich schaffs auch nicht das Makefile (avrproj_make ?) einzubinden mit
ebenfalls den PATH Variablen und DOS Konsole
Im Moment schau ich mich grad nach einem anderen Kompiler um, wo
Libraries schon drin sind.
Ich hab mich jetzt fast 1 Woche mit dem Zeug beschäftigt, aber die
meiste Zeit mit herumconfigurieren gebraucht. Das geht schon auf die
Substanz gelinde gesagt.
Du solltest in Teilschritten vorgehen.
1) Installation des AVR Studio 5 incl. der AVR Toolchain.
Diese Installation sollte von Atmel perfekt beschrieben sein.
Bei Fragen können dir "Tausende" AVR User weltweit helfen.
Damit kannst du bereits AVR C Projekte übersetzen und entwickeln.
2) Installation von "Drittlibraries" (Fleury, Procyon)
Es ist zwecklos, das zu versuchen, wenn 1) nicht erfolgreich ist.
Nur ein kleiner Anteil von Usern setzt diese Libraries genau in der
gesuchten Verbindung mit AVR Studio 5 ein. Wenn man Probleme mit 1) hat
und nur die User von 2) anspricht, ist der Helferkreis klein. Helfer aus
1) sind wegen 2) angeschreckt und Helfer von 2) ahnen nicht, dass du
Probleme mit 1) hast.
Drittlibraries braucht man zur ersten Kontaktaufnahme mit der AVR
Entwicklungsumgebung nicht. Alle Beispiele aus dem µC.net Tutorial
kommen ohne aus. Beim Durcharbeiten von Beispielen aus dem Tutorial
kommen auch einfache Hilfsfunktionen zum Einsatz (Bsp. LCD). Damit kann
man lernen, wie man ein Projekt aus mehreren Sourcefiles aufsetzt.
Danke für die Antwort.
AVR Studio 5 an sich läuft und ich hab auch schon Projekte damit gemacht
(AD Wandlung, PWM, Rotary encoder, LCD Display, 7segment Anzeige)
..zu meist Beispielcode von anderen..
aber MMC/SD Karten ansprechen und andere komplexere Themen hab ich
einfach nicht geschafft.
und was macht man in so einem Fall? Ja genau, man schaut, ob es
irgendwelche Libraries gibt.
Die Library hier im Forum für SD Karten geht nicht, weil ich eine
gewisse default.h nicht finde, ist aber die ganze Zeit in Erwähnung im
Bericht, dürfte ev. ein Linux Ding sein, aber ich hab auf diese Frage
(gestell vor 2 Tagen denk ich ) genau 0 Antworten bekommen. Also was
bringt eine Library, wenn auch nur eine Datei fehlt?
Bei anderen Libraries die ich gesucht hab, war es ähnlich, irgendwas
fehlt immer oder ist für was anderes geschrieben.
Wie soll man was lernen, wenn das alles einfach nicht geht, oder so
komplex ist, dass man das mit einem 100 kilo Hirn nicht verstehen würde
(Ich hab keinen Lehrer oder so, sitze alleine da).
Zur Zeit schau ich mir den microC Compiler mal genauer an, ist mir
empfohlen worden.
..und da sind viele Libraries schon fertig drin.
..das soll den Zweck haben, dass ich was funktionierendes studieren kann
um daraus zu lernen und mich nicht in teilweise 10 Jahre alten code
reinlesen muss, wo viele Dinge schon längst nicht mehr gelten (sbi, cbi
zB).
> Ich hab versucht, den avrlibb ordner in den AVRStudio toolchain ordner> zu kopieren, geht auch nicht, weil der eben reinkopierte Ordner nicht> sichtbar ist, kein Ahnung warum.
Im Explorer von Windows7 verschwinden Ordner? Das hat aber eher nix mit
dem AVR Studio 5 zu tun, würde ich meinen.
> Die Library hier im Forum für SD Karten geht nicht, weil ich eine> gewisse default.h nicht finde
Welche?
http://www.mikrocontroller.net/forum/codesammlung?filter=sdhttp://www.mikrocontroller.net/articles/MMC-_und_SD-Karten#Bibliotheken_zur_Ansteuerung> Zur Zeit schau ich mir den microC Compiler mal genauer an, ist mir> empfohlen worden.> ..und da sind viele Libraries schon fertig drin.> ..das soll den Zweck haben, dass ich was funktionierendes studieren kann> um daraus zu lernen und mich nicht in teilweise 10 Jahre alten code> reinlesen muss, wo viele Dinge schon längst nicht mehr gelten (sbi, cbi> zB).
Das ist eine komplett andere Philosophie als meine. Ich versuche
zunächst das Konzept zu verstehen, so dass ich dann auch den alten Code
anpassen kann.
Krapao schrieb:>> Ich hab versucht, den avrlibb ordner in den AVRStudio toolchain ordner>> zu kopieren, geht auch nicht, weil der eben reinkopierte Ordner nicht>> sichtbar ist, kein Ahnung warum.>> Im Explorer von Windows7 verschwinden Ordner? Das hat aber eher nix mit> dem AVR Studio 5 zu tun, würde ich meinen.
Oh je, da haben wir wieder die fehlenden Windows 7 Basics! In "Program
Files (x86)" bzw. "Program Files" hat so etwas nichts zu suchen, sondern
nur im Projekt-Ordner. Das impliziert natürlich, daß man nicht nur die
Lib, sondern auch den Pfad dahin mit angibt. Der Linker hat schließlich
keine hellseherischen Fähigkeiten.
Wenn man schon Dateien in die oben genannten Ordner hineinkopieren muß,
dann geht das nur als Administrator. Mit normalen User-Rechten landen
die Dateien nur in einem Schattenverzeichnis!
Hallo,
ich würde mir mal ein einfaches Demo-Projekt aus dem Studio 5 erzeugen.
Da sieht man schön die Struktur der Unterverzeichnis oder der dafür
nötigen Libraries.
Ich verwende einige Lib-Teile aus der Procyon AVRlib, zum Beispiel
rprintf(..), Buffer(..), usw. Du legst dir z.B. einen Ordner "scr" an
dahinein kopierst du die *.c und *.h. Mit der rechten Maustaste kannst
du dann die einzelnen Dateien im Solution Explorer -> Projekt mit "add"
dazu fügen.
Fertig...
Gruß xmega
@Carsten Wille:
Kurze Frage:
Was sind das für Eintragungen, die am Bild umrandet zu sehen sind, in
der Procyon AVRlib kann ich solche oder ähnliche Dateien nicht finden.
Wie kommt man auf solche Einträge? .."libprintf_flt.a" und "libm.a"
Was bedeuten sie?
Diese Libs muß man mit einbinden, wenn man Fließkommazahlen mit printf()
ausgeben will, bzw. wenn man mit Fließkommazahlen rechnen will.
Siehe auch Artikel FAQ, Abschnitt "Aktivieren der Floating Point
Version von sprintf beim WinAVR mit AVR-Studio"
Also so wie ich das verstehe sind Libraries eigens gemachte Dateien, die
im Fall von Procyon AVRlib aber nicht zur Verfügung stehen.
Ich würde aber gerne die Procyon AVRlib einbinden.
Frage: Wo kann ich die Ordner eintragen, damit der Compiler beim Linken
diese Dateien findet?
Danke!
...also mit anderen Worten:
Der Compiler soll SELBSTSTÄNDIG benötigte querverbundene header- Files
und c- Files einbinden.
zB.:
projekt besteht aus main.c
in der main.c steht #include "lcd.h"
in der "lcd.h" steht #include "globals.h"
in der "globals.h" steht "avrlibdefs.h"
Muss ich jetzt wirklich alle inkludes VON HAND durchschauen und mühsam
zusammenschustern oder geht das auch automatisch.
...und wenn ja, wie..
Das wäre die Frage
Ich hab jetzt mal Probehalber ALLE Dateien (ca 60) von procyon AVRLib
reingezogen und probiert die Demoprojekt "LCDtest" zum Laufen zu
kriegen.
Jetzt fehlt zwar keine Datei mehr, dafür schreibt er aber eine gewaltige
Fehlerliste:
Warning 3 pointer targets in passing argument 1 of 'strlen' differ in
signedness c:\users\it-lab08\documents\avrstudio\test1\test1\cmdline.c
306 3 test1
Error 4 expected 'const char *' but argument is of type 'u08 *'
c:\program files (x86)\atmel\avr studio 5.0\avr
toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/string.h 133
15 test1
Warning 5 pointer targets in passing argument 1 of 'strcpy' differ in
signedness c:\users\it-lab08\documents\avrstudio\test1\test1\cmdline.c
307 4 test1
Error 6 expected 'char *' but argument is of type 'u08 *' c:\program
files (x86)\atmel\avr studio 5.0\avr
toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/string.h 126
14 test1
Warning 7 pointer targets in passing argument 2 of 'strcpy' differ in
signedness c:\users\it-lab08\documents\avrstudio\test1\test1\cmdline.c
307 4 test1
Error 8 expected 'const char *' but argument is of type 'u08 *'
c:\program files (x86)\atmel\avr studio 5.0\avr
toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/string.h 126
14 test1
Warning 9 pointer targets in passing argument 1 of 'strcpy' differ in
signedness c:\users\it-lab08\documents\avrstudio\test1\test1\cmdline.c
311 3 test1
Error 10 expected 'char *' but argument is of type 'u08 *' c:\program
files (x86)\atmel\avr studio 5.0\avr
toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/string.h 126
14 test1
Warning 11 pointer targets in passing argument 2 of 'strcpy' differ in
signedness c:\users\it-lab08\documents\avrstudio\test1\test1\cmdline.c
311 3 test1
Error 12 expected 'const char *' but argument is of type 'u08 *'
c:\program files (x86)\atmel\avr studio 5.0\avr
toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/string.h 126
14 test1
Warning 13 pointer targets in passing argument 1 of 'strlen' differ in
signedness c:\users\it-lab08\documents\avrstudio\test1\test1\cmdline.c
313 3 test1
Error 14 expected 'const char *' but argument is of type 'u08 *'
c:\program files (x86)\atmel\avr studio 5.0\avr
toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/string.h 133
15 test1
Warning 15 pointer targets in passing argument 2 of 'strncmp' differ
in signedness
c:\users\it-lab08\documents\avrstudio\test1\test1\cmdline.c 347 3
test1
Error 16 expected 'const char *' but argument is of type 'u08 *'
c:\program files (x86)\atmel\avr studio 5.0\avr
toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/string.h 136
12 test1
Warning 17 pointer targets in passing argument 1 of 'strtol' differ in
signedness c:\users\it-lab08\documents\avrstudio\test1\test1\cmdline.c
439 2 test1
Error 18 expected 'const char *' but argument is of type 'u08 *'
c:\program files (x86)\atmel\avr studio 5.0\avr
toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/stdlib.h 208
13 test1
Warning 19 pointer targets in passing argument 1 of 'strtol' differ in
signedness c:\users\it-lab08\documents\avrstudio\test1\test1\cmdline.c
446 2 test1
Error 20 expected 'const char *' but argument is of type 'u08 *'
c:\program files (x86)\atmel\avr studio 5.0\avr
toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/stdlib.h 208
13 test1
Error 21 'FAT_SECTOR_BUFFER_ADDR' undeclared here (not in a function)
c:\users\it-lab08\documents\avrstudio\test1\test1\fat.c 39 51 test1
Error 22 'FAT_FILENAME_BUFFER_ADDR' undeclared here (not in a
function) c:\users\it-lab08\documents\avrstudio\test1\test1\fat.c 40
52 test1
Error 23 'FAT_PATHNAME_BUFFER_ADDR' undeclared here (not in a
function) c:\users\it-lab08\documents\avrstudio\test1\test1\fat.c 41
52 test1
Warning 24 pointer targets in assignment differ in signedness
c:\users\it-lab08\documents\avrstudio\test1\test1\fat.c 235 12 test1
Warning 25 pointer targets in assignment differ in signedness
c:\users\it-lab08\documents\avrstudio\test1\test1\fat.c 265 13 test1
Warning 26 pointer targets in passing argument 1 of 'strcat' differ in
signedness c:\users\it-lab08\documents\avrstudio\test1\test1\fat.c 329
4 test1
Error 27 expected 'char *' but argument is of type 'unsigned char *'
c:\program files (x86)\atmel\avr studio 5.0\avr
toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/string.h 122
14 test1
Warning 28 pointer targets in passing argument 2 of 'strcat' differ in
signedness c:\users\it-lab08\documents\avrstudio\test1\test1\fat.c 329
4 test1
Error 29 expected 'const char *' but argument is of type 'unsigned
char *' c:\program files (x86)\atmel\avr studio 5.0\avr
toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/string.h 122
14 test1
Warning 30 pointer targets in passing argument 1 of 'strcat' differ in
signedness c:\users\it-lab08\documents\avrstudio\test1\test1\fat.c 330
4 test1
Error 31 expected 'char *' but argument is of type 'unsigned char *'
c:\program files (x86)\atmel\avr studio 5.0\avr
toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/string.h 122
14 test1
Warning 32 pointer targets in passing argument 1 of 'rprintfStr'
differ in signedness
c:\users\it-lab08\documents\avrstudio\test1\test1\fat.c 380 2 test1
Error 33 expected 'char *' but argument is of type 'unsigned char *'
c:\users\it-lab08\documents\avrstudio\test1\test1\rprintf.h 75 6
test1
Warning 34 pointer targets in return differ in signedness
c:\users\it-lab08\documents\avrstudio\test1\test1\fat.c 407 2 test1
Warning 35 pointer targets in return differ in signedness
c:\users\it-lab08\documents\avrstudio\test1\test1\fat.c 413 2 test1
Was kann ich machen, dass das funktioniert?
captnhanky schrieb:> Was kann ich machen, dass das funktioniert?
Hirn einschalten, Meldung lesen und verstehen. Kurz nachdenken und dann
handeln! Mann! Steht doch alles da, was schief gegangen ist! Sorry, aber
da reicht doch schon die erste Meldung, um zu verstehen, was in die Hose
gegangen ist.
Mal ganz von vorne: Was sagen denn alle diese (Fehler-)meldungen aus?
Richtig, es geht immer um unsigned bzw. signed Variablen, die nicht
zueinander passen! Also: Die Bibliotek geht davon aus, daß der Typ char
vorzeichenbehaftet ist, nicht vorzeichenlos. Damit diese Meldungen
verschwinden, muß man in den Projekteigenschaften unter Toolchain bei
den Einstellungen für den AVR/GNU C Compiler unter General den Haken bei
"Default char type is unsigned" entfernen.
AYE SIR, das ding wurde abgeschaltet.
Fehlermeldungen nun:
Warning 1 pointer targets in passing argument 2 of 'bufferInit' differ
in signedness C:\Users\it-lab08\documents\avrstudio\test1\test1\uart.c
70 3 test1
Error 2 expected 'unsigned char *' but argument is of type 'char *'
C:\Users\it-lab08\documents\avrstudio\test1\test1\buffer.h 52 8 test1
Warning 3 pointer targets in passing argument 2 of 'bufferInit' differ
in signedness C:\Users\it-lab08\documents\avrstudio\test1\test1\uart.c
72 3 test1
Error 4 expected 'unsigned char *' but argument is of type 'char *'
C:\Users\it-lab08\documents\avrstudio\test1\test1\buffer.h 52 8 test1
Error 5 'UCSR0B' undeclared (first use in this function)
C:\Users\it-lab08\documents\avrstudio\test1\test1\uart2.c 61 2 test1
Error 6 each undeclared identifier is reported only once for each
function it appears in
C:\Users\it-lab08\documents\avrstudio\test1\test1\uart2.c 61 2 test1
Error 7 'UCSR1B' undeclared (first use in this function)
C:\Users\it-lab08\documents\avrstudio\test1\test1\uart2.c 80 2 test1
Warning 8 pointer targets in passing argument 2 of 'bufferInit' differ
in signedness C:\Users\it-lab08\documents\avrstudio\test1\test1\uart2.c
96 3 test1
Error 9 expected 'unsigned char *' but argument is of type 'char *'
C:\Users\it-lab08\documents\avrstudio\test1\test1\buffer.h 52 8 test1
Warning 10 pointer targets in passing argument 2 of 'bufferInit'
differ in signedness
C:\Users\it-lab08\documents\avrstudio\test1\test1\uart2.c 97 3 test1
Error 11 expected 'unsigned char *' but argument is of type 'char *'
C:\Users\it-lab08\documents\avrstudio\test1\test1\buffer.h 52 8 test1
Warning 12 pointer targets in passing argument 2 of 'bufferInit'
differ in signedness
C:\Users\it-lab08\documents\avrstudio\test1\test1\uart2.c 109 3 test1
Error 13 expected 'unsigned char *' but argument is of type 'char *'
C:\Users\it-lab08\documents\avrstudio\test1\test1\buffer.h 52 8 test1
Warning 14 pointer targets in passing argument 2 of 'bufferInit'
differ in signedness
C:\Users\it-lab08\documents\avrstudio\test1\test1\uart2.c 110 3 test1
Error 15 expected 'unsigned char *' but argument is of type 'char *'
C:\Users\it-lab08\documents\avrstudio\test1\test1\buffer.h 52 8 test1
Error 16 'UBRR1' undeclared (first use in this function)
C:\Users\it-lab08\documents\avrstudio\test1\test1\uart2.c 134 3 test1
Error 17 'UBRR0' undeclared (first use in this function)
C:\Users\it-lab08\documents\avrstudio\test1\test1\uart2.c 141 3 test1
Error 18 'UCSR1A' undeclared (first use in this function)
C:\Users\it-lab08\documents\avrstudio\test1\test1\uart2.c 167 11
test1
Error 19 'UDR1' undeclared (first use in this function)
C:\Users\it-lab08\documents\avrstudio\test1\test1\uart2.c 168 3 test1
Error 20 'UCSR0A' undeclared (first use in this function)
C:\Users\it-lab08\documents\avrstudio\test1\test1\uart2.c 172 11
test1
Error 21 'UDR0' undeclared (first use in this function)
C:\Users\it-lab08\documents\avrstudio\test1\test1\uart2.c 173 3 test1
Error 22 'UDR1' undeclared (first use in this function)
C:\Users\it-lab08\documents\avrstudio\test1\test1\uart2.c 307 5 test1
Error 23 'UDR0' undeclared (first use in this function)
C:\Users\it-lab08\documents\avrstudio\test1\test1\uart2.c 309 5 test1
Error 24 'UDR1' undeclared (first use in this function)
C:\Users\it-lab08\documents\avrstudio\test1\test1\uart2.c 333 7 test1
Error 25 'UDR0' undeclared (first use in this function)
C:\Users\it-lab08\documents\avrstudio\test1\test1\uart2.c 335 7 test1
NEUIGKEIT:
Hab jetzt noch mal nachgeschaut und bei "all configurations" das
Häckchen rausgenommen:
Siehe da:
Error 1 'UCSR0B' undeclared (first use in this function)
C:\Users\it-lab08\documents\avrstudio\test1\test1\uart2.c 61 2 test1
Error 2 each undeclared identifier is reported only once for each
function it appears in
C:\Users\it-lab08\documents\avrstudio\test1\test1\uart2.c 61 2 test1
Error 3 'UCSR1B' undeclared (first use in this function)
C:\Users\it-lab08\documents\avrstudio\test1\test1\uart2.c 80 2 test1
Warning 4 pointer targets in passing argument 2 of 'bufferInit' differ
in signedness C:\Users\it-lab08\documents\avrstudio\test1\test1\uart2.c
96 3 test1
Error 5 expected 'unsigned char *' but argument is of type 'char *'
C:\Users\it-lab08\documents\avrstudio\test1\test1\buffer.h 52 8 test1
Warning 6 pointer targets in passing argument 2 of 'bufferInit' differ
in signedness C:\Users\it-lab08\documents\avrstudio\test1\test1\uart2.c
97 3 test1
Error 7 expected 'unsigned char *' but argument is of type 'char *'
C:\Users\it-lab08\documents\avrstudio\test1\test1\buffer.h 52 8 test1
Warning 8 pointer targets in passing argument 2 of 'bufferInit' differ
in signedness C:\Users\it-lab08\documents\avrstudio\test1\test1\uart2.c
109 3 test1
Error 9 expected 'unsigned char *' but argument is of type 'char *'
C:\Users\it-lab08\documents\avrstudio\test1\test1\buffer.h 52 8 test1
Warning 10 pointer targets in passing argument 2 of 'bufferInit'
differ in signedness
C:\Users\it-lab08\documents\avrstudio\test1\test1\uart2.c 110 3 test1
Error 11 expected 'unsigned char *' but argument is of type 'char *'
C:\Users\it-lab08\documents\avrstudio\test1\test1\buffer.h 52 8 test1
Error 12 'UBRR1' undeclared (first use in this function)
C:\Users\it-lab08\documents\avrstudio\test1\test1\uart2.c 134 3 test1
Error 13 'UBRR0' undeclared (first use in this function)
C:\Users\it-lab08\documents\avrstudio\test1\test1\uart2.c 141 3 test1
Error 14 'UCSR1A' undeclared (first use in this function)
C:\Users\it-lab08\documents\avrstudio\test1\test1\uart2.c 167 11
test1
Error 15 'UDR1' undeclared (first use in this function)
C:\Users\it-lab08\documents\avrstudio\test1\test1\uart2.c 168 3 test1
Error 16 'UCSR0A' undeclared (first use in this function)
C:\Users\it-lab08\documents\avrstudio\test1\test1\uart2.c 172 11
test1
Error 17 'UDR0' undeclared (first use in this function)
C:\Users\it-lab08\documents\avrstudio\test1\test1\uart2.c 173 3 test1
Error 18 'UDR1' undeclared (first use in this function)
C:\Users\it-lab08\documents\avrstudio\test1\test1\uart2.c 307 5 test1
Error 19 'UDR0' undeclared (first use in this function)
C:\Users\it-lab08\documents\avrstudio\test1\test1\uart2.c 309 5 test1
Error 20 'UDR1' undeclared (first use in this function)
C:\Users\it-lab08\documents\avrstudio\test1\test1\uart2.c 333 7 test1
Error 21 'UDR0' undeclared (first use in this function)
C:\Users\it-lab08\documents\avrstudio\test1\test1\uart2.c 335 7 test1
Dein Projekt ist anscheinend auf einen AVR mit nur einer UART
eingestellt, während die Library in uart2.c für einen AVR mit zwei UARTs
übersetzen will.
Es ist unvermeidlich: Du musst in der Library-Doku nachsehen, wie man
der Library bekannt macht, für welchen AVR man die Library übersetzen
will.
Ok, hab mal den Prozessor gewechselt auf ATmega1634 von ATmega128:
Error 1 'TCCR0' undeclared (first use in this function)
C:\Users\it-lab08\documents\avrstudio\test1\test1\timer.c 127 2 test1
Error 2 each undeclared identifier is reported only once for each
function it appears in
C:\Users\it-lab08\documents\avrstudio\test1\test1\timer.c 127 2 test1
Error 3 'TCCR0' undeclared (first use in this function)
C:\Users\it-lab08\documents\avrstudio\test1\test1\timer.c 147 10
test1
Wahrscheinlich sind die restlichen Fehler nur Proz- Spez.
Gehören tut ein ATmega163 rein lt. makefile, aber den gibts nicht im AVR
Studio 5.
Auf alle Fälle Danke für den Tip.
Wie kann ich einen Pfad auf die AVRLib setzen?
ev. mit einer Path- Variablen? oder so irgendwie?
Bei Binärlibraries wie man sie aus dem PC Bereich kennt, kann man das
so machen. Bei µCs gibt es auch Sourcelibraries wie z.B. die Procyon
AVRlib.
Ich habe bei AVR Studio 5 im Einsatz und kann nicht beschreiben, wie man
Includepaths in der Konfiguration (Settings, Configuration) setzt. Ich
erwarte, dass das in der Hilfe oder Doku des AVR Studio 5 beschrieben
ist.
Dass man an der Windows PATH Variablen drehen müssen sollen muss, halte
ich aber für extrem unwahrscheinlich.
Hallo, bin ein Neuling hier, verzeit deshalb etwaige Fehler.
ich experimentiere seit etwa einem halben Jahr, und bin nun auf die
QTouch Library gestoßen(ich arbeite das erstemal mit Libraries). Nach
einigen kleineren Problemen bin ich nun an einem für mich großes Problem
gestoßen. Ich hab mir dazu auch scho einige Foren durchgelesen, aber auf
keinen grünen Zeig gekommen.
Ich arbeite mit Win7 Prof 64bit und AVRStudio5
wie ich bis jetzt herausgefunden habe muss man die benötige Library in
sein Projektverzeichnis kopieren und in dem Properties in AVRStudio
unter den Linker Einstellungen eintragen. Danach hab ich auf Build
Solution geklickt und den Fehler:
cannot find -lv3g1-8qt-k-2rs
die Library die ich kopiert hab ist folgende "libv3g1-8qt-k-2rs.r90"
ich hab auch unter "Library search path" meinen Projektpfad eingetragen
ohne erfolg. wenn ich allerdings das ganze als include in die main.c
schreibe kommen Fehler (ca. 37000) mit folgendem Muster:
"stray '\xx' in program"
xx ist eine Zahl
"Error 7 expected '=', ',', ';', 'asm' or '__attribute__' before
'burst_0_1_00_0_0'"
oder,
"Warning 9 null character(s) ignored"
ich weiß derzeit nichts was ich noch ausprobieren könnte und bin dankbar
über jeden Tipp.
Schon mal danke im voraus
mfg Christoph
Eine Library, für die Linker Einstellungen wie -lv3g1-8qt-k-2rs gesetzt
werden müssen, ist eine Library im Binärformat. D.h. sie ist eine
bereits kompilierte Datei.
Solche Dateien kann man nicht mit Include in seinen unkompilierten
Quelltext einbinden, bzw. die dann entstehenden Fehlermeld7ungen sind
provoziert!
Leider fehlt in deiner Frage die Angabe zum benutzten µC
Ist die Library "libv3g1-8qt-k-2rs.r90" laut Library Selection Guide die
richtige?
Aus der Angabe AVR Studio 5 schliesse ich mal, dass du die GCC Toolchain
benutzt und nicht die IAR Toolchain (Compiler).
Die Libraries für GCC haben typischerweise Namen die mit libavr....
beginnen und mit .a enden.
Die Libraries für GCC haben typischerweise Namen die mit libv....
beginnen und mit .r90 enden.
Ich vermute du hast ein IAR Projekt oder eine Anleitung dafür und willst
das mit der AVR-GCC Toolchain bearbeiten. Das geht nicht.
Danke für die schnelle Antwort!
ich bezutze den ATmega168-20PU und das AVRISPmkII Programmiergerät.
die genannte library hab ich im Selection Guide nachgeschaut allerdings
nicht beachtet das dies mit der Endung .r90 ist und für GCC Toolchain
nicht passt.
Mit Toolchain kenn ich mich leider noch nicht so aus, aber ich hab
gerade nachgesehen in den Einstellungen steht bei mir unter AVR
Toolchain gcc version 4.5.1 (AVR_8_bit_GNU_Toolchain_3.2.3_315), wenn
das weiter hilft.
Ich werdes gleich nochmal probieren mit einer .a Datei
vielen Dank für den Tipp
OK ich hab jetzt die Library libavr5g1-4qt-k-1rs.a benutzt und den Pfad
dorthin angegeben und das Example Projekt avr5g1_qt_example einfach in
meine main.c kopiert.
Nun bleiben nur noch folgende zwei Meldungen:
Error 1 undefined reference to `burst_1_2_00_0_0'
Error 2 undefined reference to `burst_1_2_00_0_0'
diese beziehen sich beide auf folgende Zeile:
/* initialise touch sensing */
qt_init_sensing();
kann es sein dass irgendeine extern function nicht gelinkt werden kann?
Oder ist das ein anderes Thema?
mfg Christoph
Ich hab wie im ersten Link beschrieben die "qt_asm_tiny_mega.S"-Datei
mittels Add zum Projekt hinzugefügt (mit der Annahme dass es dann
Compiliert und gelinkt wird). Dies brachte aber rein garnichts, die
Fehlermeldung bestand weiterhin.
Im zweiten Link stand, dass man bestimmte #define einfügen muss. Ich hab
in dem Beispielcode von mir gekuckt und sie waren nicht vorhanden.
Nachdem ich sie eingefügt hatte waren auch diese Fehlermeldungen
verschwunden. nach genauerem durchforsten der touch_api.h und
touch_qt_config.h hab ich folgendes gefunden, was damit wahrscheinlich
zusammenhängt:
[..]
leider gab es jetzt drei weitere Fehlermeldungen:
Error 1 undefined reference to `_0111010111_'
Error 2 undefined reference to `_01001010111_'
Error 3 undefined reference to `_0101110111_'
die Fehler gehen alle auf die Datei "burst_0_1_00_0_0.c" zurück, laut
Fehlermeldung auf den 'Debug'-Ordner in meinem Projekt. Allerdings hab
ich keine solche Datei in meinem Projekt und mit einem Doppelklick
darauf passiert auch nichts.
Ich fand nun aber keine weitere JOIN-Anweisung mit der ich mir eine
mögliche #define herleiten könnte. (zumindest soweit mir dies möglich
war, bin ja noch Anfänger) ;-)
Das einzige das ich finden konnte, das einen solchen Funktionsnamen
erzeugen könnte war das hier:
allerdings wird dies vom Preprocessor rausgenommen:
1
#ifdef _QMATRIX_
das steht davor.
eine suche in Google brachte mich nur auf die von Krapao eingefügten
Links, oder auf für mich nicht brauchbare.
das einfügen der im Link enthalteten main und auskommentieren der
Funktionen die bei mir nicht vorhanden sind brachte nur noch mehr
Fehler.
Ich weis im Moment nicht wo ich nach einer Lösung suchen kann,
vielleicht kann mir ja nochmal wer einen Tipp geben :-)
Danke schon mal im voraus
mfg Christoph
> Ich hab wie im ersten Link beschrieben die "qt_asm_tiny_mega.S"-Datei> mittels Add zum Projekt hinzugefügt (mit der Annahme dass es dann> Compiliert und gelinkt wird).
Wenn du das noch nicht gehabt hast, heisst das dein Qtouch Projekt war
falsch aufgesetzt.
In http://www.atmel.com/dyn/resources/prod_documents/doc8375.pdf ist ein
Demoprojekt beschrieben, bei dem man sieht welche Defines gesetzt
werden. Achtung: Das Demoprojekt ist für den Atmel AT90USB646.
Qtouch User Guidehttp://www.atmel.com/dyn/resources/prod_documents/doc8207.pdf
Dann ist es auch wahrscheinlich, dass andere Projekteinstellungen nicht
stimmen ("Building the application in IAR and GCC requires certain
options to be set."). Z.B. die notwendigen Defines für die Toolchain und
Anwendung (User Guide S. 51ff)
> touch_qt_config.h> allerdings wird dies vom Preprocessor rausgenommen:> #ifdef _QMATRIX_
Ist normal (User Guide S. 49)
> (zumindest soweit mir dies möglich war, bin ja noch Anfänger) ;-)
IMHO ist Qtouch zu komplex für Anfänger.
> IMHO ist Qtouch zu komplex für Anfänger.
QTouch an sich hab ich schon verstanden, ich hab auch schon selbst einen
Slider gebastelt und ohne Lib ausgewertet. Es ging zwar nicht schlecht
aber es hat mir noch nicht gefallen. Deswegen wollte ich es mit der
Library probieren und das machte mir Probleme, denn ich hatte davor noch
nicht mit solchen Librarys gearbeitet.
vielen Dank für den Link zum Demo Projekt, das hat mich ernorm
weitergebracht.
Und vielen DANK Krapao für deine Hilfe, jetzt funktionierts einwandfrei
:))
Ich weiß, der Beitrag ist schon etwas älter, aber vielleicht hilft es
noch jemanden....
Auch ich habe lange gekämpft, bis ich rausgefunden habe, wie ich mittels
include schnell an meine selbst geschiebenen c-/h-Dateien komme.
Ich habe einfach ein neues Verzeichnis (libs) in der Toolchain angelegt
und meine Dateien dort hineinkopiert.
Das Verzeichnis lautet (bei mir!!!):
D:\Program Files (x86)\Atmel\Atmel Studio
6.0\extensions\Atmel\AVRGCC\3.4.1.81\AVRToolchain\avr\include\libs
Dann AVR-Studio starten...
Nun kann ich in der AVR-GCC Toolchain einfach #include <libs/ eingeben
nun dann meine Datei auswählen, die ich includieren will.
Wenn Ihr eine andere Toolchain-Version habt, kann es sein, daß die
Nummer im Verzeichnispfad anders ist....
LG, Axel.