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

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 22 kwi 2025, o 13:30


    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 ] [ Zaznacz wszystko ]
    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: 27375
    Lokalizacja: Szczecin
    Pomógł: 1043

    Ł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 4 gości


    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:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO