Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[ATmega8][WinAVR] - biblioteka Zaawansowana obsługa klawiatury jak uruchomic

15 Cze 2013 22:53 2859 9
  • Poziom 8  
    Witam,
    Jestem bardzo poczatkujący w temacie AVR, i chciałem skorzystać z biblioteki "Zaawansowana obsługa klawiatury ARM, AVR, PIC i inne" udostępnionej przez kolegę Deucalion. Testowo przygotowałem programik jednak przy kompilacji pojawiają sie błędy z którymi nie bardzo mogę sobie poradzić.

    treść programu:
    Kod: c
    Zaloguj się, aby zobaczyć kod

    zawartosc pliku keyb.h

    Kod: c
    Zaloguj się, aby zobaczyć kod


    przy kompilacji pojawia sie nastepujacy blad:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Proszę o pomoc co zrobiłem źle/o czym zapomniałem/jak to powinienem zrobić albo może jakiś przykład jak z tego korzystacie :)

    Z góry wielkie dzięki za pomoc!
    Darmowe szkolenie: Ethernet w przemyśle dziś i jutro. Zarejestruj się za darmo.
  • Poziom 19  
    Też jestem początkujący i nie znam tej biblioteki ale widzę, że brakuje Ci w pliku keyb.h na jego początku instrukcji #ifndef i #define bo tak najczęściej się tego używa, wynika to zresztą z błędu error: #endif without #if
    Możesz też poprostu usunąć na końcu #endif.
  • Poziom 39  
    retrip napisał:
    Proszę o pomoc co zrobiłem źle/o czym zapomniałem/jak to powinienem zrobić albo może jakiś przykład jak z tego korzystacie

    Przede wszystkim listing na blogu jest niekompletny. Skorzystaj z pliku H umieszczonego w archiwum - oczywiście zrób to z głową, a nie metodą kopiuj wklej.
  • Poziom 8  
    Dzięki za podpowiedzi, błędy typu „./keyb.h:1: error: stray '\357' in program„ zniknęły po tym jak zmieniłem kodowanie pliku keyb.h z UTF8 na ANSI
    Jednak całość nadal mi nie chodzi, pomimo że umieściłem w treści programu „#include <avr/io.h>” pojawia się błąd „keyb.c:102: error: 'PINC' undeclared (first use in this function)”

    Kod: c
    Zaloguj się, aby zobaczyć kod

    Zawartość pliku keyb.h
    Kod: c
    Zaloguj się, aby zobaczyć kod

    Błąd który sie pojawia:
    Kod: c
    Zaloguj się, aby zobaczyć kod
  • Poziom 25  
    Własne pliki *.h includuje się tak:
    Kod: c
    Zaloguj się, aby zobaczyć kod
  • Poziom 8  
    faktycznie, zle 'includowalem' plik, dzieki za info!:) jednak problem sie nie rozwiązał, cały czas mam ten sam błąd;/
  • Poziom 25  
    W nieskończonej pętli for masz definicję funkcji, tak się nie robi - musi się ona znajdować poza funkcją main, najlepiej w pliku keyb.c (zresztą chyba się tam znajduje, skoro błąd wywala w tym pliku). Ten kawałek kodu, który podałeś jest źle napisany. Pokaż wszystko co masz, bo błąd leży w pliku keyb.c, którego nie podałeś. Prawdopodobnie wystarczy zainkludowanie do niego <avr/io.h>. W każdym bądź razie, przeczytaj jeszcze klika razy opis biblioteki i przykład jej zastosowania, albo zacznij od prostszych rzeczy.
  • Poziom 8  
    heh wydawało mi sie że skorzystanie z gotowca będzie łatwiejsze niż pisanie tych funkcji od podstaw :)

    listing pliku keyb.c

    Kod: c
    Zaloguj się, aby zobaczyć kod


    w międzyczasie dodałem w pliku keyb.c '#include <avr/io.h>' i błąd o którym wpominałem wcześniej zniknął, jednak pojawił się nowy:

    Kod: c
    Zaloguj się, aby zobaczyć kod
  • Poziom 25  
    Żeby korzystać z gotowych bibliotek, które w dodatku trzeba przerabiać pod własny mikrokontroler, trzeba znać chociażby podstawy języka, albo uważnie czytać opis i nie kopiować "na pałę" ;)

    W pliku "keyb.c" zamień:
    Kod: c
    Zaloguj się, aby zobaczyć kod


    Na:
    Kod: c
    Zaloguj się, aby zobaczyć kod


    Przeczytaj jeszcze raz opis biblioteki:
    http://mikrokontrolery.blogspot.com/2011/04/jezyk-c-biblioteka-obsluga-klawiatury.html

    Zdecyduj co ma robić program główny i wykorzystaj odpowiednią funkcję, by to osiągnąć.

    Wywal z maina to:
    Kod: c
    Zaloguj się, aby zobaczyć kod


    I możesz wstawić na początek to:
    Kod: c
    Zaloguj się, aby zobaczyć kod


    Oczywiście uzupełnione o jakąś akcję, np. zmianę stanu pinu, do którego podłączona jest dioda, czy cokolwiek innego.
  • Poziom 8  
    działa! dzieki wielkie! w sumie to prosta sprawa:)

    Zamykam.
    Dar.El