PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Nibo2-Magazin finde ich super



sourcecode
25.07.2010, 09:47
Hallo Achim.

Dein Nibo2-Magazin (https://www.roboternetz.de/phpBB2/viewtopic.php?t=53950) finde ich super =D>
Ich bin seit wenigen Tagen im Besitz eines Nibo2
und muß mich da wohl noch etwas hinein arbeiten.

Bis Ausgabe 4 Deines Magazins bin ich mitlerweile gekommen.
Leider haben nicht wirklich alle Programmcodes auf Anhieb
funktioniert. In den meisten Fällen haben noch ein paar "#include"'s
gefehlt. Das konnte ich dann noch selber lösen.

Ich hänge momentan an dem Batterie Test.
Irgendwie habe ich Probleme mit den Linker Options.
Ein -WI führt bei mir zur Fehlerausgabe wie folgt:

ccl.exe: error: unrecognized command line option -WI

Lasse ich die Option weg erhalte ich unter anderem:

warning: unused variable ubatt :-k

Hast Du oder jemand eine Idee ?

Ansonsten weiter so. Freue mich auf die nächste Ausgabe :-)

Vielen Dank

sourcecode

Achim S.
25.07.2010, 15:47
Hallo
webb diese Eingabe -WI nicht erkannt wird, kann es daran liegen das du unter Configuration Options im Libraries noch andres eingeben musst. Bisher hast libnibo2.a eingegeben. Es muss noch libprint_flt.a libm. auch so eingegebebn werden. Nicht vergessen dies Eingabe mit ADD bestätigen. Weiterhin musst du noch Custom Options und weiter unter Linker Options noch -WI , -u und vfprint eingeben und mit ADD bestätigen. Wie es genau geht erscheint in einer der folgenden Ausgaben. Natürlich mit reichlich Bildern und genauen Wegweiser. Wenn nicht geht schick direkt einen mail an mich. Kann dir schon mal einen kleinen Anfang schicken.
Danke für die Blumen
Achim

sourcecode
25.07.2010, 16:46
Hallo.

Die zusätzlichen Libraries waren und sind mit eingebunden.
Auch die zusätzlichen Linker Optionen -u und vfprintf waren und
sind mit eingebunden. Problem ist noch immer:

ccl.exe: error: unrecognized command line option -WI

Dann warte ich wohl mal auf die nächste Ausgabe Deines Magazins \:D/

Gruß

Achim S.
25.07.2010, 18:11
Hallo
versuch mal was anderes. Du kannst das Programm kennzeichnen und anschliessend kopieren. Beende AVR Studio komplett und starte es anschliessend neu. Gebe ein paar sachen ein um ein neues Prg zu erstellen bis du wieder auf die Seite mit dem eigentlichehn Code kommst. Mit der rechten Maustaste kannst du über "Paste" ein neues Programm reinkopieren. Unter Configurations Options bitte alles neu eingeben und kontrolle dazu. Nachdem du fertig bist damit noch mal aufmachen und kontrolle alles nochmal. Nach dem deinem Fehler wird eine Datei nicht mit eingebunden die in diesem Bereich geladen werden soll. Habe diese Sache bereits mehrmals machen müssen. Habe keine Erklärung warum das so ist. Bei dem Befhl vfprintf ist kein Strich da vor. Manche Prg laufen nur wenn das vfprintf in der mitte steht. Das alles Rätzel der modernen Technik. Hatte schon mal versucht eine Erklärung zu finden. Leider ohne Erfolg. Vielleicht kennt jemand der Leser die Lösung.
Achim

sourcecode
26.07.2010, 12:28
Hallo.

Es gehört zwar wohl nicht mehr ganz hierher, deswegen wollte
ich nicht extra einen neuen Thread aufmachen, aber vielleicht
kann mir dennoch jemand auf die Sprünge helfen.

Ich versuche das letzte Beispiel des Programmier Tutorials (Nibo2)
zu kompelieren. Zusätzlichen Libraries und Linker Optionen sind
eingebunden, dennoch scheint noch immer etwas zu fehlen.

../Nibo2-Motor.c:14: warning: implicit declaration of function 'spi_init'

../Nibo2-Motor.c:31: warning: implicit declaration of function 'copro_ir_startMeasure'

../Nibo2-Motor.c:32: warning: implicit declaration of function 'copro_setSpeedParameters'

../Nibo2-Motor.c:48: warning: implicit declaration of function 'copro_setSpeed'

../Nibo2-Motor.c:52: warning: implicit declaration of function 'copro_stop'

Build succeeded with 5 Warnings...

Ich weiß momentan leider nicht mehr weiter.
Hat jemand eine Idee bzw. einen Tipp ?

Vielen Dank

workwind
26.07.2010, 13:29
Hallo sourcecode,
im Quellcode einfach folgende Zeilen hinzufügen:
#include "nibo/spi.h"
#include "nibo/copro.h"

sourcecode
26.07.2010, 14:08
Hallo workwind,

hatte ich vielleicht vergessen zu erwähnen, aber die
includes sind vorhanden :-k

sourcecode

Achim S.
26.07.2010, 17:51
Hallo
Workwind hat soweit recht das mit copro.h etwas nicht stimmt. Es sind 5 Warnungen bei dir angezeigt. Daher kann man annehmen das die copro nicht erkannt oder nicht geladen wird. Die copro ist die Lib für diese Befehle. Ein beliebter Fehler ist die schreibweise. Manche Compiler mögen das " nicgt. Da muss man dann <> setzen. Oder man nicht richtig erkennen ob ein Punkt oder Komma ist. Es dreht sich um copro. Kontroliiere es bitte noch mal genau. Wenn nicht diesen Befehl löschen und neu eintippen. Es gilt der Grundastz immer, selbstgemachte Fehler findet man am schlechtesten. Was für ein Compiler nimmst du? AVR Studio 4? Habe selbst die sachen abgetippt und probiert. Nach dem ich alle Fehler gefunden habe ging es ganz gut. Hast du auch spi_init(); drin?
Hast du das andere in Griff bekommen?
Achim

sourcecode
26.07.2010, 20:34
Hallo.

Ich kann irgendwie machen was ich will. Der Compiler frißt
die spi.h und die contro.h nicht :-k Btw. ich nutze AVR Studio4.
Habe AVR auf 4.18 SP2 geupdatet, weil ich hoffte, das könnte
mein Problem vielleicht lösen ](*,) Hat es aber wohl nicht.

Vielleicht sollte ich mal bei nicai anfragen, oder hat das vielleicht
zufällig schon jemand getan ?.

Danke für Eure Hilfe !

Wir lesen uns bestimmt in Kürze mal wieder 8-[

sourcecode

sourcecode
26.07.2010, 20:47
Ich meinte natürlich copro.h !

Achim S.
27.07.2010, 18:00
Hast du einenAntwort bekommen?

sourcecode
27.07.2010, 21:28
Hallo Achim.

Leider noch nicht. Habe heute gegen Mittag mal eine Mail
an nicai gesendet. Bisher aber noch keine Antwort erhalten.
Ich warte auch sehnsüchtig :-)

Gruß,
sourcecode

sourcecode
07.08.2010, 16:21
Hallo.

So. Nachdem ich auch mal eine Antwort von nicai
erhalten habe, hat sich meine Problematik bezüglich des
fehlerhaften compilierens erledigt. War natürlich mein Fehler.
Ich hatte die Linkoption -D_NIBO_2_ falsch (klein geschrieben) ](*,)
eingetragen.

Nun habe ich auch schon das nächste Problem.
Alle Programme, bei denen die Spannungsanzeige
erfolgen soll, erhalte ich für den _Floatingpoint_ Wert
nur ein Fragezeichen. Bei Wiki steht, daß die entsprechenden
Libs libprintf_flt.a und die libm.a, sowie die Linkoption -Wl,-u,vfprintf
mit eingebunden werden müssen.
Habe ich soweit gemacht. Leider ändert das irgendwie nichts am
Ergebnis bzw. an der Anzeige.

Bevor ich mich jetzt wieder an die netten Leute von nicai wende und
mich erneut blamiere, wollte ich mich erstmal hier blamieren :-k

Jemand einen Tipp bzw. eine Idee ?

Vielen Dank.

Gruß,
sourcecode

Achim S.
07.08.2010, 18:04
Hallo
ist mir auch passiert. Habe Programme genommen die laufen und versucht sie zu verändern. Und plötzlich kamen Fehlermeldungen. Da bleibt einen nur selber den Fehler suchen. Genau diesen Fehler hatte ich zu Anfang auch. Konnte machen was ich wollte, immer nur ein ? drauf. Nimm am besten das Prg aus dem Magazin 4/2010. Erstelle eine neue Datei und kopiere das rein. Computer sind nun mal ziemlich gemein. Sie bestrafen den kleinsten Fehler und sind so richtig penibel. Nicht vergessen die Datein wieder angeben und diesmal in der richtigen schreibweise. Also gross und KLEIN unterscheiden. bei mir erscheinen dabei zwei Warnungen. Es geht aber trotzdem. Werde mal bei Gelegenheit den Rest auch suchen. Falls du keine Lust zum tippen hast, kann ich es dir auch schicken.
Achim

sourcecode
07.08.2010, 18:54
Hallo Achim.

Danke für Deine Antwort.
Ich finde das nur etwas seltsam, denn nur bei dem Programm
initializer2 wird mir die Spannung angezeigt. Das ganze liegt
mir aber nur als Hex-Datei vor und somit entfällt die Möglichkeit
sich den Quelltext anzugucken wohl. Bei allen anderen Programmen
(Bodensensor, Distanzsensor) wird die Spannung nur in Form eines
_?_ angezeigt.
Ich werde Deinen Code mal testen und danach berichten.

Weitere Tipps und Ideen sind immer willkommen :-)

sourcecode

Achim S.
07.08.2010, 19:24
Hallo
Du hast doch im Begleitheft die Prg drin. Wenn du sie nicht abtippen willst, musst du im Verzeichnis suchen. Bei mir stehen die auch unter den Nibo Prg die mit eingerichtet werden. Du kannst dir auch die Prg ansehen, auch wenn sie in C geschrieben sind oder Endung c oder h haben. Ruife Word auf und versuche damit die Prg zu öffnen. Du bekommst eine Fehlermeldung und den Vorschlag im Internet etwas passendes zu suchen. Gehe auf selber suchen und wähle Word aus. Damit kannst du alles lesen. Was für ein Compiler nimmst du?
Achim

sourcecode
07.08.2010, 19:53
Hallo.

Den Quellcode zu initializer2 habe ich dann doch gefunden. Unter nibolib/src. Ich benutze AVR. Zum Ansehen der Quellcodes und Header-Dateien benutze ich Visual C.
Dein Code zum Batterie testen funktioniert bei mir irgendwie auch
nicht. Vielleicht könntest Du mir Deine Hex-Datei schicken, oder das ganze
Project ?. yelw0rc@gmx.de
Ich werde während dessen mal weiter herumbasteln :-)

Gruß,
sourcecode

monmic
27.10.2010, 17:13
Hallo
Gleiche Problem ?
alle float's werden auf dem NIBO-Grafikdisplay als ? ausgegeben.
Beispiel 8 von der NIBO-Anleitung finktioniert auch nicht:

float volt = 0.0166 * bot_supply - 1.19;
sprintf(text, "%3.1fV", (double)volt);
gfx_move(30, 10);
gfx_print_text(text);

Kann Jemand helfen ?
Danke

hier MakeFile (AVR-Studio)

## General Flags
PROJECT = TEST_01
MCU = atmega128
TARGET = TEST_01.elf
CC = avr-gcc

CPP = avr-g++

## Options common to compile, link and assembly rules
COMMON = -mmcu=$(MCU)

## Compile options common for all C compilation units.
CFLAGS = $(COMMON)
CFLAGS += -Wall -gdwarf-2 -std=gnu99 -D_NIBO_2_ -wl,-u,vfprintf -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums
CFLAGS += -MD -MP -MT $(*F).o -MF dep/$(@F).d

## Assembly specific flags
ASMFLAGS = $(COMMON)
ASMFLAGS += $(CFLAGS)
ASMFLAGS += -x assembler-with-cpp -Wa,-gdwarf2

## Linker flags
LDFLAGS = $(COMMON)
LDFLAGS += -Wl,-Map=TEST_01.map


## Intel Hex file production flags
HEX_FLASH_FLAGS = -R .eeprom -R .fuse -R .lock -R .signature

HEX_EEPROM_FLAGS = -j .eeprom
HEX_EEPROM_FLAGS += --set-section-flags=.eeprom="alloc,load"
HEX_EEPROM_FLAGS += --change-section-lma .eeprom=0 --no-change-warnings


## Include Directories
INCLUDES = -I"C:\Programme\Atmel\NiboLib\include"

## Library Directories
LIBDIRS = -L"C:\Programme\Atmel\NiboLib\lib"

## Libraries
LIBS = -lnibo2 -lm -lprintf_flt

## Objects that must be built in order to link
OBJECTS = TEST_08.o

## Objects explicitly added by the user
LINKONLYOBJECTS =

## Build
all: $(TARGET) TEST_01.hex TEST_01.eep TEST_01.lss size

## Compile
TEST_08.o: ../TEST_08.c
$(CC) $(INCLUDES) $(CFLAGS) -c $<

##Link
$(TARGET): $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJECTS) $(LINKONLYOBJECTS) $(LIBDIRS) $(LIBS) -o $(TARGET)

%.hex: $(TARGET)
avr-objcopy -O ihex $(HEX_FLASH_FLAGS) $< $@

%.eep: $(TARGET)
-avr-objcopy $(HEX_EEPROM_FLAGS) -O ihex $< $@ || exit 0

%.lss: $(TARGET)
avr-objdump -h -S $< > $@

size: ${TARGET}
@echo
@avr-size -C --mcu=${MCU} ${TARGET}

## Clean target
.PHONY: clean
clean:
-rm -rf $(OBJECTS) TEST_01.elf dep/* TEST_01.hex TEST_01.eep TEST_01.lss TEST_01.map


## Other dependencies
-include $(shell mkdir dep 2>NUL) $(wildcard dep/*)

Achim S.
27.10.2010, 17:41
Hallo
mit dieser Angabe kann ich leider wenig anfangen. Mit welchen Compiler arbeitest du. AVR Studio 4 mit den Updates? Schicke doch einfach die Fehlermeldung die das bringt. Hast du die aktuelle Software drauf Lib 2.8?
Achim

monmic
27.10.2010, 22:02
Hallo.
Keine Fehlermeldungen.
alle float's werden aber auf dem GrafikDisplay als ? ausgegeben.
Wie im Beispiel Ausgabe:
?V
statt
xx.xV

Achim S.
28.10.2010, 18:45
Hallo
brauche ein paar mehr angaben. Hast du Lib 2.8 geladen? Hast du die richtigen zusätzlichen Datein eingebunden? (WI,u;vfprint?) Welche Reihenfolge beim Aufruf? Welche AVR Version und update? Wird das Beispiel Prg Hello Word richtig ausgeführt? Schicke mal das Prg rüber, Vielleicht ist ein Fehler drin. Leider habe ich meine Glaskugel gerade nicht zur Hand. Dadurch kann ich nicht sehen was du gerade machst.
Achim

elektrolutz
28.10.2010, 21:30
Hallo monmic,


## Libraries
LIBS = -lnibo2 -lm -lprintf_flt
Die Lib 2.8 habe ich noch nicht bei mir aktiviert.

Mit bisherigen Libs sollten die Library-Einträge wie folgt lauten:
-libnibo2.a
-libm.a
-libprint_flt.a
Siehe auch Nibo2 Turorial, 26.11.2009 Seite 23.

Hat sich das bei der Lib 2.8 geändert?
Ich denke nicht, somit kommt die falsche Anzeige wegen der fehlenden float-Libs.

monmic
02.11.2010, 06:47
Hallo.
Das Magazin sagt mir nichts.
Das Beispiel aus Kapitel 8 habe ich 1:1 kopiert. Läuft auch nicht.
Die Schalter habe ich gesetzt und die 3 Libs auch eingebunden.
Ich habe mit Lib 2.7 und 2.8 den gleiche Effekt:
floats werden als ? in den String mit sprintf ünernommen .
Ich benutze AVR-Studio 4 . MakeFile dazu siehe weiter oben.

monmic

elektrolutz
02.11.2010, 09:02
...
## Compile options common for all C compilation units.
CFLAGS = $(COMMON)
CFLAGS += -Wall -gdwarf-2 -std=gnu99 -D_NIBO_2_ -wl,-u,vfprintf -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums
...


Hallo monmic,

im Menue "Project / Configuration Options" links unterstes Icon "Custom Options".
Hier in "Custom Compilation Options" linker Auswahlbereich "[All files]" markieren, hier sollte nun im rechten Bereich angezeigt werden:
-Wall
-gdwarf-2
-std=gnu99
-D_NIBO_2_
-DF_CPU=16000000UL
-Os
-funsingned-char
-funsigned-bitfields
-fpack-struct
-fshort-enums

Nun im linken Auswahlbereich "[Linker Options]" auswählen, hier sollte nun im rechten Bereich angezeigt werden:
-Wl
-u
vprintf
(Das "W" in "-Wl" muss ein großer Buchstabe sein!)

monmic
02.11.2010, 17:19
Hallo elektrolutz.
Danke für die Hilfe.
Das wars:
-Wl
-u
vprintf
hatte ich nicht unter [Linker Options] sonder unter [AllFioles] drin.
monmic

elektrolutz
02.11.2010, 22:00
Hallo monmic,

freut mich, dass ich helfen konnte.
Ich finde diese ganzen Eintragungen sehr unübersichtlich und fehlerträchtig.
Es passiert mir immer wieder, dass ich da was vermurkst habe.

Leider findet sich dazu auch irgendwie keine brauchbar verständliche Beschreibung.

workwind
09.11.2010, 18:10
Infos zu dem ? Problem bei floats gibt es im NIBO FAQ: http://www.nibo-roboter.de/wiki/NIBO_2/FAQ#Fragezeichen_.28.3F.29_statt_Floating-Point_Zahlen

Achim S.
09.11.2010, 18:50
Hallo Freunde
diesen Fehler habe ich zu Anfang auch gemacht. Passiert halt. Konnte aber nach kurzer Zeit das Problem beheben. Damit sowas nicht mehr vorkommt habe ich im Magazin auch diese kleine Serie drin. Leider kam meine letzte Ausgabe zu spät. Habe gerade das beschrieben und mit Bildern versehen. Es sollen noch ein paar Teile folgen. Dann sich jeder ansehen wie es gemacht wird.
Achim