Archiv verlassen und diese Seite im Standarddesign anzeigen : Include ultrasonic.h
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
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
Hast du die Ultraschallplatiene?
Funktioniert sie bei dir einwandfrei?
MFG
Befindet sich die ultrasonic.h im selben verzeichnis wie deine test.c und ist die ultrasonic.c auch im makefile eingetragen ?
ne die ultrasonics sind zusammen aber die test ist im firsttry ordner.
Soll ich alles in denn firsttry ordner kopieren?
Könntest du zumindest mal zum testen machen. Und nicht vergessen den richtigen Pfad im makefile anzugeben
ich benutze den Programmers Notpad 2
ist das ein problem des müsst doch auch mit dem gehen?
Aber auch dem Programmers Notepad 2 wirst du sagen müssen, woher er die Files nehmen soll.
Das ist doch des wo man im Makefile den pfad angibt oder?
#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
Dann poste mal dein Makefile wie radbruch dich schon zig posts davor gebeten hat.
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
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?
...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
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.