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

Makra DDR, PORT, PIN w AVR - błędy kompilacji w AVR Studio 6 i WinAVR

asdpoi0 03 Lip 2014 22:59 1950 7
REKLAMA
  • #1 13765698
    asdpoi0
    Poziom 9  
    Witam,
    mam problem podczas pisania biblioteki dla wyświetlacza LCD - przepisywałem z tzw. blue book'a Pana Mirosława Kardasia, a mianowicie nie działaja mi makra ułatwiające dostęp do DDR, PIN oraz PORT

    kod programu (żeby pokazać, że nie działa skrócony do samego problemu):

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


    Otrzymane błędy:

    Cytat:
    Error 1 expected identifier or '(' before 'volatile'
    Error 2 expected ')' before '(' token


    Używam AVR studio 6, WinAVR oczywiście też działa. od 4 godzin walczę - myślałem, że problem jest w AVR studio i pobrałem eclipsa ale błąd jest dokładnie taki sam.

    pozdrawiam:?:
  • REKLAMA
  • #2 13765751
    tehaceole

    Poziom 28  
    asdpoi0 napisał:
    DDR(D)
    A zerknij w źródła libsa dla Twojego uC (pliki biblioteczne "iomXX.") i odnajdź zdefiniowany symbol "D"... Chyba chodziło o coś innego,.. :)
    Jeżeli korzystasz z:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    to jako argument makra powinieneś zdaje się podać w tym przypadku "PORTD".

    ps. W załączniku masz moją wariację obsługi LCD.
  • REKLAMA
  • #3 13765782
    asdpoi0
    Poziom 9  
    Tutaj znalazłem wyjaśnienie Pana Mirka jak to działa - ale nie pomogło bo mam to samo a wyskakują mi błędy.

    Dzięki za pliki na pewno przejrzę :)
  • #5 13765813
    asdpoi0
    Poziom 9  
    hmm w takim prostym przypadku teraz działa... ale w bibliotece lcd.h używam tych konfiguracji DDR, PORT itd tez poza funkcjami i tam są błędy nadal - czy sugerujesz ze jak napisze wszystko do końca razem z tekstem do wysłania to wtedy zadziała?
  • REKLAMA
  • #6 13765845
    szczywronek
    Poziom 28  
    Może to kwestia późnej pory, ale nie do końca rozumiem o co Ci chodzi ;) Sugeruję, że wszelkie operacje (w tym konfigurację portów) należy wykonywać wewnątrz jakiejś funkcji.

    Swoją drogą - na 99% nie musisz tego przepisywać. Kod powinien być na płycie dołączonej do książki.
  • REKLAMA
  • #7 13765861
    asdpoi0
    Poziom 9  
    Przepisuję ręcznie ta bibliotekę i tam zaraz po definicji tych makr bez funkcji są wykorzystywane.

    Ma może ktoś program do obsługi LCD od Pana Kardasia? bo nie dostałem płyty niestety z biblioteki do ksiażki i ręcznie przepisuje to może źle coś zrobilem :(

    załączam moją biblioteczkę napisaną (przepisaną w zasadzie)
  • #8 13765894
    szczywronek
    Poziom 28  
    Wszystko ok, tylko jest małe ale - przeczytaj akapit przed "inicjalizacją pinów". Pozwolę sobie zacytować jedno zdanie z wspomnianej książki (wydanie I):
    Mirosław Kardaś napisał:
    Teraz inicjalizacja pinów na początku funkcji [...] będzie mogła wyglądać tak:
    Wyraźnie jest mowa o funkcji ;)

    Tutaj są jakieś aktualizacje programów - jest biblioteka do LCD. Zobacz, może to to samo ;)
REKLAMA