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

[c][Eclipse Indigo] - "F_CPU" redefined [enabled by default]

22 Lut 2013 22:43 3036 18
REKLAMA
  • #1 11973109
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • Pomocny post
    #2 11973169
    Maxikas
    Poziom 11  
    Jeśli w kodzie programu definiowałeś już F_CPU to wywal to, ustaw we właściwościach projektu odpowiednią częstotliwość, później klikając na projekcie z lewej daj "clean project" i spróbuj skompilować go na nowo.
  • Pomocny post
    #3 11973244
    mickpr
    Poziom 39  
    Wywal deklaracje F_CUP (czy też F_CPU) z kodu. Ustaw tylko Properties->AVR->TargetHardware->MCU Clock Frequency
    Sprawdź też czy nie masz zaznaczonego checkbox'a (jak masz to odznacz)
    Properties->C++Build->Settings->Tools Settings->AVR Compiller->Symbols->Omit F_CPU.
  • REKLAMA
  • #4 11973647
    Konto nie istnieje
    Konto nie istnieje  
  • #5 11973649
    McMonster
    Poziom 32  
    Wyczyść projekt, skompiluj i pokaż wyjście z okna konsoli wraz z kodem.
  • #6 11973679
    Konto nie istnieje
    Konto nie istnieje  
  • #7 11973800
    mickpr
    Poziom 39  
    cezary_888 napisał:
    Rebuilding selected file(s)
    Zrób 'clean' i potem 'Build all' (tylko 1 projekt niech będzie otwarty). Potem podaj nam wyjście z konsoli.

    Czy optymizacja jest WŁĄCZONA (musi być włączona, żeby _dealy_ms działało)

    Czy wybrana wartość częstotliwości MCU w fusebitach i zdefiniowana F_CPU są zgodne?
  • REKLAMA
  • #8 11973932
    Konto nie istnieje
    Konto nie istnieje  
  • #9 11973960
    mickpr
    Poziom 39  
    cezary_888 napisał:
    A jak sprawdzić/włączyć optymalizację?
    Properties->C++Build->Settings->Tools Settings->AVR Compiler->Optimization->Optimization Level.

    I jeszcze jedno. Ja wiem, że ty chcesz sobie sprawdzić po prostu delay'a, ale (na przyszłość) przy takich opóźnieniach lepiej byłoby zastosować timer z jakimś krokiem (powiedzmy 0.5 sek) i prostą maszynę stanów.
    Tutaj fajny opis: http://ep.com.pl/files/1436.pdf
  • #10 11981755
    Konto nie istnieje
    Konto nie istnieje  
  • #11 12037893
    Konto nie istnieje
    Konto nie istnieje  
  • #12 12113733
    mickpr
    Poziom 39  
    Tak (z marszu) - domniemując, że to ATMEGA162...
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    TCCR2 nie ma takich bitów jak WGM01, WGM00, COM01 i CS00
    Spójrz w datasheet, popraw nazwy bitów.
  • REKLAMA
  • #13 12114718
    Konto nie istnieje
    Konto nie istnieje  
  • #14 12115690
    mickpr
    Poziom 39  
    Teraz pokaż fusebity. Bit CLKOUT na co wskazuje?
    A odnośnie nomenklatury nazw bitów - popraw. To, że w tym przypadku OCCR2 ma bity (o tym samym znaczeniu w takim samym miejscu jak OCCR0) - nie oznacza, że poprawniej jest używać jego odpowiedników - a więc: WGM21, WGM20, COM21 i CS20
    Uwierz mi - mam rację.
    Może to nie robi teraz różnicy, ale jak będziesz zgłębiał kolejne mikrokontolery możesz nie mieć takiego szczęścia.
    Zawsze warto czytać datasheet.
  • #15 12116162
    Konto nie istnieje
    Konto nie istnieje  
  • #16 12116285
    dondu
    Moderator na urlopie...
    Drobna uwaga:

    mickpr napisał:
    Przeczytaj to:
    http://www.nongnu.org/avr-libc/user-manual/group__util__delay.html
    (The maximal possible delay is 262.14 ms / F_CPU in MHz.).
    U ciebie jest 500/1000 co jest za dużo.

    Nie jest za dużo, ponieważ może aż do 6.5 sekundy, o czym pisze w zdaniu poniżej tego, które zacytowałeś:

    Cytat:
    When the user request delay which exceed the maximum possible one, _delay_ms() provides a decreased resolution functionality. In this mode _delay_ms() will work with a resolution of 1/10 ms, providing delays up to 6.5535 seconds (independent from CPU frequency). The user will not be informed about decreased resolution.


    A w bibliotece jest tak:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Więcej: http://mikrokontrolery.blogspot.com/2011/04/gcc-avr-funkcje-opoznienia-delay.html
  • #17 12179109
    Konto nie istnieje
    Konto nie istnieje  
  • #18 12179220
    mickpr
    Poziom 39  
    cezary_888 napisał:
    i nadal jest złe wskazanie :/
    Rozwiń trochę tą myśl. Kod działa/nie działa/nie kompiluje się?
  • #19 12179559
    Konto nie istnieje
    Konto nie istnieje  
REKLAMA