Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 28 mar 2024, o 10:39


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 10 sty 2019, o 23:03 
Offline
Nowy

Dołączył(a): 20 gru 2018
Posty: 2
Pomógł: 0

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



Ostatnio edytowano 11 sty 2019, o 08:57 przez Kabuuz, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 sty 2019, o 03:17 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27212
Lokalizacja: Szczecin
Pomógł: 1041

Ł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 postu otrzymał pochwałę

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 sty 2019, o 08:59 
Offline
Nowy

Dołączył(a): 20 gru 2018
Posty: 2
Pomógł: 0

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 :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO