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



Teraz jest 12 kwi 2026, o 01:08


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 24 cze 2015, o 21:10 
Offline
Użytkownik

Dołączył(a): 25 mar 2015
Posty: 105
Pomógł: 2

Witam wszystkich i pozdrawiam ;)
Mam taki mały/duży problem.
Otóż mam zamiar skomunikować ze sobą dwa mikrokontrolery przez RFM12B. W tej chwili wykonaną mam komunikację aplikacja z komputera-mikrokontroler-> działa bez zarzutów. Pięknie zapalam sobie lewą bądź prawą diodę zależnie czy wyślę literkę "p" czy "l".
Dziś przeszedłem do kolejnej części planu-> wysłanie danej literki przez moduł rfm12b na inny mikrokontroler i tam zapalenie diody.
Wątpiłem, ze zadziała za pierwszym razem xD
Uznałem, że dobrze bedzie wszystko dokładnie sprawdzić.
Więc...
Użyłem dwóch stykówek. na jednej mikrokontroler odbierający dane, RFM12B, dwie diody. Na drugiej DOKŁADNIE TO SAMO, z tym że mikrokontroler jednocześnie odbiera dane z uart (przecież wszystko działa więc czemu nie tak) i wysyła na RFM12B.
Mój problem polega na tym, ze gdy inicjalizuję RFM12 - diody na stykówce wysyłającej dane nie zapalają się. A powinny. (Oczywiście odbiór danych również nie działa)
Wystarczy że wykomentuję inicjalizację RFM12 -> na stykówce wysyłającej diody zapalają się. (No i oczywiście skoro wyłączyłem inicjalizację RFM12 to wysyłanie nie odbywa się)

Jakieś pomysły?
Umieszczam wyłącznie mój kod(wedle tego, o co prosił Pan Mirek):
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Jeśli chodzi o RFM12B używam przerwań INT1_vect (komunikuję ze sobą atmegi8)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 cze 2015, o 22:55 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Zajrzyj do uaktualnień programów na temat RFM12
http://www.atnel.pl/uaktualnienia-programow-do-dvd.html

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 cze 2015, o 18:18 
Offline
Użytkownik

Dołączył(a): 25 mar 2015
Posty: 105
Pomógł: 2

Taaak, dokładnie to zrobiłem ;)
W tej chwili zajmuję się komunikacją bez przerwań. Chcę je dopracować a potem dopiero użyję w komunikacji z przerwaniami (która jak dotychczas delikatnie nie działała)

Zastanawia mnie ten fragment kodu:

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


Plan jest taki- sprawdzić czy do test wpłynął dany znak, jeśli tak->zapalić odpowiednią diodę.
Dioda zapala się (więc jest komunikacja! :D ) jednak za każdym razem zapala się ta sama. Nie ważne czy if(test=='l') czy też if(test=='p').
Podejrzewam, że to jakieś błędy związane z typem zmiennych.
(W dalszej części projektu planuję też zamienić zmienne odbierane przez mikrokontroler1 na wartości które po wykorzystaniu dałyby jakiś wynik, który następnie miałby być wysłany znów do pierwszego mikrokontrolera. Sporo do przemyślenia i kombinowania przede mną ;))

Znalazłem gdzieś na forum, gdzie Pan Mirek poleca poniższy artykuł ( w tym 5 filmów) gdzie tłumaczy (mam nadzieję) podobny problem. Zabieram się do oglądania ;)Poniżej link:
http://mirekk36.blogspot.com/2015/01/wi ... start.html
W razie jeśli nie znajdę odpowiedzi na swoje pytanie lub znajdę jakieś inne, napiszę ;)
Chybaże komuś wpadnie do głowy, co jest nie tak, to jak najbardziej - piszcie ;) Artykuł i tak wciągnę!
Pozdrawiam!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 cze 2015, o 20:04 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Zmienna test to ma być tablicą zdolną pomieścić całą ramkę + 1 znak \0 na koniec łańcucha znaków. Jeśli przesyłasz tylko jeden znak to musi mieć rozmiar 2. Jak chcesz się dobrać do konkretnego znaku to musisz używać indeksu tablicy:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Jak chcesz porównywać napisy to korzysta się z funkcji z nagłówka string.h
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Autor postu otrzymał pochwałę

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 lip 2015, o 19:50 
Offline
Użytkownik

Dołączył(a): 25 mar 2015
Posty: 105
Pomógł: 2

Co do komunikacji RFM12B-RFM12B...
W tej chwili komunikacja prawie działa.
Gdy sprawdzam czy dane nadeszły (jakiekolwiek-poprzez zmianę stanu diody gdy nadejdą) wszystko działa.
Jest tylko taki mały defekt - gdy sprawdzam nadejście konkretnych danych to stan diody zmienia się dopiero po podwójnym wysłaniu tych samych danych.
Powiedzmy że wysyłam dane "aaa" i sprawdzam w mikroklocku odbierającym dane (wykorzystując RFM12B):
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Musze wysłać dane dwukrotnie aby stan diody się zmienił.

Działanie powtarza się dla zwykłych stringów (np "aaa") lub stringów odebranych i zamienionych na int za pomocą atoi().
Może ktoś domyśla się co to może być?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lip 2015, o 14:56 
Offline
Użytkownik

Dołączył(a): 25 mar 2015
Posty: 105
Pomógł: 2

Znalezione błędy, poprawione ;)



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ł: Majestic-12 [Bot] i 9 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