PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : probleme mit asuro library



Schorfo
27.03.2007, 23:21
hallo

ich habe versucht mir die library von sourceforge.net zu installieren, habe aber irgendwie immer probleme damit
beim compilieren(make) einfachster asuro programme gibts immer folgende fehler meldung:



asuro.c:184: warning: return type defaults to `int'
asuro.c:184: warning: function declaration isn't a prototype
asuro.c: In function `SIGNAL':
asuro.c:188: warning: control reaches end of non-void function
asuro.c: At top level:
asuro.c:195: warning: return type defaults to `int'
asuro.c:195: warning: function declaration isn't a prototype
asuro.c:195: error: redefinition of `SIGNAL'
asuro.c:184: error: `SIGNAL' previously defined here
asuro.c:212: warning: return type defaults to `int'
asuro.c:212: warning: function declaration isn't a prototype
asuro.c:212: error: redefinition of `SIGNAL'
asuro.c:195: error: `SIGNAL' previously defined here
make: *** [asuro.o] Error 1


ich möchte eigentlich nur mit hilfe der Encoder_Init funktion den Asuro gerade aus fahren lassen, aber wenn die asuro.c bzw. asuro.h datei fehlerhaft ist weis ich auch nciht was ich machen kann.

ich vermute mal ich hab bei der installation der library was falsch gemacht

_HP_
28.03.2007, 08:54
Hi Schorfo,

versuche mal im Verzeichnis "...\ASURO_Lib\example\FirstTry\test.c zu übersetzen. Wenn das funktioniert, dann nimm das als Vorlage für eigene Programme. Es kann sein, dass Du die alte asuro.h in deine Programme einbindest, die dann mit der "realen Welt" (neue lib) kollidiert.

Viel Erfolg...

Gruß,

_HP_

damaltor
28.03.2007, 16:36
ein interrupt ist doppelt vorhanden.

such mal in der asuro.c nach allen zeilen, die mit SIGNAL beginnen und poste die entsprechenden abschnitte hier rein (mit dem code button), dann kannst du evtl einen auskommentieren.

Schorfo
29.03.2007, 10:06
danke für die schnelle hilfe

die asuro.c bzw. asuro.h habe ich von

AsuroWiki (http://www.asurowiki.de/pmwiki/pmwiki.php/Main/Downloads)

ich vermute mal das mein fehler bei der installation der dateien(wie in der documentation beschrieben) liegt.

ich habe meine standart asuro.c bzw .h in C:\Asuro_src\FirstTry\
laut anleitung soll ich die dateien in C:\WinAVR\avr\lib speichern

die übersetzung mit der .bat datei funktioniert zwar, aber alle asuro programme, die mit der alten asuro.c bzw. asuro.h datei laufen, laufen nicht mehr

ich programmiere mit dem Programmers Notepad und habe alles so installiert wie in der Asuro anleitung beschrieben.

wäre nett wenn ihr mir helfen könntet^^

damaltor
29.03.2007, 11:24
was bedeutet "alle alten programme"? die die du vorher geschrieben hast oder wie? oder fertige, die du runtergeladen hast? die fertigen funktionieren teilweise nicht, weil sie einen 72kHz timer erwarten, während in der neuen lib dieser auf 36 kHz eingestellt ist. ausserdem wurde wie gesagt in der neuen lin ein zusätzlicher interrupt hinzugefügt, bei einigen programmen ist dieser dann doppelt was zu problemen führt.

m.a.r.v.i.n
29.03.2007, 12:26
Hi Schorfo,

damit sich deinen alten Asuro Programme mit der neuen Asuro Lib übersetzen lassem muß einiges angepaßt werden.


* alle deine eigenen Programme sollten in der gleichen Verzeichnisebene stehen wie das examples Verzeichnis, damit es mit den Makefiles ohne Änderung funktioniert. Jedes Programm bekommt ein eigenes Unterverzeichnis.
* asuro.c und asuro.h aus den Projektordnern entfernen, oder umbenennen. Diese werden immer aus dem lib bzw. lib\inc Verzeichnis eingebunden.
* das vorhandene Makefile durch eines aus dem examples Ordner der neuen Lib ersetzen (z.B. examples\FirstTry\Makefile). Solange alle deine eigenen Projekte nur aus der test.c bestehen, braucht an den Makefiles nichts geändert werden.

Die Verzeichnisstruktur könnte dann z.B. so aussehen (ausgehend von dem Verzeichnis in dem man die neue Asuro Lib ausgepackt hat):


examples
examples\FirstTry
examples\LineTest
projects
projects\MyProgram1
projects\MyProgram2
lib
lib\inc

Deine eigenen Programme kommen dann ins Verzeichnis projects.
Wichtig ist, das die Verzeichnistiefe eingehalten wird, da in den Makefiles mit relativen Pfaden gearbeitet wird. Jeweils vom Programmverzeichnis wird 2 Verzeichnisse darunter das lib Verzeichnis erwartet. Dort steht dann die asuro.c, die in jedes Projekt mit eingebunden wird. Unter lib/inc befindet sich auch eine asuro.h. So funktionieren die alten Programme auch weiterhin ohne Anpassung (mit Hochkommas statt eckigen Klammern)


#include "asuro.h"

Dani-Bruchflieger
06.05.2007, 13:17
Hi,

vielleicht bin ich auch nur zu doof dazu, aber ich kann machen, was ich will, ich erhalte immer diese Fehlermeldung beim make all:

> "make.exe" all
set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -I../../lib/inc -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=../../lib/asuro.lst ../../lib/asuro.c \
| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > asuro.d; \
[ -s asuro.d ] || rm -f asuro.d
0 [main] sh 1376 sync_with_child: child 3760(0x150) died before initialization with status code 0x0
24787 [main] sh 1376 sync_with_child: *** child state waiting for longjmp
/usr/bin/sh: fork: Resource temporarily unavailable
make.exe: *** [asuro.d] Error 128

> Process Exit Code: 2

habe die neueste Lib als exe geladen. Beim Installieren meckert sie zwar mal kurz rum, daß winavr nicht installiert wäre, aber auch davon habe ich die neueste verfügbare Version (WinAVR-20050214-install.exe) installiert.
Habe dann die Lib so wie in der install.txt angegeben in die entsprechenden Verzeichnisse hineinkopiert.
Habe dann mal versucht einige aus den examples zu compilieren und erhalte jedesmal diese Textmeldungen.

Grüße Dani.

edit: ich sehe gerade in dieser Zeile:
/usr/bin/sh: fork: Resource temporarily unavailable
ist das nicht das Verzeichnis, wenn man Linux hat? - Ich nutze Vista ultimate64 - muß ich da irgendwo in dem makefile noch was ändern?

m.a.r.v.i.n
06.05.2007, 21:17
Hi Dani,

der Fehler hat wohl nichts mit der Asuro Lib zu tun. Das ist ein Problem zwischen WinAVR und Vista .
Vielleicht hilft dir einer der folgenden Links weiter:
http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&p=315682
http://www.madwizard.org/extern/winavr-vista/

Dani-Bruchflieger
07.05.2007, 17:12
Hi Marvin,

Danke für den Hinweis. Ich habe das jetzt alles so gemacht, wie auf madwizzard beschrieben, aber ich erhalte immernoch diese Fehlermeldungen

> "make.exe" all
set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -I../../lib/inc -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=../../lib/asuro.lst ../../lib/asuro.c \
| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > asuro.d; \
[ -s asuro.d ] || rm -f asuro.d
0 [main] sh 4264 sync_with_child: child 3356(0x150) died before initialization with status code 0x0
23170 [main] sh 4264 sync_with_child: *** child state waiting for longjmp
/usr/bin/sh: fork: Resource temporarily unavailable
make.exe: *** [asuro.d] Error 128

> Process Exit Code: 2