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

Attiny2313 AVR Studio 5 nie dział faunkcja _delay_ms();

wojtek8-7 28 Sie 2011 18:03 2962 21
  • #1 9872071
    wojtek8-7
    Poziom 13  
    Witam.

    Próbuję napisać prosty program na Attiny2313:

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

    Niestety program się kompiluje bez problemu ale diody podłączone do portu B nie zapalają się. Niezależnie od wpisanego parametru funkcji delay. Funkcje _delay_ms() palą się dziwnie na czerwono ale nie wiem dlaczego i co to oznacza. Czy spotkał się ktoś z podobnym problemem i wie jak to rozwiązać?
  • #2 9872097
    omicronNs
    Poziom 21  
    #define F_CPU daj nad #include <util/delay.h>, a najlepiej zadeklaruj F_CPU w ustawieniach projektu
  • #3 9872116
    dondu
    Moderator na urlopie...
    Twój problem leży w tym, że ignorujesz warningi. Kompilator informuje Ciebie, a Ty nie zwracasz na to uwagi: http://mikrokontrolery.blogspot.com/2011/04/bledy-kompilacji-programu.html

    Gdybyś zwrócił uwagę zauważyłbyś że czepia się deklaracji F_CPU, i nie musiałbyś tworzyć tematu na forum i tracić czasu.
  • #4 9872117
    wojtek8-7
    Poziom 13  
    tak też próbowałem i nic to nie dało...
  • #5 9872121
    gaskoin
    Poziom 38  
    Nie wierzę, że kompilacja przebiega tak całkiem bez problemów. Pokaż log z kompilacji.
  • #6 9872156
    mirekk36
    Poziom 42  
    wojtek8-7 napisał:
    Funkcje _delay_ms() palą się dziwnie na czerwono ale nie wiem dlaczego i co to oznacza.


    I bardzo dobrze, że się palą, sam po prostu prosisz się o kłopoty niestety :( A ciut wcześniej piszesz, że kompilacja przebiega bez problemu. To dlaczego się palą? ;)

    Mnóstwo osób szczególnie w AVR Studio5. Które jako takie - nie jest może winne samo w sobie, bo jak pisali poprzednicy jest sposób aby zadeklarować F_CPU ale niestety nie w ustawieniach projektu tak jak to było dobrze w starszej wersji AVR Studio 4.xxx

    Jednak nie tylko takie niespodzianki cię spotkają gdy nadal będziesz się użerał z AVRS5....

    wojtek8-7 napisał:
    Czy spotkał się ktoś z podobnym problemem i wie jak to rozwiązać?


    Rozwiązanie jest proste jak drut. Albo wróć do AVR Studio 4.xx i tam normalnie w opcjach projektu wprowadzisz taktowanie procka a środowisko samo już zadba o to aby trafiło to jako parametr do makefile albo jeszcze inne i lepsze nawet rozwiązanie. Zacznij korzystać z ECLIPSE - to pozbędziesz się problemów raz na zawsze a w zamian będziesz miał profesjonalne środowisko programistyczne. Polecam.
  • #7 9872164
    wojtek8-7
    Poziom 13  
    dondu napisał:
    Twój problem leży w tym, że ignorujesz warningi. Kompilator informuje Ciebie, a Ty nie zwracasz na to uwagi: http://mikrokontrolery.blogspot.com/2011/04/bledy-kompilacji-programu.html

    Gdybyś zwrócił uwagę zauważyłbyś że czepia się deklaracji F_CPU, i nie musiałbyś tworzyć tematu na forum i tracić czasu.


    Jak wg Ciebie powinienem zadeklarować F_CPU? Próbowałem również definiować F_CPU w pierwszej linijce kodu ale to nie pomogło. Próbowałem w pierwszej linijce, trzeciej i w jeszcze kilku miejscach i to nie pomogło, a na forum wstawiłem którąś tam wersję po próbach dlatego F_CPU jest w 3 linijce, normalnie jest w pierwszej.
  • #8 9872171
    dondu
    Moderator na urlopie...
    Podałem Ci link w którym jest wszystko ładnie opisane wraz z przykładem.
    a kol. gaskoin poprosił Ciebie o log (komunikaty kompilacji - wszystkie) więc je pokaż.

    A swoją drogą Eclipse Rulez!
    choć moim zdaniem nie oznacza to, że od razu trzeba AS5 wywalać do kosza.
  • #9 9872199
    wojtek8-7
    Poziom 13  
    F_CPU definiowałem również w opcjach projektu, próbowałem w różnych miejscach zdefiniować F_CPU. Domyślam się że problem jest gdzieś z F_CPU i dlatego kombinowałem z różnymi kombinacjami, w makefile też zmieniałem i nic. Dlatego napisałem na forum bo myślałem że może ktoś się spotkał z podobnym problemem.

    Attiny2313 AVR Studio 5 nie dział faunkcja _delay_ms();
  • #10 9872205
    dondu
    Moderator na urlopie...
    No to gdzie to się dzieje?:

    wojtek8-7 napisał:
    Niezależnie od wpisanego parametru funkcji delay. Funkcje _delay_ms() palą się dziwnie na czerwono ale nie wiem dlaczego i co to oznacza. Czy spotkał się ktoś z podobnym problemem i wie jak to rozwiązać?

    To w czym właściwie jest problem?
    Gdzie "palą się na czerwono"?

    Poza tym czy to jest na pewno log po kompilacji?
  • #11 9872235
    wojtek8-7
    Poziom 13  
    dondu napisał:
    No to gdzie to się dzieje?:

    wojtek8-7 napisał:
    Niezależnie od wpisanego parametru funkcji delay. Funkcje _delay_ms() palą się dziwnie na czerwono ale nie wiem dlaczego i co to oznacza. Czy spotkał się ktoś z podobnym problemem i wie jak to rozwiązać?

    To w czym właściwie jest problem?
    Gdzie "palą się na czerwono"?

    Poza tym czy to jest na pewno log po kompilacji?


    Dlatego zrobiłem screena żeby było widać kolory. _delay_ jest na czerwono i nie wiem czy to jest normalny kolor czy kolor jakiegoś błędu. AS5 mam od niedawna i od początku jest taki problem.

    Problem jest z tym że program ze screena nie działa.

    Od razu dodam uprzedzając oskarżenia procesor, programator, kable, wszystko działa, nie ma żadnego problemu pod AS4


    Attiny2313 AVR Studio 5 nie dział faunkcja _delay_ms();
  • #12 9872246
    dondu
    Moderator na urlopie...
    :D:D:D:D
    Oj bardzo początkujęcy jesteś - to kolorowanie składni, by łatwiej kod analizować było :D:D:D:
    Wybacz - ale to najfajniejszy temat miesiąca - bez urazy :D:D:D

    No, ale każdy kiedyś zaczynał - ja także.

    Gdybyś użył w poście znacznika SYNTAX, na forum także kolory by były:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • #13 9872254
    omicronNs
    Poziom 21  
    main też masz w tym kolorze, a jakoś ci to nie przeszkadza.
  • #14 9872257
    wojtek8-7
    Poziom 13  
    Ciesze się że temat was bawi ale dlaczego program nie działa? Przypomniało mi się z różnymi optymalizacjami kodu też próbowałem.
  • #15 9872267
    xamrex
    Poziom 28  
    Kolor czerwony w delay_ms nie oznacza warnigna czy errora, to jest po prostu kolorowanie składni.

    Wg.mnie problem leży w kompilacji.
    Porównaj pliki hex, z kompilacji pod środowiskiem AVRStudio 4 i AVRStudio 5(tu wybierz opcję RELASE)

    A gdzie leży błąd?
    Masz pewnie tak jak na obrazku:
    Attiny2313 AVR Studio 5 nie dział faunkcja _delay_ms();
    a zamiast Debug ma być relase
  • #17 9872319
    Wojtek75
    Poziom 24  
    Pewne sobie optymalizacji nie włączył.
  • #19 9872335
    Wojtek75
    Poziom 24  
    Niech pokaże gdzie te opcje optymalizacji zmienia.
  • #20 9872345
    wojtek8-7
    Poziom 13  
    dondu napisał:

    Co to znaczy nie działa - jakie są objawy?


    wojtek8-7 napisał:

    ...
    Niestety program się kompiluje bez problemu ale diody podłączone do portu B nie zapalają się...


    Wojtek75 napisał:
    Niech pokaże gdzie te opcje optymalizacji zmienia.


    Zmieniał optymalizacje w opcjach programu
  • Pomocny post
    #21 9872378
    xamrex
    Poziom 28  
    Jeśli pod AVRStuido 4 działa, a pod AVRstudio 5 nie działa to wina jest tylko i WYŁĄCZNIE z kompilacją.
    //Chociaż schemacik nie zaszkodzi :D

    Jeszce raz proszę autora o skompilowanie pod AVRStuduio 5 (opcja relase)
    Oraz w AVRStudi 4 i porównianie plików wynikowych hex.!
  • #22 9872416
    wojtek8-7
    Poziom 13  
    Dzięki xamrex za pomoc, podsunąłeś mi pewien pomysł. Już wszystko działa
REKLAMA