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

PWM rozjaśnianie – gaszenie led
https://forum.atnel.pl/topic21356.html
Strona 1 z 1

Autor:  Daro68 [ 1 paź 2018, o 22:29 ]
Tytuł:  PWM rozjaśnianie – gaszenie led

Jak w tytule chcę jednym przyciskiem rozjaśniać i gasić led program tylko tylko rozjaśnia a z gaszeniem jest problem proszę o wskazówki :oops:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

a w konsoli coś takiego
collect2.exe: error: ld returned 1 exit status
make: *** [00a_NAUKA.elf] Błąd 1


Poz. Darek

Autor:  l3n1n [ 2 paź 2018, o 01:29 ]
Tytuł:  Re: PWM rozjaśnianie – gaszenie led

W linii 21 masz uint8_t i = 0; następnie inkrementujesz w linii 38 i++ potem znowu ustawiasz w linii 40 wartość i na 0. Przeanalizuj dokładnie co twój program robi w kolejnych liniach. Sprawdź działanie w programie konsolowym (na przykład Dev-C++) jak zachowują się zmienne w poszczególnych liniach a zobaczysz gdzie zrobiłeś błąd.

Autor:  Daro69 [ 2 paź 2018, o 18:06 ]
Tytuł:  Re: PWM rozjaśnianie – gaszenie led

Cześć,
Wczytaj się w to co skrótowo napisał kolega l3n1n.
Daro68 napisał(a):
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


skoro napisałeś że się rozjaśnia, to wnioskuję że przy wklejaniu kodu gdzieś wchłonęło jakiś nawias. :roll:
porada: na końcu za klamrami pisz sobie komentarze. np.

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

pozdrawiam.

Autor:  Daro68 [ 2 paź 2018, o 23:44 ]
Tytuł:  Re: PWM rozjaśnianie – gaszenie led

Kod przeanalizowałem oto moje wypociny nie wiem czy dobrze , program działa poprawnie do else
potem dioda przy kolejnym naciśnięciu zapala się na jakieś 25PWM i kolejne naciśniecie 255 PWM i program staje
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Poz. Darek

Autor:  l3n1n [ 3 paź 2018, o 06:41 ]
Tytuł:  Re: PWM rozjaśnianie – gaszenie led

Przepraszam Daro68, nie chcę cię zniechęcać ani obrażać, ale nie przeanalizowałeś tego tak jak cię prosiłem. W sumie poruszasz się po omacku i strzelasz jak powinno wyglądać rozwiązanie. Nie chcę cię tez publicznie linczować więc wybacz ewentualne moje zwroty które wpłyną negatywnie na twoje samopoczucie.
Jesteś leń :).

Zobacz, ja zrobiłem to co miałeś ty zrobić:

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


Po zapisaniu, skompilowaniu i uruchomieniu otrzymujemy:

Obrazek

Jak widzisz w tablicy jasnosc[] poszczegolne wartości zaczynają się od pozycji 0 do pozycji 3 a nie od 1 do 4.

Mirek napisał BB a ty go chyba masz, tam te wszystkie wiadomości są podane na tacy.

Z kolei druga część twojego ifa też może być napisana przy pomocy pętli FOR:

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


Wynik:

Obrazek

Więcej ci nie podpowiem, musisz pomyśleć trochę sam. Masz wędkę a rybę sobie złów sam. I tak nie ma lepszej wędki niż BB + właśnie takie sprawdzanie co się dzieje ze zmiennymi w danym momencie jak ci zaprezentowałem.

Autor:  Daro68 [ 3 paź 2018, o 21:07 ]
Tytuł:  Re: PWM rozjaśnianie – gaszenie led

Nie ma za co przepraszać a tym bardziej nie mam zamiaru się obrażać ja jestem wdzięczny za każdą pomoc i uwagi zdaję sobie sprawę że nauka idzie mi trochę opornie a zaczynałem praktycznie od nauki klawiatury a „C” jest dla mnie nie lada wyzwaniem a teraz do tematu analizowałem kod i twoje uwagi efekty sam oceniłeś
l3n1n napisał(a):
Jesteś leń .
:lol:
i jeszcze coś takiego wypociłem ale efekt był marny
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

a z pentlom for też próbowałem :oops: więc biorę się ponownie za kod i for jeszcze raz dzięki za pomoc i uwagi
Poz. Darek

Autor:  l3n1n [ 3 paź 2018, o 21:40 ]
Tytuł:  Re: PWM rozjaśnianie – gaszenie led

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



Wczytuj się w to co ci ludzie podpowiadają.
W tym przykładzie inkrementacja czyli i++ powinno być pisane po OCR0 = jasnosc[i]. Pamiętaj ze w tablicy jasnosc[] masz cztery liczby. Ich kolejne numery (nie wartości) to 0, 1, 2, 3 wiec nie musisz pisać i <= 4 bo wtedy program nie potrzebnie wykonuje kolejny raz pętlę. Dla jasnosc[4] nie ma żadnej wartości w tablicy. Z kolei nawet gdyby się w tym przykładzie coś działo to zadzieje się bardzo szybko, nie dałeś delaya. Popisz sobie trochę dla wprawy programików konsolowych, tak jak w przykładach z mojego posta. Popatrz co się będzie działo gdy zamiast FOR dasz IF. Możesz też dać WHILE i pewnie zadziała. Popatrz co o tych pętlach pisał Mirek w BB. Musisz to zrozumieć bo inaczej nie ruszysz z miejsca.

Autor:  Daro68 [ 11 paź 2018, o 22:04 ]
Tytuł:  Re: PWM rozjaśnianie – gaszenie led

Próbuje i uczę się i kombinuję :mrgreen: ale coś mi nie wychodzi do sedna przy rozjaśnianiu i>=0 i dodaję i++ czyli zwiększam o 1 to 0,1,2,3 to przy gaszeniu zmienna i<=3 powinna odliczyć i-- od ,3,2,1,0 tylko wartości 1,2,3 występują w if i else i dla tego dodałem jeszcze jedną zmienną „flaga”myślę że założenie jest słuszne tylko wykonanie kiepskie proszę o jakieś podpowiedzi a co się tyczy ćwiczeń słuszna uwaga ;) wgrałem sobie Code:Blocks do testowania i ćwiczeń
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Poz. Darek

Autor:  Marhef [ 12 paź 2018, o 09:20 ]
Tytuł:  Re: PWM rozjaśnianie – gaszenie led

Hmmm, ten fragment nie zadziała.
Zauważ, że warunek w linijce 12 nigdy nie będzie spełniony, ponieważ w linijkach 4 i 5 ustawiasz flagę na 1.
Na szybko spłodziłem coś takiego:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Niesprawdzone, ale może zadziała ;)
I jeszcze jedna uwaga, prawdopodobnie linijki 4 - 9 można zastąpić jedną:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

UWAGA! Pisałem bez możliwości kompilacji, prawdopodobnie będzie trzeba coś zmienić, żeby zadziałało.

Autor:  Daro68 [ 12 paź 2018, o 19:03 ]
Tytuł:  Re: PWM rozjaśnianie – gaszenie led

Dzięki za podpowiedz kod w całości działa poprawnie tylko mała kosmetyka :D a z tego co ty napisałeś to ja sobie popłynąłem HO..HO :o a co się tyczy
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

próbowałem zastosować ale coś nie chce zagrać ale popracuje jeszcze nad tym to bardzo ciekawe :shock: podejście
Poz. Darek

Autor:  Marhef [ 12 paź 2018, o 19:12 ]
Tytuł:  Re: PWM rozjaśnianie – gaszenie led

Nie, nie, bez if na początku. To jest instrukcja warunkowa, chyba Mirek opisał w blubuku, w części z teorią. To tak, żeby coś krótko napisać. ;)

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