RoboterCC - Robotic Code Compiler
Forum Robot Kits NIBO 2 NDS3-Modul und die Variable distances

Welcome

Nachrichten

Sie sind nicht eingeloggt.

Werbung

Letzte Themen

  • Keine Beiträge vorhanden

Site-Statistic

  • 7426 private projects
  • 385 public projects
  • 16180353 lines compiled
  • 58212 builds
NIBO @ facebook YouTube Twitter
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
  • Seite:
  • 1
  • 2

THEMA: NDS3-Modul und die Variable distances

NDS3-Modul und die Variable distances 11 Jahre 10 Monate her #1235

  • botnovice
  • botnovices Avatar
  • OFFLINE
  • Junior Boarder
  • Beiträge: 8
Hallo NIBO2-Gemeinde,

ich habe folgende zwei einfache Fragen:

1. Wenn ich in einem NDS3-Programm (Beispiel von Georg) auf das Array "distances" zugreifen will, dann ist es so, dass beim Compilieren genau an der Stelle, in welcher nds3_distances steht, ein Compilier-Fehler "nds3_distances undeclared" auftritt (das " i " ist selbstverständlich deklariert).

Scheinbar habe ich in meinen Project-Options eine Einstellung vergessen. Als include-Directory nehme ich das Verzeichnis Nibolib, als Library die libm.a, die libprintf_flt.a, die libnds3.a und zuletzt die libnibo2.a

Was mache ich da falsch?

2. Ferner habe ich in einem eigenen Programm Probleme mit dem Befehl

while (nds3_get_busy()) {
delay(1);
}

Sobald das Programm in diese Schleife eintritt, bleibt es darin stecken, selbst wenn der Befehl für das NDS3-Modul längst abgelaufen zu sein scheint. Im Klartext: diese Schleife ist eine Endlosschleife...

Vielleicht hat jemand von euch hierzu eine Idee.

Vielen herzlichen Dank im Voraus,
botnovice
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: NDS3-Modul und die Variable distances 11 Jahre 10 Monate her #1236

  • elektrolutz
  • elektrolutzs Avatar
  • OFFLINE
  • Gold Boarder
  • NiboBee+BGX1+Tunig-Kit, Nibo2+GFX+NDS3+UCOM-IR2
  • Beiträge: 401
Hallo botnovice,

schau mal hier: http://www.roboter.cc/index.php?option=com_kunena&func=view&catid=3&id=391&Itemid=20

Ich denke das hilft Dir weiter.
Gruß aus Werl elektrolutz
Theorie ist, wenn man weiß, wie alles funktioniert. -- Praxis ist, wenn alles klappt und keiner weiß warum!
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: NDS3-Modul und die Variable distances 11 Jahre 10 Monate her #1237

  • BirgerT
  • BirgerTs Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 325
Wegen der While-Schleife: Der Compiler hat wohl den wiederholten Aufruf des nds3_get_busy wegoptimiert..Das kann man in der lss-Datei nachsehen

Versuch's doch mal so
do{
delay(1);
volatile uint8_t ergebnis = nds3_get_busy();
}while(ergebnis != 0
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: NDS3-Modul und die Variable distances 11 Jahre 10 Monate her #1238

  • Georg
  • Georgs Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 290
Hallo botnovice,

MAKEFILE als Hilfestellung zur Frage 1:



# Configuration
TARGET = nds3_display
DEVICE = atmega128
F_CPU = 16000000

OBJS = \
main.o \



# AVR compiler setup
PREFIX =
CC = $(PREFIX)avr-gcc
OBJCOPY = $(PREFIX)avr-objcopy
OBJDUMP = $(PREFIX)avr-objdump


# AVR compiler and linker flags
CFLAGS += -Os -ffunction-sections -DAVR -I../../../include -mmcu=$(DEVICE) -std=c99
CFLAGS += -DF_CPU=$(F_CPU) -DVERSION="\"$(VERSION)\"" -D_NIBO_2_ -DNIBO_USE_NDS3
CLDFLAGS += -v -mmcu=$(DEVICE) -L../../../lib

# MATH lib
MATH = -lm -Wl,-u,vfprintf -lprintf_flt
#MATH = -lm
#MATH =

# Nibo library
LIBS = -lnibo2 -lnds3

# build intel hex files
all: $(TARGET).hex

main.o: main.c

%.o: %.c Makefile
$(CC) $(CFLAGS) -c $< -o $@

%.d:%.c
set -e; $(CC) -MM $(CFLAGS) $< \
| sed 's#\($*\)\.o[ :]*#\1.o $@ : #g' > $@ ; \
[ -s $@ ] || rm -f $@

# avr specific entries
%.elf: $(OBJS)
$(CC) $(CLDFLAGS) -o $@ $(OBJS) $(LIBS) $(MATH)
avr-size -A $(TARGET).elf

%.hex: %.elf
$(OBJCOPY) -j .text -j .data -O ihex $< $@

$(TARGET).lss: $(TARGET).elf
avr-objdump -h -S $(TARGET).elf >$(TARGET).lss

lss: $(TARGET).lss


avrdude: $(TARGET).hex
avrdude -c stk500v2 -p m128 -B 1 -U lfuse:w:0xff:m -U hfuse:w:0xc1:m -U efuse:w:0xff:m -U flash:w:$(TARGET).hex

clean:
rm -f *.d *.o *~ *.elf $(TARGET).hex $(TARGET).lss

include $(OBJS:.o=.d)

.PHONY: clean
.SECONDARY: $(TARGET).hex $(OBJS)




lg Georg
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: NDS3-Modul und die Variable distances 11 Jahre 10 Monate her #1239

  • botnovice
  • botnovices Avatar
  • OFFLINE
  • Junior Boarder
  • Beiträge: 8
Hallo Zusammen,
zunächst mal herzlichsten Dank für die zahlreichen Hinweise. Um es kurz zu machen: Die Compilation läuft jetzt durch, die Variable nds3_distances wird nun erkannt

Gemacht habe ich es nun wie folgt:
1. Zuerst habe ich als Linker-Option -DNIBO_USE_NDS3 angegeben.
2. Anschliessend habe ich eine überarbeitete niboconfig.h von hier (www.roboter.cc/index.php?option=com_kune...id=391&Itemid=20) in das Verzeichnis include/nibo kopiert.

Ebenso funktioniert jetzt plötzlich auch die while-Schleife NDS3_get_busy() im Originalzustand (also ohne volatile).

Ich wundere ich mich, woher ihr die vielen Informationen habt. Respekt! Denn der Service bei nicai-systems ist mangelhaft - es gibt keine Rückantworten (bis aus eine Ausnahme, da gings aber um Hardware). Hier im Forum scheinen Leute zu sein, die den NIBO2 besser verstehen als die Entwickler selbst...

Viele Grüße,
botnovice
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: NDS3-Modul und die Variable distances 11 Jahre 10 Monate her #1240

  • Egon
  • Egons Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 316
Hallo botnovice

Dein link (mit der überarbeiteten niboconfig.h) funktioniert nicht - bitte ausbessern!

Danke

mfg

Egon
lokalisieren, eliminieren, Vollzug melden
Der Administrator hat öffentliche Schreibrechte deaktiviert.
  • Seite:
  • 1
  • 2
Ladezeit der Seite: 0.098 Sekunden

Werbung