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.

AvrStudio4 Expected... błędy przy funkcji byte.

Templarious 11 Gru 2015 17:30 873 9
  • #1 11 Gru 2015 17:30
    Templarious
    Poziom 22  

    Witam,
    Próbuję od 0 zacząć przygodę z DS1307 dla Atmega8L ale jakoś mi nie wychodzi.
    Wzoruję się i przepisuje kod z Link ale AvrStudio wypluwa mi błąd tak jak na screenie. (dodanie bilbioteki stdbool albo innej nie działa)'

    AvrStudio4 Expected... błędy przy funkcji byte.

    Przyznam, że na pierwsze wojaże wydaje się to dosyć trudne, obsłużyć DS1307...

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0 9
  • Pomocny post
    #2 11 Gru 2015 17:44
    szczywronek
    Poziom 27  

    Po prostu w języku C nie ma typu o nazwie "byte". Autor tego kodu pewnie ma przyzwyczajenia z innych języków i "zdefiniował" sobie nowe nazwy dla typów 8-mio bitowych.

    Strona 8 z pdfa, do którego link podałeś:

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0
  • #3 11 Gru 2015 17:46
    Templarious
    Poziom 22  

    szczywronek napisał:
    Po prostu w języku C nie ma typu o nazwie "byte". Autor tego kodu pewnie ma przyzwyczajenia z innych języków i "zdefiniował" sobie nowe nazwy dla typów 8-mio bitowych.

    Strona 8 z pdfa, do którego link podałeś:
    Kod: c
    Zaloguj się, aby zobaczyć kod


    Dziękuję :)
    Nie zamykam tematu, może będę miał jakieś pytania dot. AvrStudio podczas programowania :)

    EDIT // =====================================================

    Teraz mam taki błąd:

    AvrStudio4 Expected... błędy przy funkcji byte.

    Wiem, że jest za dużo parametrów tutaj ale własnie pytanie dlaczego? Przestudiowałem kod z linka (patrz 1 post) i nie znalazłem niczego co by sugerowało taki błąd.

    0
  • #5 11 Gru 2015 19:20
    Templarious
    Poziom 22  

    piotrva napisał:
    Ja bym zaczął od znalezienia innego tutoriala - tu Autor uczy Cię złych nawyków, m. in. definiowanie F_CPU w kodzie, magiczne liczby typu 0xAB, wszystkie funkcje w jednym pliku... I do tgo środowisko AVR Studio sprzed kilku ładnych lat...


    Wiem, że AVRStudio 4 jest stare ale dla mnie bardzo przyjazne :) Mam książki Tomasza Francuza, chyba wszystkie. Większość z tego rozumiem, liczby 0xAB (to nic innego jak zapis hexadecymalny i wystarczy użyć kalkulatora). Mało jest fajnych i dobrych tutoriali.


    EDIT// Poprawiłem już i hula.

    Pytanie kolejne, jak zamienić wartość byte do int ?

    0
  • #6 11 Gru 2015 20:15
    vonar
    Poziom 28  

    AVR Studio 4? Oby toolchain nie był podobnie "przeterminowany"...

    Templarious napisał:
    Pytanie kolejne, jak zamienić wartość byte do int ?

    Nie zawracać sobie tym głowy, od tego są automatyczne konwersje.

    0
  • #7 11 Gru 2015 20:17
    Templarious
    Poziom 22  

    Toolchain najnowyszy :)

    Teraz borykam się ze wyświetlaniem danych z DS1307 na 7 segmentowym wyś. Co prawda nie mam problemu z sama obsługą wyświetlacza ale cały czas coś nie hula :/
    Czy to jest az takie trudne obsługiwać DS1307 czy każdy ma taki problem ?

    0
  • #8 11 Gru 2015 20:19
    tronics
    Poziom 36  

    Cytat:
    liczby 0xAB (to nic innego jak zapis hexadecymalny i wystarczy użyć kalkulatora

    A co kolega będzie rozumiał z zapisu np.
    ADMUX=0xAB;//*
    ? Jaki kanał ADC jest wybrany, jakie napięcie referencyjne? Aaaa, właśnie. Możesz napisać sobie w komentarzu co to ustawia, ale pisanie który bit za co odpowiada to będzie overkill. Innymi słowy napiszesz program, który działa. Pół roku później chcesz coś zmodyfikować i tłuczesz głową w ścianę próbując rozszyfrować co z czym się je - jak zmienić wartość 0xAB żeby użyć innego źródła referencyjnego etc. Warto?
    * - nie traktować jako rzeczywiste ustawienie, tylko przykład złego nawyku.

    0
  • #9 11 Gru 2015 20:21
    Templarious
    Poziom 22  

    tronics napisał:
    Cytat:
    liczby 0xAB (to nic innego jak zapis hexadecymalny i wystarczy użyć kalkulatora

    A co kolega będzie rozumiał z zapisu np.
    ADMUX=0xAB;//*
    ? Jaki kanał ADC jest wybrany, jakie napięcie referencyjne? Aaaa, właśnie. Możesz napisać sobie w komentarzu co to ustawia, ale pisanie który bit za co odpowiada to będzie overkill. Innymi słowy napiszesz program, który działa. Pół roku później chcesz coś zmodyfikować i tłuczesz głową w ścianę próbując rozszyfrować co z czym się je - jak zmienić wartość 0xAB żeby użyć innego źródła referencyjnego etc. Warto?
    * - nie traktować jako rzeczywiste ustawienie, tylko przykład złego nawyku.


    Zgodzę się w 100%. Wtedy kalkulator w ręke i zamiana wartości ale wiadomo, że to żmudna robota.

    Znacie może jakiś dobrze i ładnie opisany tutorial używania DS'a ?

    0
  • #10 12 Gru 2015 12:27
    trol.six
    Poziom 30  

    Przecież liczby hex są bardzo łatwe do odczytu bo to są cztery wartości binarne, razem 16. Nie wiem do czego wam ten kalkulator? A niektórzy nawet zegarki binarne robią. Do ich odczytu potrzeba 60 liczb binarnych czyli w okolicach 4 razy więcej, i jakoś sobie z tym radzą. Kwestia przyzwyczajenia, tak samo jak do zapisu dziesiętnego też trzeba się przyzwyczaić.

    tronics napisał:
    Pół roku później chcesz coś zmodyfikować i tłuczesz głową w ścianę próbując rozszyfrować co z czym się je - jak zmienić wartość 0xAB żeby użyć innego źródła referencyjnego etc. Warto?

    Nie tłuczesz w ściane, tylko czytasz dokumentacje, chyba że ktoś ma podajnik dokumentacji reagujący na stuki w ścianie ;) Przepisywanie całej dokumentacji nie ma sensu. Przecież nie tylko ADC jest. A co jeśli trzeba dodać komunikacje za pół roku, itp. itd. Jeśli już, to komentarze są bardzo zalecane w jakiej konfiguracji sprzęt działa. Inna rzecz kiedy piszemy bardziej uniwersalny kod obsługi.

    Oczywiście zamiast zapisu hex, lepsze są flagi z nazwami rejestrów. Tylko czasem te nazwy nie są identyczne, tylko podobne. Drobne różnice w sposobie numerowania np. w portach czy kolejnych timerach. Trzeba sobie zerkać w nagłówki z opisami rejestrów dla danego mikrokontrolera.

    0