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



Teraz jest 29 mar 2024, o 12:00


Strefa czasowa: UTC + 1





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

Dołączył(a): 30 sty 2013
Posty: 169
Lokalizacja: Silesia - P-ce
Pomógł: 10

Cześć

Poniżej przedstawię obsługę moduły RFM69 na raspberrypi. Program pisałem w NetBeans na windowsie w języku C (stosowałem cross-compiler)

Z góry przepraszam z chaos.

Biblioteka wykorzystuje również bibliotekę wiringPI, która niestety nie będzie już uaktualniana (tu można o tym poczytać). Może uda mi się jeszcze przy wykorzystaniu spiDEV to oprogramować.

Całej biblioteki nie będę umieszczał tylko fragmenty, które zostały zmienione - bazuje ona na bibliotece od Mirka..
A więc tak, obsługa komend wygląda 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.

Do tej funkcji przekazywane są trzy argumenty, w pierwotnej były dwa, więc wszystkie odnośniki do tej funkcji należy zmienić. Przykład
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Biblioteka będzie obsługiwała sprzętowo SPI, więc należy usunąć wszystko co było związane z obsługą programową SPI:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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

oraz zmieniony został sposób przesyłania danych FIFO, na:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


W funkcji odpowiedzialnej za ustawianie ID naszej sieci należy zmienić część gdzie odczytujemy dane z przestrzeni programu. Zmieniamy to na:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Teraz przechodzimy do funkcji inicjalizującej nasz układ rfm. Na początku znajduje się kod odpowiedzialny za konfigurację przerwać z mikrokontrolera AVR - usuwamy to jak i konfigurację wejść wyjść.

W funkcji odbierającej dane zmieniłem sposób odczytu długości odbieranej ramki danych, oraz odbiór samej ramki danych:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Zostały utworzone dodatkowe dwie funkcje do ustawienia pinów RST i IRQ, oraz funkcja resetująca układ:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Ze względu na brak jeszcze umiejętności obsługi wątków i przerwań, sprawdzanie czy naleciały nowe dane wykonuję w pętli głównej, poprzez sprawdzanie stanu pinu IRQ:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Możliwe jest też wykorzystanie funkcji rfm69_receiving i odczyt co jakiś czas czy ta funkcja zwróci 1, co będzie informacją o odebranych danych. Tylko w tym przypadku należy dodać jakąś zwłokę czasową w pętli.

Na początku biblioteki należy zmienić też dołączane biblioteki:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Obsługa tak zmodyfikowanej biblioteki wygląda następująco (dla odbioru) :
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Jednak biblioteki od Mirka są uniwersalne - po małych przeróbkach nawet na malince można odpalić jego bibliotekę.
Jeżeli coś pominąłem to poprawię. Jeżeli zauważyłeś jakiś błąd to pisz;)

Pozdrawiam

_________________
Niewiele trzeba by być szczęślwym.Wystarczy chcieć



Ostatnio edytowano 30 gru 2019, o 16:05 przez danielos, łącznie edytowano 1 raz

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

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

Bardzo ciekawa konwersja ;) gratki za odpalenie na malince

_________________
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  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 2 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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