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



Teraz jest 24 kwi 2024, o 09:13


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 16 lis 2019, o 17:49 
Offline
Użytkownik

Dołączył(a): 02 lut 2017
Posty: 25
Pomógł: 0

Witam Wszystkich

Proszę o wyrozumiałość bo jestem początkującym programistą.
Niedawno kupiłem w sklepie Atnel biblioteki między innymi do obsługi klawiatur numerycznych oraz do obsługi modułów NRF24L01.
Myślałem że sam sobie poradzę ale jednak trochę mnie to przerosło.
Chodzi o to że mam 6 przycisków i odpowiadających im sześć diod zarówno po stronie nadajnika jak i odbiornika.
Chciałbym aby wciskając przycisk po stronie nadajnika zapalała się dioda po stronie nadajnika i odbiornika.
I żeby działało to w drugą stronę np wciskając przycisk po stronie odbiornika zapalała się dioda po stronie odbiornika i jednocześnie ta sama dioda po stronie nadajnika.
W danym momencie może być zapalona tylko jedna dioda po stronie nadajnika i odbiornika.

Zastanawiałem się nad tymi Timerami bo w jednej bibliotece użyty jest inny Timer a w drugiej inny Timer. Niestety nie wiem jak połączyć te dwie biblioteki w kodzie aby to działało.
W związku z tym bardzo proszę was o pomoc. Bardzo mi na tym zależy.
Po prostu nie wiem jak napisać taki kod w pliku main.c

dziękuję za wszelką pomoc



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lis 2019, o 18:12 
Offline
Użytkownik

Dołączył(a): 05 sty 2015
Posty: 393
Lokalizacja: Mielec
Pomógł: 14

Masz w przykładowym kodzie tego libsa jak Mirek to zrobił, Mirek wysyła string i go parsuje w odbiornik.
Ty też wysyłaj string, możesz pod każdy przycisk zapisać np. switch1 - switch6 albo zautomatyzowc poprzez funkcje. Wystawiać stan na pinie co masz diode to zakładam że umiesz.

Możesz wysłać też zmienną jeden bait uint8_t i przypisać po odebraniu do portu.

Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lis 2019, o 21:27 
Offline
Użytkownik

Dołączył(a): 02 lut 2017
Posty: 25
Pomógł: 0

Dzięki za odpowiedź

Spróbowałem coś takiego ale diody podłączone do portu D nie świecą. Podejrzewam że "key_nr" nie wskazuje na 1, 2, 3, itd tylko na jakiś kod chyba ASCI który przerabiany jest w funkcji lcd_hex i nie wiem jak mogę tutaj to wpisać w switch-case.
Dodatkowo mam mam jakiś błąd w funkcji mknrf_send.
Bardzo proszę o pomoc

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


------------------------ [ Dodano po: 43 minutach ]

Przepraszam kody zapalające diody są OK tylko nie działają kody do wysyłania liczby binarnej do modułu odbiornika.



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

Dołączył(a): 05 sty 2015
Posty: 393
Lokalizacja: Mielec
Pomógł: 14

Poczytaj o funkcjach
ita() i ati()
int to ascii, ascii to int rozwinięcie nazw funkcji.
Nie pamiętał ale nawet jeśli w Lib jest przed wysłaniem wszystko "konwertowanie" do ascii to jaki problem przekonwertowac w drugą stronę.

Tylko czemu wysyłkę robisz binarna (system dwójkowy) a nie dziesiętną czy szesnastkową? Nie prościej wysłać ktorąş z liczb 1,2,4,8,16,32,64,128 czyli wagi bitowe? Albo użyć liczb z zakresu 0-9 i wysyłać je w postaci ascii?

Można to zrobić jak Ty "binarnie w ascii", ale ja bym to osadził jeszcze w tablicy i w petli for sprawdzał każdy znak tablicy czy jest ascii "0" czy "1" trochę przekombinowane ale... Np



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

Można to ogarnąć na wiele sposobów. Pisane z głowy nie sprawdzane.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lis 2019, o 10:52 
Offline
Użytkownik

Dołączył(a): 02 lut 2017
Posty: 25
Pomógł: 0

Dziękuję za odpowiedz.
Tak jak pisałem key_nr działa bez problemu do wybierania z funkcji switch-case
Natomiast mam jakiś błąd w funkcji mknrf_send używając ją tak jak podałem w kodzie powyżej.
Bardzo proszę o pomoc



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lis 2019, o 14:05 
Offline
Użytkownik

Dołączył(a): 05 sty 2015
Posty: 393
Lokalizacja: Mielec
Pomógł: 14

A zamiast

Kod:
mknrf_send(00001000 , 8);


Wyslij

Kod:
mknrf_send(0x08 , 1);


.


Autor postu otrzymał pochwałę


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

Strefa czasowa: UTC + 1


Kto przegląda forum

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