- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 10 von 28

Thema: RC5 Code von Roboternetz geht nicht

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter-Spezialist Avatar von steveLB
    Registriert seit
    24.10.2005
    Beiträge
    481
    Der Code scheint ok zu sein. ich benutzte aber SIGNAL und include

    // Für alte avr-gcc Versionen
    #ifndef SIGNAL
    #include <avr/signal.h>
    #endif // SIGNAL

    Die Schaltung selber könnte es noch sein, oder falls du ein makefile z.B. bei Programmer Notepad [Win avr] benutzt, das du hier dein rc5.c nicht eingefügt hast
    # List C source files here. (C dependencies are automatically generated.)
    SRC = $(TARGET).c lcd.c rc5.c

    was ich noch gesehen habe in deiner obigen rc5.h steht

    #endif /* _RC5_H_ */ [/c]

    was soll das [/c] ?
    Geändert von steveLB (31.08.2013 um 14:29 Uhr)
    [X] <-- Nail here for new Monitor

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    30.08.2013
    Beiträge
    9
    das "// Für alte avr-gcc Versionen
    #ifndef SIGNAL
    #include <avr/signal.h>
    #endif // SIGNAL"
    habe ich herausgenommen weils ja nichtmehr benötigt wird.

    und das "[/c]" stammt aus dem forum post und gehört nich zum code

    Ich arbeite mit dem Atmel Studio der neusten generation, dachte das makefile wird automatisch generiert-sieht auch so aus als währen die Datein geliste im makefile.
    Oder muss ich etwa doch noch deine "source file" deklaration mit reinnehmen? Wenn ja in die makefile oder makedept?

  3. #3
    Erfahrener Benutzer Roboter-Spezialist Avatar von steveLB
    Registriert seit
    24.10.2005
    Beiträge
    481
    hm, ich benutzte AVR studio nur zum überspielen der hex. Ich hab das AVR Studiu nicht mehr benutzt weil ich damals probleme hatte andere .c und .h datein mit einzubinden, ich glaub sogar mit der rc5 wenn ich mich recht erinnere, seit dem benutz ich nur noch programmers notepad win avr.
    Kurzzeitig habe ich es gelöst indem ich alles aus der rc5 .c und .h in die main copiert und angepasst habe.

    Villeicht hast du auch kein rechtsklick auf "Source Files " gemacht und "add existing sourcefiles" ausgewählt, um das rc5.c einzufügen.

    Lies auch mal folgende Beiträge:
    http://www.mikrocontroller.net/topic/263951
    http://www.mikrocontroller.net/topic/137661
    http://www.mikrocontroller.net/artic...e_ich_damit.3F
    [X] <-- Nail here for new Monitor

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    30.08.2013
    Beiträge
    9
    Ich denke eingebunden habe ich die dateien richtig. Es werden auch im debugg ordner makefile / rc5.o und GccApllication.o und natürlich die GccApllication.hex erzeugt.
    Allerdings wenn ich mir die Grafik auf der seite deines letzten Links angucke, glaube ich das da eine *.a datei fehlt? Muss von der rc5.h eine rc5.a datei durchs compilieren erstellt werden?

    Und ob ich noch etwas ins makefile eintrage muss ist mir auch unschlüssig. habe diesbezüglich 2 dateien:

    makefile:

    Code:
    ################################################################################
    # Automatically-generated file. Do not edit!
    ################################################################################
    
    SHELL := cmd.exe
    RM := rm -rf
    
    USER_OBJS :=
    
    LIBS := 
    PROJ := 
    
    O_SRCS := 
    C_SRCS := 
    S_SRCS := 
    S_UPPER_SRCS := 
    OBJ_SRCS := 
    ASM_SRCS := 
    PREPROCESSING_SRCS := 
    OBJS := 
    OBJS_AS_ARGS := 
    C_DEPS := 
    C_DEPS_AS_ARGS := 
    EXECUTABLES := 
    OUTPUT_FILE_PATH :=
    OUTPUT_FILE_PATH_AS_ARGS :=
    AVR_APP_PATH :=$$$AVR_APP_PATH$$$
    QUOTE := "
    ADDITIONAL_DEPENDENCIES:=
    OUTPUT_FILE_DEP:=
    LIB_DEP:=
    
    # Every subdirectory with source files must be described here
    SUBDIRS := 
    
    
    # Add inputs and outputs from these tool invocations to the build variables 
    C_SRCS +=  \
    ../GccApplication2.c \
    ../rc5.c
    
    
    PREPROCESSING_SRCS += 
    
    
    ASM_SRCS += 
    
    
    OBJS +=  \
    GccApplication2.o \
    rc5.o
    
    OBJS_AS_ARGS +=  \
    GccApplication2.o \
    rc5.o
    
    C_DEPS +=  \
    GccApplication2.d \
    rc5.d
    
    C_DEPS_AS_ARGS +=  \
    GccApplication2.d \
    rc5.d
    
    OUTPUT_FILE_PATH +=GccApplication2.elf
    
    OUTPUT_FILE_PATH_AS_ARGS +=GccApplication2.elf
    
    ADDITIONAL_DEPENDENCIES:=
    
    OUTPUT_FILE_DEP:= ./makedep.mk
    
    LIB_DEP+= 
    
    # AVR32/GNU C Compiler
    
    
    
    
    
    ./%.o: .././%.c
    	@echo Building file: $<
    	@echo Invoking: AVR/GNU C Compiler : 3.4.2
    	$(QUOTE)D:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.1002\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE)  -funsigned-char -funsigned-bitfields -DDEBUG  -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega8 -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)"   -o "$@" "$<"
    	@echo Finished building: $<
    	
    
    
    
    # AVR32/GNU Preprocessing Assembler
    
    
    
    # AVR32/GNU Assembler
    
    
    
    
    ifneq ($(MAKECMDGOALS),clean)
    ifneq ($(strip $(C_DEPS)),)
    -include $(C_DEPS)
    endif
    endif
    
    # Add inputs and outputs from these tool invocations to the build variables 
    
    # All Target
    all: $(OUTPUT_FILE_PATH) $(ADDITIONAL_DEPENDENCIES)
    
    $(OUTPUT_FILE_PATH): $(OBJS) $(USER_OBJS) $(OUTPUT_FILE_DEP) $(LIB_DEP)
    	@echo Building target: $@
    	@echo Invoking: AVR/GNU Linker : 3.4.2
    	$(QUOTE)D:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.1002\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map="GccApplication2.map" -Wl,--start-group -Wl,-lm  -Wl,--end-group -Wl,--gc-sections -mmcu=atmega8 
    	@echo Finished building target: $@
    	"D:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.1002\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O ihex -R .eeprom -R .fuse -R .lock -R .signature  "GccApplication2.elf" "GccApplication2.hex"
    	"D:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.1002\avr8-gnu-toolchain\bin\avr-objcopy.exe" -j .eeprom  --set-section-flags=.eeprom=alloc,load --change-section-lma .eeprom=0  --no-change-warnings -O ihex "GccApplication2.elf" "GccApplication2.eep" || exit 0
    	"D:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.1002\avr8-gnu-toolchain\bin\avr-objdump.exe" -h -S "GccApplication2.elf" > "GccApplication2.lss"
    	"D:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.1002\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O srec -R .eeprom -R .fuse -R .lock -R .signature  "GccApplication2.elf" "GccApplication2.srec"
    	"D:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.1002\avr8-gnu-toolchain\bin\avr-size.exe" "GccApplication2.elf"
    	
    	
    
    
    
    
    
    # Other Targets
    clean:
    	-$(RM) $(OBJS_AS_ARGS) $(EXECUTABLES)  
    	-$(RM) $(C_DEPS_AS_ARGS)   
    	rm -rf "GccApplication2.elf" "GccApplication2.a" "GccApplication2.hex" "GccApplication2.lss" "GccApplication2.eep" "GccApplication2.map" "GccApplication2.srec"
    und eine makedep.mk mit folgendem inhalt:

    Code:
    ################################################################################
    # Automatically-generated file. Do not edit or delete the file
    ################################################################################
    
    GccApplication2.c
    
    rc5.c

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.08.2008
    Ort
    DE
    Beiträge
    523
    Der Code scheint ok zu sein. ich benutzte aber SIGNAL und include

    // Für alte avr-gcc Versionen
    #ifndef SIGNAL
    #include <avr/signal.h>
    #endif // SIGNAL
    Das hat man nicht grundlos entfernt. Dieses Signal war unpassend von der Namensgebung und andere Compiler verwenden auch ISR. Dadurch ergibt sich bessere portabilität. Also Signal bitte nicht mehr nutzen!!

    dachte das makefile wird automatisch generiert-sieht auch so aus als währen die Datein geliste im makefile.
    Wird auch automatisch erstellt. An den Dateien nichts ändern!! Dadurch machst du es nur noch schlimmer!


    Wie siehts denn aktuell aus? Kurzes Update, da die letzten Posts doch etwas wirr waren.

    mfg

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    30.08.2013
    Beiträge
    9
    Akueller Status:

    Ich kann alles compilieren und passende dateien wurden erstellt.
    Doch nach überspielen des .hex file, reagiert der Atmega8 auf keinen Tastendruck der fernbediehnung.

    Kann es sein das die rc5.h nicht richtig eingebuden ist wenn sie nirgend im makefile erwähnt wird? Die andern beiden Dateien stehen drinn!
    Ich hab die rc5.h zwar im solution exporer und im selbigen ordner wie die .c dateien, jeddoch nichts im release ordner wo die fertig compilierten sachen stehen, bzw auch nichts im makefile von der .h zu sehen...

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.08.2008
    Ort
    DE
    Beiträge
    523
    Kann es sein das die rc5.h nicht richtig eingebuden ist wenn sie nirgend im makefile erwähnt wird?
    Da in einem Headerfile kein Quellcode zum kompilieren steht, gibts auch kein Kompilat.

    Schließ mal ne LED am Port B an und in der INT0 ISR setzt du dann den Port auf Output. Wenn die LED nach einem Tastendruck leuchtet, dann funktionieren schon mal die Interrupts korrekt und der Fehler liegt wo anders.

    mfg

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests