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



Teraz jest 10 lut 2025, o 08:10


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 7 sty 2015, o 14:16 
Offline
Użytkownik

Dołączył(a): 20 wrz 2013
Posty: 647
Zbananowany użytkownik

Pomógł: 101

Cześć

Czas jakiś temu popełniłem funkcje do obsługi pilota NEC. Właściwie kod w dużej mierze oparty jest na tym: http://forum.atnel.pl/topic7144.html#p83490 ale z niewielkimi modyfikacjami.
Przede wszystkim rejestracja sygnału i dekodowanie są rozdzielone. Impulsy (ich okres), podane na pin ICP, odczytywane są w procedurze obsługi przerwania i zapisywane do bufora kołowego. Funkcja dekodująca wywoływana w programie głównym czyta bufor, i zwraca zdekodowaną komendę albo kod braku komendy. Drugą modyfikacją jest rozpoznanie przytrzymania klawisza.
Po co w ogóle całe to buforowanie, które komplikuje sprawę i pożera zasoby (RAM)? Ano po to by maksymalnie skrócić obsługę przerwania. Kod miał działać w lampkach choinkowych na ledach WS2812, których specyficzne sterowanie nie pozwala na upchnięcie przerwania dłuższego niż ok 5.5us (czas całkowity, łącznie z wywołaniem). I chyba, jak widać, się udało (to nie są TE lampki ;-)):



Faktycznie przy tej ilości diod można się nie bawić w buforowania (ich wysterowanie trwa tylko 300us, przy najkrótszym możliwym okresie sygnału 1,25ms) ale przy 100 czy 200 ledach...

W załączniku kod z przykładowym mainem w formie projektu Eclipsa. Kod jest na rodzinę m168/m328, dla innych procków trzeba sobie przerobić funkcję inicjalizacyjną. Zliczanie czasu impulsu jest na zboczu opadającym, dla większości czujników pewnie trzeba zmienić na zbocze rosnące.


Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.

_________________
+++++[>++++<-]>[>++++++<-]>.---------.+++.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 sty 2015, o 14:58 
Offline
Moderator
Avatar użytkownika

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

No i ładny projekcik wyszedł ;)

_________________
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: 7 sty 2015, o 20:44 
Offline
Użytkownik

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

Elegancki projekt :) diody WS robią wrażenie :)



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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