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



Teraz jest 28 mar 2024, o 15:54


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 26 gru 2018, o 14:23 
Offline
Użytkownik

Dołączył(a): 04 mar 2012
Posty: 65
Lokalizacja: Śląsk - Mikołów
Pomógł: 0

Witam wszystkich bardzo serdecznie!

Piszę w sprawie programu do "sterownika" magic ledów, ws2812.

A więc tak, napisałem sobie program, który wyrzuca na ledy poszczególne efekty. Narazie jest to tylko możliwe poprzez wcześniejsze ustalenie kolejności wyrzucania efektów w programie. Chciałbym to zmienić, aby móc osobiście zmieniać efekty po naciśnięciu jednego przycisku. Wpadłem na pomysł, że użyję instrukcji switch, po naciśnięciu przycisku zmieni się zmienna , która przełączy efekt.

Niestety, moja niewiedza czy nieuwaga spowodowała, że nie działa to tak, jak sobie wymyśliłem. Podczas naciśnięcia przycisku zmienna się oczywiście dodaje, lecz nie przełącza się program z wiadomej przyczyny. Przełączy się dopiero po przejsciu efektu i sprawdzeniu ponownie instrukcji switch.

W programie używam _delay_ms, ale mam to zrobione tak, że wywołuję funkcję, która zawiera w sobie tylko jeden _delay_ms, który jest powtarzany tyle razy, jaki jest argument tejże funkcji.

Czy byłby ktoś tak dobry i powiedział mi, jak przerwać efekt i jednocześnie przenieść się na następny? Zrobić to instrukcją switch, czy może czymś innym?

Moja funkcja main prezentuje się następująco:

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



jak widać, w mk_delay jest wsadzone sprawdzenie przycisków. Według mojego zamysłu, podczas wcisniecia przycisku nastepuje calkowite przerwanie efektu i wywolanie nastepnego efektu. Efektow jest oczywiscie wiecej niz 2, wiec narazie to tylko prototyp, ktory zostanie dopracowany.

_________________
Próbuj, a NA PEWNO CI się uda!! MADE IN SILESIA



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 gru 2018, o 00:01 
Offline
Użytkownik

Dołączył(a): 04 mar 2012
Posty: 65
Lokalizacja: Śląsk - Mikołów
Pomógł: 0

ale dobrze rozumiem, że efekt zostanie zmieniony dopiero po przejściu przez cały efekt? Tzn. efekt zmieniony zostanie po zakończeniu trwania danego efektu?

_________________
Próbuj, a NA PEWNO CI się uda!! MADE IN SILESIA



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 sty 2019, o 14:52 
Offline
Użytkownik

Dołączył(a): 04 mar 2012
Posty: 65
Lokalizacja: Śląsk - Mikołów
Pomógł: 0

Czy byłby to dla Ciebie problem, gdybyś to trochę "szerzej" opisał?

Niestety nie czuję jakoś tego rozwiązania. Będę dozgodnnie wdzięczny.

_________________
Próbuj, a NA PEWNO CI się uda!! MADE IN SILESIA



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 sty 2019, o 15:05 
Offline
Użytkownik

Dołączył(a): 04 mar 2012
Posty: 65
Lokalizacja: Śląsk - Mikołów
Pomógł: 0

Dzięki chłopaki, już mam jakiś większy pogląd na tę sprawę i wiem, że muszę zmienić mój program.

Zabiorę się jeszcze raz do tego przy pomocy linków jak i BB.

Jeszcze raz dziękuje.

_________________
Próbuj, a NA PEWNO CI się uda!! MADE IN SILESIA



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