Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Delay_ms złe opóźnienia eclipse + toolchain atmelowy

Mlody_XX0 15 Gru 2011 23:08 1782 4
  • #1 15 Gru 2011 23:08
    Mlody_XX0
    Poziom 11  

    Witam mam problem z opóźnieniami w programie. Za nic świecie nie mogę oprogramować wyświetlacza kompatybilnego ze sterownikiem HD44780 (Wincom wc1602A). Za pomocą środowiska Codevision, wyświetlacz działa idealnie. Ale chce używać eclipse, bo jest fajne, i darmowe i ma intelisense.
    Ustawienia:
    Delay_ms złe opóźnienia eclipse + toolchain atmelowy


    Delay_ms złe opóźnienia eclipse + toolchain atmelowy

    Uploaded with ImageShack.us

    Delay_ms złe opóźnienia eclipse + toolchain atmelowy

    Uploaded with ImageShack.us

    Eclipse Ganymede + wtyczka AVR + atmega toolchain 3.2.3 .
    Procesor Atmega 644P kwarc 16Mhz.

    Próbowałem najnowsze WinAvr podczepić do Eclipsa ale nawet nie wyświetla mi przy tworzeniu nowego projektu dostępnych procesorów do wyboru. Kiedy wejdę w properties projektu w enviroments zawsze defaultowo pokazuje Atmega 16. A po podłączeniu toolchaina na starcie wybieram procesor i prędkość, i potem w enviroments wszystko mam.



    Przedstawiam makefile jaki mi się generuje :

    Code:
    ################################################################################
    
    # Automatically-generated file. Do not edit!
    ################################################################################

    -include ../makefile.init

    RM := rm -rf

    # All of the sources participating in the build are defined here
    -include sources.mk
    -include subdir.mk
    -include objects.mk

    ifneq ($(MAKECMDGOALS),clean)
    ifneq ($(strip $(C_DEPS)),)
    -include $(C_DEPS)
    endif
    ifneq ($(strip $(ASM_DEPS)),)
    -include $(ASM_DEPS)
    endif
    ifneq ($(strip $(S_DEPS)),)
    -include $(S_DEPS)
    endif
    ifneq ($(strip $(S_UPPER_DEPS)),)
    -include $(S_UPPER_DEPS)
    endif
    endif

    -include ../makefile.defs

    # Add inputs and outputs from these tool invocations to the build variables
    LSS += \
    wyswietlaczlcd.lss \

    FLASH_IMAGE += \
    wyswietlaczlcd.hex \

    EEPROM_IMAGE += \
    wyswietlaczlcd.eep \

    SIZEDUMMY += \
    sizedummy \


    # All Target
    all: wyswietlaczlcd.elf secondary-outputs

    # Tool invocations
    wyswietlaczlcd.elf: $(OBJS) $(USER_OBJS)
       @echo 'Building target: $@'
       @echo 'Invoking: AVR C Linker'
       avr-gcc -Wl,-Map,wyswietlaczlcd.map -mmcu=atmega644p -o"wyswietlaczlcd.elf" $(OBJS) $(USER_OBJS) $(LIBS)
       @echo 'Finished building target: $@'
       @echo ' '

    wyswietlaczlcd.lss: wyswietlaczlcd.elf
       @echo 'Invoking: AVR Create Extended Listing'
       -avr-objdump -h -S wyswietlaczlcd.elf  >"wyswietlaczlcd.lss"
       @echo 'Finished building: $@'
       @echo ' '

    wyswietlaczlcd.hex: wyswietlaczlcd.elf
       @echo 'Create Flash image (ihex format)'
       -avr-objcopy -R .eeprom -O ihex wyswietlaczlcd.elf  "wyswietlaczlcd.hex"
       @echo 'Finished building: $@'
       @echo ' '

    wyswietlaczlcd.eep: wyswietlaczlcd.elf
       @echo 'Create eeprom image (ihex format)'
       -avr-objcopy -j .eeprom --no-change-warnings --change-section-lma .eeprom=0 -O ihex wyswietlaczlcd.elf  "wyswietlaczlcd.eep"
       @echo 'Finished building: $@'
       @echo ' '

    sizedummy: wyswietlaczlcd.elf
       @echo 'Invoking: Print Size'
       -avr-size --format=avr --mcu=atmega644p wyswietlaczlcd.elf
       @echo 'Finished building: $@'
       @echo ' '

    # Other Targets
    clean:
       -$(RM) $(OBJS)$(C_DEPS)$(ASM_DEPS)$(EEPROM_IMAGE)$(FLASH_IMAGE)$(ELFS)$(LSS)$(S_DEPS)$(SIZEDUMMY)$(S_UPPER_DEPS) wyswietlaczlcd.elf
       -@echo ' '

    secondary-outputs: $(LSS) $(FLASH_IMAGE) $(EEPROM_IMAGE) $(SIZEDUMMY)

    .PHONY: all clean dependents
    .SECONDARY:

    -include ../makefile.targets


    Makefile jest generowany przez toolchain atmelowy. Jak widać model jest tu idealnie napisany, ale nie ma żadnej wzmianki o prędkości procesora.

    Być może coś nie ustawiłem, a być może nie umiem konfigurować środowiska eclipse, lub jakiejś zmiennej systemowej brakuje, lub toolchain najnowszy ma jakieś wady. Jestem początkujący.
    Nie lubie Avr studio 5, nt. Codevision jest zbyt przebajerzony. Te wszelkie tutoriale w necie, polegają na wgraniu winavr i wtyczki eclipse, i jakimś cudem im wszystko działa. Ale to chyba nie takie proste. bo gdyby było, to działoby mi wszystko.



    A gdy ustawie zamiast atmel toolchain - WinAVR-20100110 to mam takie coś:

    Delay_ms złe opóźnienia eclipse + toolchain atmelowy

    Uploaded with ImageShack.us

    0 4
  • #2 16 Gru 2011 00:11
    michalko12
    Specjalista - Mikrokontrolery

    Mlody_XX0 napisał:
    ale nie ma żadnej wzmianki o prędkości procesora

    Wzmianki o prędkości procesora nie ma, ale są wzmianki o innych includowanych plikach.

    0
  • #3 16 Gru 2011 00:35
    Mlody_XX0
    Poziom 11  

    michalko12
    plik subdir.mk:

    Code:
    ################################################################################
    
    # Automatically-generated file. Do not edit!
    ################################################################################

    # Add inputs and outputs from these tool invocations to the build variables
    C_SRCS += \
    ../main.c \
    ../test.c

    OBJS += \
    ./main.o \
    ./test.o

    C_DEPS += \
    ./main.d \
    ./test.d


    # Each subdirectory must supply rules for building sources it contributes
    %.o: ../%.c
       @echo 'Building file: $<'
       @echo 'Invoking: AVR Compiler'
       avr-gcc -Wall -O0 -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega644p -DF_CPU=16000000UL -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -c -o"$@" "$<"
       @echo 'Finished building: $<'
       @echo ' '



    Czyli taktowanie jest OK ?
    Ale jak zrobić żeby Eclipse z WinAvr a nie z atmel toolchain współgrał. I oczywiście prawidłowo współgrał.

    0
  • #5 16 Gru 2011 15:06
    Mlody_XX0
    Poziom 11  

    Panie Janie. Jakby mi tak o ruszyło jak w tym filmiku jest podane, to nie prosiłbym o pomoc :)

    0