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

[STM32F103 ][STD] Sterowanie Pilotem Biblioteka Nec
https://forum.atnel.pl/topic21384.html
Strona 1 z 1

Autor:  NeverGiveUp [ 7 paź 2018, o 13:41 ]
Tytuł:  [STM32F103 ][STD] Sterowanie Pilotem Biblioteka Nec

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

Autor:  danny [ 7 paź 2018, o 14:19 ]
Tytuł:  Re: [STM32F103 ][STD] Sterowanie Pilotem Biblioteka Nec

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.

Autor:  mikandrzej [ 19 paź 2018, o 22:28 ]
Tytuł:  Re: [STM32F103 ][STD] Sterowanie Pilotem Biblioteka Nec

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

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