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



Teraz jest 18 lis 2024, o 18:42


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 11 ] 
Autor Wiadomość
PostNapisane: 2 gru 2013, o 18:21 
Offline
Nowy

Dołączył(a): 27 wrz 2013
Posty: 5
Pomógł: 0

Witam!

Od jakiegoś czasu próbuję nakłonić moduł btm-222 do współpracy. Zapoznałem się w filmami instruktarzowymi stworzonymi przez pana Mirka, jednak nie znalazłem tam odpowiedzi(lub takową przeoczyłem).

Problem polega na tym, że po rs232 (kablu) transmisja idzie bez problemu i w terminalu dostaję takie coś po jednorazowym uruchomieniu programu:
Obrazek

Program wykonuje się płynnie bez żadnych problemów.

Natomiast po zaprzęgnięciu do współpracy modułu btm222 i uruchomieniu tego programu dostaję taki wynik(od momentu krzaczków nastąpiło uruchomienie programu, wcześniejsze dane to jakieś śmieci, które pojawiły się w terminalu zaraz po nawiązaniu połączenia z modułem btm222, prawdopodobnie pozostałości wcześniejszych uruchomień):
Obrazek

Takie śmieci mogłyby lecieć cały czas. Program nie chce się skończyć, mimo osiągnięcia wartości końcowej. Dodatkowo przesył danych następuje skokami o różnej wielkości. Czasem przesyła również krzaczki.

Kod programu do obsługi transmisji jest następujący:

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


Plik z inicjalizacją rs i obsługą wysyłania:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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


Ogólnie jest to program do obsługi akcelerometru i żyroskopu, stąd taka procedura wysyłania danych. Dodam, że moduł BTM został skonfigurowany poleceniami AT, zostało wyłączone echo i zwracanie results code. Reszta ustawień pozostała fabryczna.

Jakieś pomysły? Bo problem nie może być zbyt skomlikowany i jestem pewny że dla kogoś kto już miał doczynienia z tymi modułąmi nie będzie to stanowiło problemu ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 gru 2013, o 20:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 lut 2013
Posty: 600
Pomógł: 47

Fabrycznie masz prędkość 9600 w BTM-222 z tego co pamiętam.
A tymasz #define BAUD 19200 //predkosc transmisji

_________________
https://www.instagram.com/myfirstquadcopter/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 gru 2013, o 20:16 
Offline
Moderator
Avatar użytkownika

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

kurnachatka napisał(a):
Fabrycznie masz prędkość 9600 w BTM-222 z tego co pamiętam.
A tymasz #define BAUD 19200 //predkosc transmisji


Nie nie kurnachatka - fabrycznie w BTM-222 jest właśnie 19200 ;)

------------------------ [ Dodano po: 2 minutach ]

Ale jakby sobie kolega autor przeanalizował to co zrobił w swojej zaiste przedziwnej funkcji

Kod:
void rswrite(char description, unsigned int data)...


chodzi mi o ten fragment:

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


to zrozumiałby że program zachowuje się DOKŁADNIE tak jak mu każesz - sam się tą pętlą i takim podejściem prosisz o takie zachowanie programu ....

Proponuję zastosować do testów taki kod jaki jest w poradnikach do BTM'a i zobaczysz że wszystko śmiga jak należy ok?

------------------------ [ Dodano po: 3 minutach ]

http://mirekk36.blogspot.com/2012/12/bt ... -do-z.html

_________________
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  
PostNapisane: 2 gru 2013, o 20:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 lut 2013
Posty: 600
Pomógł: 47

mirekk36 napisał(a):
Nie nie kurnachatka - fabrycznie w BTM-222 jest właśnie 19200

:oops: Sorki dawno temu go konfigurowałem. Coś mnie zaćmiło. :oops:

_________________
https://www.instagram.com/myfirstquadcopter/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 gru 2013, o 20:31 
Offline
Nowy

Dołączył(a): 27 wrz 2013
Posty: 5
Pomógł: 0

Ok, zaraz sprawdzę. Czy mogę prosić o udostępnienie pliku nagłówkowego mkuart.h, który jest dołączony do tego programu? Lub ewentualnie samą funkcję usart_putc()?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 gru 2013, o 20:56 
Offline
Moderator
Avatar użytkownika

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

Bartos napisał(a):
Czy mogę prosić o udostępnienie pliku nagłówkowego mkuart.h, który jest dołączony do tego programu? Lub ewentualnie samą funkcję usart_putc()?


Przepraszam to znajduje się w książce:

http://atnel.pl/mikrokontrolery-avr-jezyk-c.html

i tego nie mogę udostępnić ale w jednym z poradników na moim blogu odnośnie VT100 (Terminal jako LCD) ... pokazuję na żywo jak stworzyć sobie jakąś prostą bibliotekę do RS232

http://mirekk36.blogspot.com/2013/05/te ... z-lcd.html

masz tam nawet dostępny plik z przykładem w C

_________________
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  
PostNapisane: 2 gru 2013, o 21:00 
Offline
Nowy

Dołączył(a): 27 wrz 2013
Posty: 5
Pomógł: 0

Nie ma problemu, rozumiem! :) Dziękuję i tak za pomoc, przynajmniej wiem gdzie szukać błędu. Spróbuję to poprawić.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 gru 2013, o 10:46 
Offline
Nowy

Dołączył(a): 27 wrz 2013
Posty: 5
Pomógł: 0

Po sprawdzeniu kilku różnych wersji wysyłania danych, wciąż mam ten sam problem. Obecnie kod mojego wysyłania wygląda w ten sposób, w jaki prezentuje się on w nocie katalogowej i w pliku z poradnika do BTM-222.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Znowu występują te same objawy, czyli nieregularna powolna transmisja dużymi paczkami, krzaczki i powtarzanie wysłanych danych. Najbardziej mnie to powtarzanie zastanawia, ponieważ kod powinien się wykonać tylko raz, a wygląda na to jakby atmega była zmuszana do kolejnego wykonania kodu. Tak jakby btm222 wymuszał wykonanie się po raz kolejny transmisji danych. Oczywiście tak jak wcześniej ten sam kod uruchomiony po kablu nie sprawia żadnych problemów. Czy macie jakieś inne propozycje?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 gru 2013, o 11:12 
Offline
Moderator
Avatar użytkownika

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

Bartos napisał(a):
Tak jakby btm222 wymuszał wykonanie się po raz kolejny transmisji danych


Ale pomyśl chwilę - jak btm222 może coś wymuszać - sorki ale to tak jakby mówić że czajnik odstawiony z gazu sam wymusza dalsze gotowanie się wody .... żeby obrazowo jakoś to przedstawić.

Panie kolego to że jak piszesz:

Bartos napisał(a):
a wygląda na to jakby atmega była zmuszana do kolejnego wykonania kodu.


to masz 100% racji - atmega zawsze jest zmuszana - tyle że przez programistę. A to że programista źle napisze kod to już ją czochra ;) ... ona będzie i tak zmuszona ten zły kod wykonywać. Gorzej gdy programista zamiast szukać winy u siebie zaczyna myśleć że to sama atmega ożyła albo btm i coś sobie tam na spółę robią :(

Pokaż że teraz swój kod testowy w całości a nie samą funkcję do wysyłania pojedynczego znaku/stringa. Pokaż jak to wszystko połączyłeś. Pokaż jak poustawiałeś - to wtedy będzie można coś pomóc ... no chyba że tylko oczekujesz potwierdzenia że atmega albo btm same coś tam robią ?

_________________
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  
PostNapisane: 7 gru 2013, o 22:26 
Offline
Nowy

Dołączył(a): 27 wrz 2013
Posty: 5
Pomógł: 0

Problem rozwiązany. Cały układ(płyta ewaluacyjna + bluetooth) zasilałem z programatora podpiętego do portu USB komputera. Okazało się, że w takiej konfiguracji prąd, który chce pobrać układ przekracza prąd jaki może popłynąć przez co bluetooth nie dostawał odpowiedniego zasilania. Podłączenie zewnętrznego zasilacza o obciążalności 360mA rozwiązało problem.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 gru 2013, o 22:32 
Offline
Moderator
Avatar użytkownika

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

tak to bywa jak np programatory mają bezpieczniki polimerowe z dużym spadkiem napięcia, albo gdy jest kabel USB zły - ma w środku zbyt cienkie przewody i też jest duży spadek napięcia gdy układ zaczyna pobierać już chociażby 100mA

wtedy nie dość że z prądem jest kłopot to przede wszystkim z napięciem zasilania bo spada do 4V albo i mniej. A jeśli jeszcze np BTM na płytce zasilany jest ze stabilizatora Lowd Drop - to on też potrafi dać na wyjściu sporo mniej niż 3,3V - no i wtedy rzeczywiście mogą być mega kwiatki

każdy stacjonarny komp powinien sobie z tym poradzić - no chyba że to jakiś lapek to wtedy może tak być że wydajność będzie bardzo słaba

_________________
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: 11 ] 

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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO