-
myasuro.h ohne Wirkung
Es handelt es sich bei mir wahrscheinlich um ein typisches Anfängerproblem, insbesondere C betreffend.
Ich habe versucht mit #include "myasuro.h" ein paar Werte zu verändern, die z.B. für Turn() den Drehwinkel beeinflussen. Aber keine Chance, egal wo ich die myasuro.h auch hinkopiere bzw. wie ich #include schreibe. Es ändert überhaupt nichts.
Wo muss die Datei denn stehen, damit sie mit compiliert wird.
Ich habe unter SuSE 10.0 den gcc-avr unter /opt/cross installiert und diesen Pfad auch im Makefile angegeben. Aber auch eine direkte Adressierung #include "/home/frank/.../myasuro.h" hilft überhaupt nichts.
Was mache ich falsch? Hoffe genug Informationen gegeben zu haben.
-
Hallo knarf12,
erst einmal herzlich willkommen im Forum.
Du hast ja schon alles mögliche probiert und auch schon den richtigen Weg eingeschlagen.
Jetzt bleibt eigendlich nur noch die Frage, ob diese Konstanten aus myasuro.h auch benutzt werden!!
Du solltest auf alle Fälle mal in die Funktionen Go() und Turn() 'reinsehen', ob sie dort als Teiler/Multiplikator tatsächlich eingetragen sind. (Im Source encoder.c)
Ab asuro_libv270rc3.zip werden sie erst benutzt. Sonst müstest du sie dir die RC3 erst einmal noch holen.
Z.B. Über diese LIB-Beschreibung
-
Hallo knarf12,
du mußt natürlich auch die AsuroLib neu übersetzen, damit sich Änderungen an der myasuro.h auch auswirken. Und diese aktualisierte Lib muß dann ins AVR Lib Verzeichnis kopiert werden.
-
Wie übersetzt man denn die ASUROLIB neu? Habe die Frage schon gesondert gestellt, blieb aber leider unbeantwortet. Bin Dankbar für jeden Hinweis.
-
Ich verwende (unter MS Windows) die Datei make-lib.bat mit dem Inhalt:
make clean
make all
make install
-
Wenn ich die Batchdatei „make-lib“ aufrufe bekomme ich immer die Rückmeldungen ***no rule to make target…***. Was fehlt da?
Ich verwende WinAVR-20070525 mit Programmer's Notepad 2 v0.7.667 und die Asuro Library 2.70rc3.
-
Hier ist die make-Datei:
Code:
###############################################################################
# Makefile for the project AsuroLib
###############################################################################
## General Flags
PROJECT = AsuroLib
MCU = atmega8
TARGET = AsuroLib.elf
CC = avr-gcc.exe
AR = avr-ar
OBJDUMP = avr-objdump
## 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 -Os -I./inc
CFLAGS += -MD -MP -MT $(*F).o -MF dep/$(@F).d
## Assembly specific flags
ASMFLAGS = $(COMMON)
ASMFLAGS += -x assembler-with-cpp -Wa,-gdwarf2
## Linker flags
LDFLAGS = $(COMMON)
LDFLAGS +=
## Intel Hex file production flags
HEX_FLASH_FLAGS = -R .eeprom
HEX_EEPROM_FLAGS = -j .eeprom
HEX_EEPROM_FLAGS += --set-section-flags=.eeprom="alloc,load"
HEX_EEPROM_FLAGS += --change-section-lma .eeprom=0
## Objects that must be built in order to link
OBJECTS = globals.o adc.o encoder.o encoder_low.o i2c.o leds.o lcd.o\
motor.o motor_low.o print.o rc5.o sound.o switches.o\
time.o uart.o version.o
## Objects explicitly added by the user
LINKONLYOBJECTS =
# Define directories, if needed.
DIRAVR = C:/WinAVR
DIRAVRBIN = $(DIRAVR)/bin
DIRAVRUTILS = $(DIRAVR)/utils/bin
DIRINC = .
DIRLIB = $(DIRAVR)/avr/lib
LIB = asuro
LIBFILE = lib$(LIB).a
HEADER = asuro.h
## Build
all: $(LIBFILE)
rm -rf *.o *~
%.o: %.c
$(CC) $(INCLUDES) $(CFLAGS) -c $<
$(LIBFILE): $(OBJECTS)
$(AR) cru $(LIBFILE) $(OBJECTS)
## Clean target
clean:
rm -rf *.o *~ $(LIBFILE)
rm -rf *.lst *.map $(EXTRA_CLEAN_FILES)
rm -rf dep/*.d
install:
cp $(LIBFILE) $(DIRLIB)/$(LIBFILE)
cp inc/$(HEADER) $(DIRINC)/$(HEADER)
lst: $(OBJECTS:%.o=%.lst)
%.lst: %.o
$(OBJDUMP) -h -S $< > $@
## Other dependencies
-include $(shell mkdir dep 2>/dev/null) $(wildcard dep/*)
-
Sorry dafür, dass ich mich ein wenig unbeholfen anstelle. Was muß ich jetzt genau mit dem Inhalt anfangen? Warum habe nur ich das Problem?
-
Du könntest in deine Datei Makefile schauen und vergleichen.
Filestruktur:
C:\ASURO_SRC\AsuroLib\lib dort befindet sich das Makefile, die Implementierungsfiles (asuro.c & Co.) und libasuro.a.
C:\ASURO_SRC\AsuroLib\lib\inc dort befinden sich die Header, auch myasuro.h. Kopiere mal den Header asuro.h aus inc eins höher nach lib. Das passiert bei mir z.B. automatisch, wenn ich make-lib.bat starte.
-
ich hätte da wahrscheinlich auch schwierigkeiten. Bin nur noch gar nich so weit reingekommen...
Bei mir ist die libasuro.a in "C:\Programme\WinAVR\avr\lib\". Muss jetzt die make-lib.bat auch dorthin? Wo sind/sollen sein denn bei mir die files
makefile
make clean
make all
make install????