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 8 kwi 2025, o 21:26


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
    Autor Wiadomość
    PostNapisane: 17 wrz 2019, o 16:08 
    Offline
    Nowy
    Avatar użytkownika

    Dołączył(a): 31 sty 2014
    Posty: 24
    Lokalizacja: Leżajsk
    Pomógł: 1

    Problem masz w tym, że kompilator (a raczej linker) dwa razy "przetwarza" funkcję rozjasnianiesciemnianie(). Nie dodaje się plików z rozszerzeniem .c za pomocą #include. Kompilator jedzie po kolei z wszystkimi plikami o rozszerzeniu .c, a więc rozjasnianiesciemnianie.c, gdzie znajduje w.w. funkcję, a następnie main.c, który również includuje plik z tą funkcją. Dlatego widzi ją dwa razy i wyrzuca błąd. Rozwiązaniem jest wyciągnięcie deklaracji tej funkcji do pliku nagłówkowego, np rozjasnianiesciemnianie.h:

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


    A następnie w obu plikach .c wklejamy powyższy plik za pomocą #include
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Dodatkowa moja sugestia jest taka, że wyrzucanie zawartości całego main() do osobnej funkcji, razem z główną pętlą while(), niejako mija się z celem. Lepiej byłoby rozbić to na dwie funkcje, np inicjalizacja_sciemniacza() i petla_sciemniacza().


    Autor postu otrzymał pochwałę


    Ostatnio edytowano 17 wrz 2019, o 16:13 przez Barthap, łącznie edytowano 1 raz

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 17 wrz 2019, o 18:59 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 22 paź 2013
    Posty: 1968
    Lokalizacja: Lipsko
    Pomógł: 125

    No to teraz w ramach treningu zmodyfikuj swój program i zrób coś z tą litanią w przerwaniach :)
    Sprawa jest dość prosta, bo wykorzystujesz jednen pełny port. Zyskasz sporo bajtów :)

    _________________
    http://www.sylwekkuna.com



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 wrz 2019, o 08:23 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 22 paź 2013
    Posty: 1968
    Lokalizacja: Lipsko
    Pomógł: 125

    Utwórz drugi projekt i skopiuj tam to co masz i kombinuj na kopii :) Zamiast pwm1...pwm5 użyj tablicy pwm[x].
    Do wskazywania właściwego bitu w porcie przyda Ci się znajomość operacji bitowych.

    _________________
    http://www.sylwekkuna.com



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 wrz 2019, o 09:06 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 22 paź 2013
    Posty: 1968
    Lokalizacja: Lipsko
    Pomógł: 125

    Hmm... Widzę, że brak u Ciebie podstaw nt. tablic. Jeśli nie masz jeszcze BB gdzie Mirek ładnie to opisuje to kup czym prędzej, a póki co w necie można o tablicach w C poczytać.

    _________________
    http://www.sylwekkuna.com



    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: 4 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 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:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO