logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[M328P] Jak poprawnie ustawić F_CPU w AS6.1 dla M328P? Ignorowanie definicji F_CPU

excray 10 Maj 2014 12:57 1269 6
  • #1 13587179
    excray
    Poziom 41  
    Witam. Mam problem z ustawieniem F_CPU w AS6.1. Wpisuję według instrukcji z tej strony:
    http://mikrokontrolery.blogspot.com/2011/03/fcpu-gcc-gdzie-definiowac.html
    i tej:
    http://extremeelectronics.co.in/lfrm8/Help/AS6.htm
    W polu Symbols umieszczałem F_CPU=8000000 jak i F_CPU=8000000UL. Mimo kompilacji "Build Solution" cały czas dostaję ostrzeżenie o braku definicji F_CPU i domyślna częstotliwość zostaje ustawiona na 1MHz. Czy ktoś zna rozwiązanie tego problemu i zechce się nim podzielić? Pozdrawiam.
  • Pomocny post
    #2 13587398
    piotrva
    VIP Zasłużony dla elektroda
    Niestety nie mam takiego problemu przy w.w. komplecie hw i ide.
    Pokaż program itp. - może któryś plik nagłówkowy coś miesza...
  • #4 13587438
    excray
    Poziom 41  
    Wgrałem 6.2 ale problem występuje nadal.
    [M328P] Jak poprawnie ustawić F_CPU w AS6.1 dla M328P? Ignorowanie definicji F_CPU
    ------ Build started: Project: M328 TEST, Configuration: Debug AVR ------
    Build started.
    Project "M328 TEST.cppproj" (default targets):
    Target "PreBuildEvent" skipped, due to false condition; ('$(PreBuildEvent)'!='') was evaluated as (''!='').
    Target "CoreBuild" in file "C:\Program Files\Atmel\Atmel Studio 6.2\Vs\Compiler.targets" from project "D:\Engineering\AVR\!!!PROJEKTY AS6\M328 TEST\M328 TEST\M328 TEST.cppproj" (target "Build" depends on it):
    Using "RunCompilerTask" task from assembly "C:\Program Files\Atmel\Atmel Studio 6.2\Extensions\Application\AvrGCC.dll".
    Task "RunCompilerTask"
    Shell Utils Path C:\Program Files\Atmel\Atmel Studio 6.2\shellUtils
    C:\Program Files\Atmel\Atmel Studio 6.2\shellUtils\make.exe all
    Building file: .././M328 TEST.cpp
    Invoking: AVR8/GNU C Compiler : 4.8.1
    "C:\Program Files\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1051\avr8-gnu-toolchain\bin\avr-g++.exe" -funsigned-char -funsigned-bitfields -DDEBUG -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -c -MD -MP -MF "M328 TEST.d" -MT"M328 TEST.d" -MT"M328 TEST.o" -o "M328 TEST.o" ".././M328 TEST.cpp"
    In file included from .././M328 TEST.cpp:12:0:
    c:\program files\atmel\atmel toolchain\avr8 gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay.h(90,3): #warning "F_CPU not defined for <util/delay.h>" [-Wcpp]
    # warning "F_CPU not defined for <util/delay.h>"
    ^
    Finished building: .././M328 TEST.cpp
    Building target: M328 TEST.elf
    Invoking: AVR8/GNU Linker : 4.8.1
    "C:\Program Files\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1051\avr8-gnu-toolchain\bin\avr-g++.exe" -o "M328 TEST.elf" "M328 TEST.o" -Wl,-Map="M328 TEST.map" -Wl,--start-group -Wl,-lm -Wl,--end-group -Wl,--gc-sections -mmcu=atmega328p
    Finished building target: M328 TEST.elf
    "C:\Program Files\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1051\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O ihex -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "M328 TEST.elf" "M328 TEST.hex"
    "C:\Program Files\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1051\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 "M328 TEST.elf" "M328 TEST.eep" || exit 0
    "C:\Program Files\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1051\avr8-gnu-toolchain\bin\avr-objdump.exe" -h -S "M328 TEST.elf" > "M328 TEST.lss"
    "C:\Program Files\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1051\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O srec -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "M328 TEST.elf" "M328 TEST.srec"
    "C:\Program Files\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1051\avr8-gnu-toolchain\bin\avr-size.exe" "M328 TEST.elf"
    text data bss dec hex filename
    168 0 0 168 a8 M328 TEST.elf
    Done executing task "RunCompilerTask".
    Using "RunOutputFileVerifyTask" task from assembly "C:\Program Files\Atmel\Atmel Studio 6.2\Extensions\Application\AvrGCC.dll".
    Task "RunOutputFileVerifyTask"
    Program Memory Usage : 168 bytes 0,5 % Full
    Data Memory Usage : 0 bytes 0,0 % Full
    Done executing task "RunOutputFileVerifyTask".
    Done building target "CoreBuild" in project "M328 TEST.cppproj".
    Target "PostBuildEvent" skipped, due to false condition; ('$(PostBuildEvent)' != '') was evaluated as ('' != '').
    Target "Build" in file "C:\Program Files\Atmel\Atmel Studio 6.2\Vs\Avr.common.targets" from project "D:\Engineering\AVR\!!!PROJEKTY AS6\M328 TEST\M328 TEST\M328 TEST.cppproj" (entry point):
    Done building target "Build" in project "M328 TEST.cppproj".
    Done building project "M328 TEST.cppproj".

    Build succeeded.
    ========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Diody oczywiście migają 8 razy za szybko.
  • Pomocny post
    #5 13587460
    grko
    Poziom 33  
    Kompilujesz plik *.cpp więc ten symbol zdefiniuj w zakładce "AVR/GNU C++ Compiler -> Symbols"
  • Pomocny post
    #6 13587500
    tmf
    VIP Zasłużony dla elektroda
    No właśnie - pytanie czy na pewno chcesz tworzyć plik zawierający kod C++? Przy okazji ptencjalny problem - staram się unikać spacji w nazwach. Nie zawsze działa to poprawnie. A definicja symbolu powinna być w zakładce związanej z C++ (o ile rzeczywiście tworzysz projekt w C++). Jak widać przy wywołaniu avr-g++ kompilator nie dostaje symbolu -DF_CPU, stąd problem.
  • #7 13587507
    excray
    Poziom 41  
    Rzeczywiście, zabrakło mi czytania ze zrozumieniem. Dziękuję wszystkim za pomoc.
REKLAMA