ATNEL tech-forum
https://forum.atnel.pl/

Pliki nagłówkowe - problemy z wykorzystaniem
https://forum.atnel.pl/topic21860.html
Strona 1 z 1

Autor:  Kabuuz [ 10 sty 2019, o 23:03 ]
Tytuł:  Pliki nagłówkowe - problemy z wykorzystaniem

Cześć. Dopiero zaczynam swoją przygodę z mikrokontrolerami. Czytam książkę "Mikrokontrolery AVR- podstawy programowania" i jest tam napisane, że kiedy chcemy zrobić własny plik do korzystania np. z klawiatury to tworzymy plik klawiatura.c i plik klawiatura.h.
Na początek chciałem spróbować z czymś prostym więc stworzyłem pliki klawisz.c i klawisz.h żeby w zależności od stanu przycisku zapalać lub gasić diodę i mam mały problem.
-w którym z tych plików mogę/powinienem użyć "#define zmienna wartosc" żeby potem móc tego użyć w mainie i jak tego użyć (próbowałem w klawiatura.h i klawiatura.c ale nie wykryło tego co napisałem). Chciałem tego użyć do ustawienia odpowiednich bitów DDRx i PORTx
-w plikach nagłówkowych nie mogę użyć uint8_t ani żadnego podobnego bo podobno nie rozpoznaje typu("Cannot be resolved to a type), dopiero zwykły int działa, jak to rozwiązać?

main:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


klawisz.c
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

klawisz.h:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Z góry dzięki za pomoc :D

Autor:  mirekk36 [ 11 sty 2019, o 03:17 ]
Tytuł:  Re: Pliki nagłówkowe - problemy z wykorzystaniem

Łooooch, aleś pan namieszał ... no namieszał że aż strach się bać ;) a szczególnie tego stwierdzenia

Kabuuz napisał(a):
w plikach nagłówkowych nie mogę użyć uint8_t ani żadnego podobnego bo podobno nie rozpoznaje typu,


nie obraź się, ale stwierdzenia KOMPLETNIE bez sensu ... skąd ty takie informacje bierzesz ? Coś czuję, że jeśli nie czytałeś jakichś czeluści internetu to być może niedawno wpadł ci w oko pewien wątek na forum - gdzie coś było o tym wspominane, ale widać, że nie przeczytałeś całego wątku albo tylko po tzw łepkach i na tej podstawie wysnuwasz jakieś niestety kocie wnioski ;)

ale do rzeczy:

Skoro już masz Bluebooka to postaraj się zajrzeć do programów do niego dołączonych i zobacz jak to się robi, gdzie się umieszcza makra za pomocą dyrektyw #define ....

oczywiście, że zwyczajowo w plikach nagłówkowych no ale nie tylko, bo preprocesor wykorzystuje się chociażby do kompilacji warunkowej więc czy z tego powodu czy z innych można używać #define w plikach źródłowych - wszystko zależy od potrzeb. Ale zanim się zrozumie te różne potrzeby - to staraj się działać z tą zasadą, że korzysta się z nich w plikach nagłówkowych tak jak napisane jest w Bluebooku

Kabuuz napisał(a):
Na początek chciałem spróbować z czymś prostym więc stworzyłem pliki klawisz.c i klawisz.h żeby w zależności od stanu przycisku zapalać lub gasić diodę i mam mały problem.

Jesteś stosunkowo nowy na forum więc tylko dlatego nie daję warna za tak zadane pytania - bo jest to typowe pytanie do rasowych jasnowidzów - a takich na tym forum nie ma - więc na przyszłość bardzo uprzejmie proszę - zadając pytanie podawaj odpowiednie informacje, żeby można było coś pomóc a nie się domyślać czy grać w kalambury, zagadki i ciągnąć za język - żebyś pokazał fragment kodu, który piszesz i masz w nim błędy ok?

po prostu wklej kod takich dwóch plików, do tego swojego testowego pliku main.c - pokaż jak to wszystko inkludujesz i ew jakiś zrzut ekranu np z Eclipse czy z konsoli jakie to dokładnie błędy ci się pokazują - bo inaczej to jak mówię - zacznie się zgadywanka i jasnowidztwo zamiast otrzymania krótkiej i konkretnej pomocy

Kabuuz napisał(a):
-w którym z tych plików mogę/powinienem użyć "#define zmienna wartosc" żeby potem móc tego użyć w mainie i jak tego użyć (próbowałem w klawiatura.h i klawiatura.c ale nie wykryło tego co napisałem).

Jak mówię w materiałach do książki masz milion przykładów gdzie można to zobaczyć - nie wspominając że i w książce te przykłady też są, ale ok i tu ci podpowiem, że to co konkretnie chcesz zrobić to w pliku *.h

Kabuuz napisał(a):
w zależności od stanu przycisku zapalać lub gasić diodę i mam mały problem.

Gdzie masz konkretnie ten problem? pokazałeś w jakikolwiek sposób nie wiem kod błędu? wynik z konsoli po kompilacji ?

Kabuuz napisał(a):
Dodałem wcześniej <avr/io.h>

Gdzie to dodałeś poza tym, że wcześniej ? słówko wcześniej wcale nie wyjaśnia gdzie

Mam nadzieję, że poprawisz opis problemu ok?

Autor:  Kabuuz [ 11 sty 2019, o 08:59 ]
Tytuł:  Re: Pliki nagłówkowe - problemy z wykorzystaniem

Tego wątku nie widziałem bo jestem całkowicie nowy. Rozwiązałem problem. Eclips podświetlał wykorzystanie typu uint8_t jako błąd jeśli nie znajdowało się w main.c. Podobnie było z dyrektywami #define, a że stwierdziłem, że skoro podświetla to jako błędy to coś musi być nie tak to tego nie budowałem i próbowałem dodawać różne includy znalezione w internecie. Teraz spróbowałem to zbudować i wszystko śmiga. Następnym razem postaram się lepiej opisywać problem :)

Strona 1 z 1 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/