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



Teraz jest 29 mar 2024, o 14:42


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 7 paź 2018, o 13:41 
Offline
Nowy

Dołączył(a): 20 sty 2015
Posty: 6
Pomógł: 0

Witem znalazłem bibliotekę nec która za bardzo nie chcę działać próbuję uruchomi i coś mi to nie wychodzi potrzebował bym pomocy w uruchomieniu tej biblioteki albo napisaniu nowej dla pilota jak na zdjęciu

main.c

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


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


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


pilot
ObrazekObrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 paź 2018, o 14:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 lip 2013
Posty: 208
Lokalizacja: Kielce
Pomógł: 15

Do zrobienia jest obsługa dłużej przytrzymywanego przycisku.

Oryginał pochodzi ze strony firmy Lispol, przy okazji oferty sprzedaży pilota NEC.

W miejscach gdzie ingerowałem w kod, oryginalna częśc jest zakomentowana.

Dodałem callbacki i wydaje mi się, że w oryginale był błąd:
Standard NEC mówi, że bity address i command są ustawione tak, że bit najmłodszy LSB powinien
być po lewej stronie, najstarszy po prawej. Źródło:

http://techdocs.altium.com/display/FPGA ... n+Protocol

Tak więc ramkę z załącznika powinien odczytywać: address 0x04; command 0x72

Natomiast odczytywana była jako: address 0x20, command 0x4E


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



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


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


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: 19 paź 2018, o 22:28 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 24 cze 2012
Posty: 414
Lokalizacja: Oborniki
Pomógł: 5

Napisz ją sam :)

Wystarczy użyć przerwania sprzętowego oraz jednego z TIMERów :)

Ja robię to tak:
1. W przerwaniu wyzwalanym na zboczu opadającym odczytuję z TIMERa czas jaki minął od ostatniego przerwania. Licznik tyka co 0,1ms.
2. pierwszy impuls powinien trwać 155 tyknięć (wartość +/- ustawiłem na 3 tyknięcia [0,3ms])
jeśli jest poprawny, to zwiększam licznik poprawnych bitów, jeśli nie, to zeruję licznik i znów czekam na impuls przynajmniej 155 tk
3. kolejne impulsy to:
a) 12 tyknięć (+/- 3tk) - logiczne 0
b) 22 tyknięcia (+/- 3tk) - logiczne 1
4. Z każdym tyknięciem inkrementuję licznik i w przypadku logicznej jedynki, ustawiam odpowiedni bit w 32 bitowej zmiennej
5. Jeśli cała ramka zostanie odebrana poprawnie, to wywołuję zarejestrowaną funkcję. Jeśli nie, zeruję licznik i czekam na impuls startowy.

Z każdym przerwaniem zeruję timer. Należy zawrzeć w programie możliwość wystąpienia impulsu startu nawet w trakcie liczenia bitów, w razie gdyby w trakcie transmisji coś zawiodło ( w praktyce często tak jest) - czyli za każdym razem jak przyjdzie impuls 155 tk należy przerwać odbiór, wyzerować licznik i czekać na kolejne dane.

Kod tak naprawde na kilka linijek :) Dodatkowo trzeba jeszcze opanować przytrzymywanie przycisku - ja tego nie robiłem, ale z analizatorem stanów nie powinien to być problem.

Powodzenia :)

btw. polecam stronę:
https://exploreembedded.com/wiki/NEC_IR_Remote_Control_Interface_with_8051

_________________
Pozdrawiam:
Mikołaj



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 1 gość


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