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

Użycie własnej funkcji w programi - błąd przy buildowaniu
https://forum.atnel.pl/topic22561.html
Strona 1 z 1

Autor:  Barthap [ 17 wrz 2019, o 16:08 ]
Tytuł:  Re: Użycie własnej funkcji w programi - błąd przy buildowani

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:  SylwekK [ 17 wrz 2019, o 18:59 ]
Tytuł:  Re: Użycie własnej funkcji w programi - błąd przy buildowani

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

Autor:  SylwekK [ 18 wrz 2019, o 08:23 ]
Tytuł:  Re: Użycie własnej funkcji w programi - błąd przy buildowani

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.

Autor:  SylwekK [ 18 wrz 2019, o 09:06 ]
Tytuł:  Re: Użycie własnej funkcji w programi - błąd przy buildowani

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ć.

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