PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Include ultrasonic.h



Jozo
05.11.2010, 10:36
ich versuche nun seit mehreren wochen den ultraschall abstandsmesser zu laufen zu kriegen.

Ich glaube es leigt daran das ich nicht die ultrasonic.h mit einbinden kann.


Kann mir jemand bitte helfen wie ich sowas mache und wie ich das makefile verändern muss das klappt einfach nicht



MFG

radbruch
05.11.2010, 11:26
Hallo

Mit den Makefiles stehe ich auch auf dem Kriegsfuss. Wenn gar nichts mehr geht binde ich die Includes einfach direkt in den Quellcode des Programmes ein. Das ist zwar angeblich eine Untat, funktionierte bei mir aber immer problemlos:

#include "asuro.h"
#include "ultrasonic.h"
#include "ultrasonic.c"

ultrasonic.h und ultrasonic.c sollten sich im selben Verzeichniss wie der Quellcode des Programms befinden.

Wie sieht denn dein Makefile aus?

Gruß

mic

Jozo
05.11.2010, 11:41
test.c:10:24: ultrasonic.h: No such file or directory

ich bekomme dauernd diese meldung.

ich hab gelesen das man nur den pfad der Lib. ändern soll und dass klappt irgendwie net.


Ich werde jetzt mal dein vorschlag ausprobieren


Danke schonmal

Jozo
05.11.2010, 11:52
Hast du die Ultraschallplatiene?
Funktioniert sie bei dir einwandfrei?

MFG

shedepe
05.11.2010, 12:16
Befindet sich die ultrasonic.h im selben verzeichnis wie deine test.c und ist die ultrasonic.c auch im makefile eingetragen ?

Jozo
05.11.2010, 12:23
ne die ultrasonics sind zusammen aber die test ist im firsttry ordner.

Soll ich alles in denn firsttry ordner kopieren?

shedepe
05.11.2010, 12:28
Könntest du zumindest mal zum testen machen. Und nicht vergessen den richtigen Pfad im makefile anzugeben

Jozo
05.11.2010, 12:29
ich benutze den Programmers Notpad 2

ist das ein problem des müsst doch auch mit dem gehen?

shedepe
05.11.2010, 12:32
Aber auch dem Programmers Notepad 2 wirst du sagen müssen, woher er die Files nehmen soll.

Jozo
05.11.2010, 12:39
Das ist doch des wo man im Makefile den pfad angibt oder?

Jozo
05.11.2010, 13:32
#include "asuro.h"
#include "ultrasonic.h"

int abstand=0;
int main(void)
{
Init();
SerPrint("\r\n --- ultrasonic test ---");
Msleep(1000);
do
{
abstand = Chirp();
SerPrint("\r\n distanz in cm: ");
Msleep(500);
PrintInt(abstand);
}
while(1);
return 0;
}



Das ist der code den ich verwenden will

shedepe
06.11.2010, 23:20
Dann poste mal dein Makefile wie radbruch dich schon zig posts davor gebeten hat.

Jozo
12.11.2010, 10:01
Hoffentlich kann mir jemand helfen ich weiss echt nicht was da falsch ist oder was ich falsch mache.



# WinAVR Sample makefile written by Eric B. Weddington, Jörg Wunsch, et al.
# Released to the Public Domain
# Please read the make user manual!
#
#
# On command line:
#
# make all = Make software.
#
# make clean = Clean out built project files.
#
# make coff = Convert ELF to AVR COFF (for use with AVR Studio 3.x or VMLAB).
#
# make extcoff = Convert ELF to AVR Extended COFF (for use with AVR Studio
# 4.07 or greater).
#
# make program = Download the hex file to the device, using avrdude. Please
# customize the avrdude settings below first!
#
# make filename.s = Just compile filename.c into the assembler code only
#
# To rebuild project do "make clean" then "make all".
#


# MCU name
MCU = atmega8

F_CPU = 8000000UL

# Output format. (can be srec, ihex, binary)
FORMAT = ihex

# Target file name (without extension).
TARGET = test

# Optimization level, can be [0, 1, 2, 3, s]. 0 turns off optimization.
# (Note: 3 is not always the best optimization level. See avr-libc FAQ.)
OPT = s

# additional Include path for libraries
#LIBPATH = C:/ASURO_SRC/AsuroLib/lib
LIBPATH = "C:/Dokumente und Einstellungen/dugaj/Desktop/FirstTry/lib"
LIBFILE = asuro

# additional include path for header files
INCPATH = $(LIBPATH)/inc

# List C source files here. (C dependencies are automatically generated.)
SRC = $(TARGET).c

# If there is more than one source file, append them above, or adjust and
# uncomment the following:
SRC += asuro.c

# You can also wrap lines by appending a backslash to the end of the line:
#SRC += baz.c \
#xyzzy.c



# List Assembler source files here.
# Make them always end in a capital .S. Files ending in a lowercase .s
# will not be considered source files but generated files (assembler
# output from the compiler), and will be deleted upon "make clean"!
# Even though the DOS/Win* filesystem matches both .s and .S the same,
# it will preserve the spelling of the filenames, and gcc itself does
# care about how the name is spelled on its command-line.
ASRC =




# Optional compiler flags.
# -g: generate debugging information (for GDB, or for COFF conversion)
# -O*: optimization level
# -f...: tuning, see gcc manual and avr-libc documentation
# -Wall...: warning level
# -Wa,...: tell GCC to pass this to the assembler.
# -ahlms: create assembler listing
CFLAGS = -g -O$(OPT) -I$(INCPATH) \
-funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums \
-Wall -Wstrict-prototypes \
-Wa,-ahlms=$(<:.c=.lst)

# Virtual path for Source Files
VPATH = $(LIBPATH)

# Optional assembler flags.
# -Wa,...: tell GCC to pass this to the assembler.
# -ahlms: create listing
# -gstabs: have the assembler create line number information; note that
# for use in COFF files, additional information about filenames
# and function names needs to be present in the assembler source
# files -- see avr-libc docs [FIXME: not yet described there]
ASFLAGS = -Wa,-ahlms=$(<:.S=.lst),-gstabs



# Optional linker flags.
# -Wl,...: tell GCC to pass this to linker.
# -Map: create map file
# --cref: add cross reference to map file
LDFLAGS = -Wl,-Map=$(TARGET).map,--cref
LDFLAGS += -L$(LIBPATH)



# Additional libraries
#
# Minimalistic printf version
#LDFLAGS += -Wl,-u,vfprintf -lprintf_min
#
# Floating point printf version (requires -lm below)
#LDFLAGS += -Wl,-u,vfprintf -lprintf_flt
#
# -lm = math library
LDFLAGS += -lm
LDFLAGS += -l$(LIBFILE)



# ---------------------------------------------------------------------------

# Define directories, if needed.
DIRAVR = c:/winavr
DIRAVRBIN = $(DIRAVR)/bin
DIRAVRUTILS = $(DIRAVR)/utils/bin
DIRINC = .
DIRLIB = $(DIRAVR)/avr/lib


# Define programs and commands.
SHELL = sh

CC = avr-gcc

OBJCOPY = avr-objcopy
OBJDUMP = avr-objdump
SIZE = avr-size

REMOVE = rm -f
COPY = cp

HEXSIZE = $(SIZE) --target=$(FORMAT) $(TARGET).hex
ELFSIZE = $(SIZE) -A $(TARGET).elf

FINISH = echo Errors: none
BEGIN = echo -------- begin --------
END = echo -------- end --------




# Define all object files.
OBJ = $(SRC:.c=.o) $(ASRC:.S=.o)

# Define all listing files.
LST = $(ASRC:.S=.lst) $(SRC:.c=.lst)

# Combine all necessary flags and optional flags.
# Add target processor to flags.
ALL_CFLAGS = -mmcu=$(MCU) -DF_CPU=$(F_CPU) -I. $(CFLAGS)
ALL_ASFLAGS = -mmcu=$(MCU) -I. -x assembler-with-cpp $(ASFLAGS)



# Default target.
all: begin gccversion sizebefore $(TARGET).elf $(TARGET).hex $(TARGET).eep \
$(TARGET).lss sizeafter finished end


# Eye candy.
# AVR Studio 3.x does not check make's exit code but relies on
# the following magic strings to be generated by the compile job.
begin:
@$(BEGIN)

finished:
@$(FINISH)

end:
@$(END)


# Display size of file.
sizebefore:
@if [ -f $(TARGET).elf ]; then echo Size before:; $(ELFSIZE);fi

sizeafter:
@if [ -f $(TARGET).elf ]; then echo Size after:; $(ELFSIZE);fi



# Display compiler version information.
gccversion :
$(CC) --version




# Convert ELF to COFF for use in debugging / simulating in
# AVR Studio or VMLAB.
COFFCONVERT=$(OBJCOPY) --debugging \
--change-section-address .data-0x800000 \
--change-section-address .bss-0x800000 \
--change-section-address .noinit-0x800000 \
--change-section-address .eeprom-0x810000


coff: $(TARGET).elf
$(COFFCONVERT) -O coff-avr $< $(TARGET).cof


extcoff: $(TARGET).elf
$(COFFCONVERT) -O coff-ext-avr $< $(TARGET).cof

# Create final output files (.hex, .eep) from ELF output file.
%.hex: %.elf
$(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@

%.eep: %.elf
-$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \
--change-section-lma .eeprom=0 -O $(FORMAT) $< $@

# Create extended listing file from ELF output file.
%.lss: %.elf
$(OBJDUMP) -h -S $< > $@



# Link: create ELF output file from object files.
.SECONDARY : $(TARGET).elf
.PRECIOUS : $(OBJ)
%.elf: $(OBJ)
$(CC) $(ALL_CFLAGS) $(OBJ) --output $@ $(LDFLAGS)


# Compile: create object files from C source files.
%.o : %.c
$(CC) -c $(ALL_CFLAGS) $< -o $@


# Compile: create assembler files from C source files.
%.s : %.c
$(CC) -S $(ALL_CFLAGS) $< -o $@


# Assemble: create object files from assembler source files.
%.o : %.S
$(CC) -c $(ALL_ASFLAGS) $< -o $@






# Target: clean project.
clean: begin clean_list finished end

clean_list :
$(REMOVE) $(TARGET).hex
$(REMOVE) $(TARGET).eep
$(REMOVE) $(TARGET).obj
$(REMOVE) $(TARGET).cof
$(REMOVE) $(TARGET).elf
$(REMOVE) $(TARGET).map
$(REMOVE) $(TARGET).obj
$(REMOVE) $(TARGET).a90
$(REMOVE) $(TARGET).sym
$(REMOVE) $(TARGET).lnk
$(REMOVE) $(TARGET).lss
$(REMOVE) $(OBJ)
$(REMOVE) $(LST)
$(REMOVE) $(SRC:.c=.s)
$(REMOVE) $(SRC:.c=.d)


# Automatically generate C source code dependencies.
# (Code originally taken from the GNU make user manual and modified
# (See README.txt Credits).)
#
# Note that this will work with sh (bash) and sed that is shipped with WinAVR
# (see the SHELL variable defined above).
# This may not work with other shells or other seds.
#
%.d: %.c
set -e; $(CC) -MM $(ALL_CFLAGS) $< \
| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > $@; \
[ -s $@ ] || rm -f $@


# Remove the '-' if you want to see the dependency files generated.
-include $(SRC:.c=.d)



# Listing of phony targets.
.PHONY : all begin finish end sizebefore sizeafter gccversion coff extcoff \
clean clean_list program

radbruch
12.11.2010, 12:49
Hallo


LIBPATH = "C:/Dokumente und Einstellungen/dugaj/Desktop/FirstTry/lib" Leerzeichen im Path sollte man vermeiden:
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=53281

Da meine Makefiles automatisch erstellt werden, kann ich eigentlich nur raten:


# If there is more than one source file, append them above, or adjust and
# uncomment the following:
SRC += asuro.c
Wenn es mehr als eine zusätzliche Datei einzubinden gibt, hänge sie hier an:

# If there is more than one source file, append them above, or adjust and
# uncomment the following:
SRC += asuro.c
SRC += ultrasonic.c


Gruß

mic

VitaliW
09.06.2014, 11:46
Guten Tag,ich bin neu hier und möchte mich mit dem Asuro etwas beschäftigen.Ich habe mir den Asuro besorgt,aber ich habe noch Fragen zu der Programmierung..Ich habe ein asuro mit Ultrasonic Modul und ich kriege es nicht hin :-(
Vielleicht kann jemand mir helfen und mein Programm anschauen?
so sieht mein Programm aus:
#include "asuro.h"

#include "ultrasonic.h"
int main(void)
{
Ini t () ;
int abstand=200;
while (1)
{
abstand = Chirp();
Msleep(50);
SerPrint("\r\n distanz in cm: ");
Printlnt(abstand);
if(abstand>20)
{
MotorDir(FWD,FWD);
MotorSpeed(150,150);
StatusLED(GREEN);
}
else if ((abstand <=20) && (abstand >0) )
{
MotorDir(BREAK,BREAK);
MotorSpeed(O,O);
MotorDir(RWD,RWD);
MotorSpeed(120,0);
BackLED (ON, ON) ;
StatusLED (RED) ;
Msleep (1000);
}
}
return 0;
while (1);
}
.
und das ist meine Fehlermeldung:
Build started 9.6.2014 at 09:58:15
mmcu=atmega8 -Wall -gdwarf-2 -Os -std=gnu99 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT Ultraschall_1.o -MF dep/Ultraschall_1.o.d -c ../Ultraschall_1.c
/usr/bin/sh: -Wall: command not found
make: [Ultraschall_1.o] Error 127 (ignored)
mmcu=atmega8 -Wl,-Map=Ultraschall_1.map Ultraschall_1.o -o Ultraschall_1.elf
/usr/bin/sh: -Wl,-Map=Ultraschall_1.map: command not found
make: [Ultraschall_1.elf] Error 127 (ignored)
avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature Ultraschall_1.elf Ultraschall_1.hex
avr-objcopy: 'Ultraschall_1.elf': No such file
make: *** [Ultraschall_1.hex] Error 1
Build failed with 1 errors and 0 warnings...

was fehlt dem Teil???

- - - Aktualisiert - - -

wie kann ich eigentlich Dateien als Anhänge hochladen?

Valen
12.06.2014, 11:57
...und das ist meine Fehlermeldung:
Build started 9.6.2014 at 09:58:15
mmcu=atmega8 -Wall -gdwarf-2 -Os -std=gnu99 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT Ultraschall_1.o -MF dep/Ultraschall_1.o.d -c ../Ultraschall_1.c
/usr/bin/sh: -Wall: command not found
...
was fehlt dem Teil???
Es versteht "-Wall" nicht. Vielleicht soll dort ein Leerzeichen zwischen stehen. Ich bin aber nicht so bekannt mit WinAVR unter Linux/Unix.




- - - Aktualisiert - - -

wie kann ich eigentlich Dateien als Anhänge hochladen?Erweiterte Antwort Bearbeitung. Und dann unten bei Anhänge die Knopf "Anhänge verwalten".

Spacy Bar
14.06.2014, 10:38
Dein Code hat auch ein paar Fehler: Bei Init() darf kein Leerzeichen drin sein und du musst erst while(1); reinschreiben dann return 0; .
Hoffe geholfen zu haben!
LG
Spacy Bar