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.

Atmel Studio 6.0 - Jak w tym dodać "swoje" biblioteki?

Michał 911 15 Cze 2013 13:58 3612 10
  • #1 15 Cze 2013 13:58
    Michał 911
    Poziom 18  

    Mam takie pytanko;

    Jak w Atmel Studio 6.0 dodać "własną" bibliotekę, np. HD44780?
    Jak dodaję normalnie plik HD44780 do projektu (chociaż w sumie to nie jestem pewien, czy go dodaję, czy on się otwiera jak osobny plik - po prostu jak mam otwarty plik klikam; File>>Open>>File..), to wyskakuje 12 błędów (że go nie widzi), jak go nie dodam do projektu tylko tak po prostu wkleję do folderu, w którym mam zapisany projekt, to samo.
    Zauważyłem, że jak z folderu, w którym mam zapisany projekt wyrzucę plik HD44780.h, to wtedy jest tylko 1 błąd, czyli tak jakby go w ogóle nie widział, ale to chyba normalne...

    błędy;
    Atmel Studio 6.0 - Jak w tym dodać "swoje" biblioteki?

    p.s.
    Kod jest na pewno dobry, bo koledze, który używa winavra to działa.

    0 10
  • #5 15 Cze 2013 16:50
    Michał 911
    Poziom 18  

    Czyli w makefilu?

    0
  • #7 15 Cze 2013 19:54
    Michał 911
    Poziom 18  

    Zmieniłem tylko ten plik HD44780.c i .h i znowu te 12 błędów wyskakuje. O co chodzi?
    Te "przypisania" danych linii w uC do konkretnej "funkcji" pozmieniałem (w tym pliku HD44780.h), np. z PA1 na PB3 itd.

    p.s.
    Używam wyświetlacza JHD 162a, zgodnego ze sterownikiem HD44780 i coś nie chce działać, tzn; wyświetla się tylko górna linijka (same czarne prostokąty), kontrast już próbowałem zmieniać, inicjalizację też gdzieś tam w kodzie mam. W ogóle ten wyświetlacz się jakoś dziwnie zachowuje; jak wgram jakiś program "gotowca", skompilowanego, to wyświetla to co ma wyświetlać + jakieś śmieci na polach, które powinny być puste, a na część gotowców reaguje tak jak w tym przypadku, czyli świeci się tylko górna linijka (same prostokąty).
    Dlaczego to tak?

    0
  • #8 15 Cze 2013 20:30
    dondu
    Moderator Mikrokontrolery Projektowanie

    Po pierwsze w efekcie kompilacji nie możesz mieć żadnych błędów i warningów.
    Jeżeli masz ich aż 12, to nawet nie sprawdzaj czy działa, bo na 95% nie będzie: http://mikrokontrolery.blogspot.com/2011/04/bledy-kompilacji-programu.html

    Zrób tak:
    - pokaż wszystkie komunikaty kompilacji,
    - pokaż schemat,
    - załącz cały spakowany projekt AS, to ktoś kto używa AS sprawdzi, czy prawidłowo przygotowałeś swój projekt do kompilacji oraz czy prawidłowo pozmieniałeś definicje HD44780.

    Michał 911 napisał:
    ... inicjalizację też gdzieś tam w kodzie mam. ...

    Takie podejście nie wróży szybkiego rozwiązania problemu.

    A górna linijka na LCD oznacza, że wyświetlacz nie został poprawnie zainicjowany przez Twój program, a dlaczego tak jest już wiesz czytając ten post.

    I zrób to o co proszę kompleksowo, albo dalej męczyć się będziesz kręcąc się w kółko.

    0
  • #9 15 Cze 2013 22:18
    Michał 911
    Poziom 18  

    Cytat:

    I zrób to o co proszę kompleksowo, albo dalej męczyć się będziesz kręcąc się w kółko.

    Myślałem, że to może jakiś typowy objaw, i ktoś moi zaraz napisze zrób to, to, zmień tamto i będzie działać :)

    Cytat:
    Michał 911 napisał:
    ... inicjalizację też gdzieś tam w kodzie mam. ...

    Napisałem że gdzieś tam w kodzie mam, bo to jest program kolegi.

    No to wstawiam;
    *komunikaty kompilacji takie same jak w printscreenie w 1 poście (tak jakby nie było to dodane do projektu, ale w tym drzewku projeku jest)

    schemat;
    Atmel Studio 6.0 - Jak w tym dodać "swoje" biblioteki?

    2 spakowane kompletne projekty;
    jeden projekt, z tymi bibliotekami (z tymi plikami HD44780.c i .h), z którymi działało, a drugi z tymi co nie działało, ale w nawet w tym pierwszym przypadku, gdzie to się kompiluje poprawnie, to i tak świecą się tylko czarne prostokąty w górnej linii.

    0
  • #10 17 Cze 2013 08:07
    kchpl
    Poziom 14  

    Z pliku "test_wyswietlacza.c" wywal:
    #define F_CPU 1000000UL
    #include <avr/hd44780.h>

    a do drzewa projektu dodaj plik HD44780.c oraz w opcjach projektu zdefiniuj F_CPU=....
    Poza tym używasz funkcji zupełnie nie powiązanych z plikiem .c znajdującym się w katalogu "tu_było_12_bledow" np. LCD_CLEAR; zamiast LCD_Clear();

    0
  • #11 17 Cze 2013 14:36
    Michał 911
    Poziom 18  

    To;
    #define F_CPU 1000000UL
    #include <avr/hd44780.h>
    wywaliłem.

    Czy to co zaznaczyłem czerwony kółkiem to jest drzewo projektu?
    Atmel Studio 6.0 - Jak w tym dodać "swoje" biblioteki?

    F_CPU=.... - zdefiniowałem w opcjach projektu.

    Cytat:
    Poza tym używasz funkcji zupełnie nie powiązanych z plikiem .c znajdującym się w katalogu "tu_było_12_bledow" np. LCD_CLEAR; zamiast LCD_Clear();

    Aha, to już wiem dlaczego w tym przypadku to nie działało. W folderze "tu_było_12_bledow" użyłem jakiejś biblioteki znalezionej w internecie.
    Tylko dlaczego nadal nie działa z tą biblioteką od kolegi (u niego działa - ale on używa win avra). Czyli to chyba nadal coś z ustawianiami AS. No nie?

    0