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



Teraz jest 20 kwi 2024, o 14:32


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 16 gru 2019, o 21:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 kwi 2013
Posty: 65
Pomógł: 0

Bawię się diodami WS2812, kod taki jak z poradnika Pana Mirka Magic Led, dodałem przycisk aby przełączać efekty z poradnika, i wszystko fajnie działa, naprawdę bez żadnych problemów, ale potrzebowałem włączyć przerwanie od Timera1 do własnego efektu który
sobie wymyśliłem i wtedy na taśmie ledowej pojawiają się pojedyncze bardzo krótkie błyski w rożnych kolorach, nawet kiedy w obsłudze przerwania nie ma żadnego zadnia ten problem tez występuje, nie ma to wpływu na pozostałe efekty bo działają normalnie, pojawiają się tylko te błyski bez względu na to jaki efekt w danym momencie jest wyświetlany, kod działa prawidłowo, jak przerwanie Timera może zaburzać pracę mikroprocesora?? wydaje mi się ze to nie kwestia błędnie napisanego kodu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 gru 2019, o 22:08 
Offline
Użytkownik

Dołączył(a): 23 sty 2014
Posty: 1080
Pomógł: 73

Dawid2379 napisał(a):
Bawię się diodami WS2812, kod taki jak z poradnika Pana Mirka Magic Led, dodałem przycisk aby przełączać efekty z poradnika, i wszystko fajnie działa, naprawdę bez żadnych problemów, ale potrzebowałem włączyć przerwanie od Timera1 do własnego efektu który
sobie wymyśliłem i wtedy na taśmie ledowej pojawiają się pojedyncze bardzo krótkie błyski w rożnych kolorach, nawet kiedy w obsłudze przerwania nie ma żadnego zadnia ten problem tez występuje, nie ma to wpływu na pozostałe efekty bo działają normalnie, pojawiają się tylko te błyski bez względu na to jaki efekt w danym momencie jest wyświetlany, kod działa prawidłowo, jak przerwanie Timera może zaburzać pracę mikroprocesora?? wydaje mi się ze to nie kwestia błędnie napisanego kodu.


To kwestia czasu jaki mikrokontroler potrzebuje na obsługę przerwania (nawet jak jest puste). jak wysyłasz coś na taśmę to lepiej wyłączyć globalnie przerwania :)


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 gru 2019, o 22:26 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 kwi 2013
Posty: 65
Pomógł: 0

Dziękuje za pomoc, własnie sprawdziłem na jednym z efektów i faktycznie pomogło, mógłbyś mi jeszcze po krótce rozjaśnić dlaczego tak się dzieje?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 gru 2019, o 22:40 
Offline
Użytkownik

Dołączył(a): 23 sty 2014
Posty: 1080
Pomógł: 73

Sterowanie WS2812 jest bardzo restrykcyjne czasowo. Sama funkcja do wysyłania "paczki" danych z kolorami jest napisana w asemblerze, żeby te czasy (stanów niskich i wysokich) były bardzo zbliżone do tych które są podane w specyfikacji WS2812. Jak Ty zapuścisz w tle timer to zapewne jakies przerwanie od niego "strzeli" w momencie wykonywania tych restrykcyjnych czasowo rozkazów asemblerowych. To spowoduje że pojawią się np. jakieś nieoczekiwane kolory bo czas na obsługę przerwania spowoduje jakieś opóźnienia... Nawet jak przerwanie jest puste to procek wykonuje tzw.prolog i epilog podczas obsługi przerwania. To zajmuje mu niewiele czasu ale WS2812 są czułe na takie triki. Mam nadzieję że trochę rozjaśniłem



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 gru 2019, o 22:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 kwi 2013
Posty: 65
Pomógł: 0

Rozumie dobrze teraz, bo faktycznie Pan Mirek uczulał na te zależności czasowe, skoro np jak w jakimś miejscu wysyłania paczki danych gdzieś stan wysoki się np. "przedłużył" przez przerwanie,l to napewno ma to wpływ ostatecznie na wyświetlony kolor, jeszcze raz dzięki
i pozdrawiam !!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 gru 2019, o 23:15 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27224
Lokalizacja: Szczecin
Pomógł: 1041

warto obejrzeć ten filmik



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: 17 gru 2019, o 08:29 
Offline
Użytkownik

Dołączył(a): 11 mar 2019
Posty: 44
Zbananowany użytkownik

Pomógł: 5

Jarecki napisał(a):
Sterowanie WS2812 jest bardzo restrykcyjne czasowo. Sama funkcja do wysyłania "paczki" danych z kolorami jest napisana w asemblerze, żeby te czasy (stanów niskich i wysokich) były bardzo zbliżone do tych które są podane w specyfikacji WS2812.


Dokładnie jest tak jak kolega jarecki napisał.

Dlatego warto też (oprócz oczywiście AVRów) zainteresować się mikrokontrolerami które sprzętowo potrafią "załatwić" te diody gdyż mają nieco bardziej rozbudowane peryferia. Tu przykład z blogu M. Salamona:

https://msalamon.pl/adresowalne-diody-w ... tm32-cz-1/

Dodatkowo wbrew pozorom tanio można zacząć z nimi zabawe. To tylko taka luźna myśl.



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 6 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