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



Teraz jest 21 mar 2026, o 16:55


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 12 kwi 2013, o 09:53 
Offline
Nowy

Dołączył(a): 26 mar 2013
Posty: 7
Pomógł: 0

Witam,
od pewnego czasu staram się skomunikować za pomocą aplikacji na androida napisanej według poradnika na tym forum, a moją Atmegą 32. Napiszę na jakim etapie jestem:
-gdy wysyłam znaki z telefonu to wyświetlają się na terminalu. Na zestawie uruchomieniowym przy wysyłaniu zaczyna migać czerwona dioda TXD. Problem polega na tym, że Atmega32 nie reaguje na te znaki. Napisałem prosty program na nią, który ma zapalić lub zgasić diodę po dostaniu znaku 1 lub 0.
-gdy wpisuję ręcznie na klawiaturze znaki 1 i 0 do terminala to stan diody zmienia się, więc wydaje mi się, że program na Atmegę działa.

I tu pojawia się mój problem, bo teoretycznie i program na telefon i program na atmegę są napisane poprawnie, ale nic się nie dzieje, gdy próbuję wysłać bezpośrednio znak 1 lub 0 do mikrokontrolera.
Próbowałem prędkości 19200 i 4800, taktowanie procesora to 8MGHz. Prosiłym o jakieś wskazówki, bo nie mam pomysłu co może być nie tak.

Kody wstawiamy przy pomocy syntax=c- Zielony J.


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



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



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

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

No pięknie pięknie - zrobiłeś sobie "piękny" program na AVR w którym nawet zrobiłeś sobie funkcję

USART_Receive()

a potem BACH!!! i w pętli głównej widzimy:

input = UDR;

widać, że jeszcze chyba hmmm może nigdy (zgaduję tylko) nie zajmowałeś się w ogóle zwykłą transmisją RS232 albo tylko tak po łepkach na zasadzie że coś "uda się albo nie uda" :( ... stąd twoje problemy :(

ja proponuję ci NAJPIERW napisać sobie program testowy do AVR'a tak żeby mógł się komunikować np z terminalem w komputerze PC i żeby poprawnie odbierał to co wysyłasz w każdej sytuacji, ale uwaga - PO ZWYKŁYM KABLU (byle jakim kablu ale kablu) - zapomnij na razie o Bluetooth .... ponieważ BT na tym etapie to dla ciebie tylko kolejny ogromny problem i kolejna niewiadoma. Powiedz mi czy czytałeś dokładnie rozdział o buforach cyklicznych z tej książki ?

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

to sporo wyjaśni

_________________
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: 12 kwi 2013, o 11:38 
Offline
Nowy

Dołączył(a): 26 mar 2013
Posty: 7
Pomógł: 0

Mirek,
wiem, że powinienem dać input=USART_Receive(); , ale input=UDR; to efekt tego, że próbowałem kilku rozwiązań ;) . Tak jak pisałem po zwykłym kablu wysyłam z terminala '1' i '0' i dioda zmienia swój stan.

Temat o RS232 czytałem, na razie chciałem spróbować prostej transmisji bez buforów, tylko do celów testowych.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 kwi 2013, o 13:39 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 paź 2011
Posty: 582
Pomógł: 17

stopa napisał(a):
ak jak pisałem po zwykłym kablu wysyłam z terminala '1' i '0' i dioda zmienia swój stan.

Więc problem na 100% w apce na androida :) albo ze spraowaniem

Czy sparowałeś się z BTM poprzez telefon?
Dioda na module BTM miga albo świeci?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 kwi 2013, o 14:04 
Offline
Nowy

Dołączył(a): 26 mar 2013
Posty: 7
Pomógł: 0

tak, telefon jest sparowany. Tak jak pisałem widzę przychodzące znaki '1' i '0' na terminalu, gdy każe wysłać aplikacji znak z telefonu. Jak wysyłam znak to miga czerwona dioda TXD na zestawie uruchomieniowym - jedyna reakcja jaką mi się udaje uzyskać :)

Edycja:
Tak, dioda na BTmie po połączeniu z telefonem świeci cały czas.

Edycja2:
Zauważyłem, że po skasowaniu programu z mikrokontrolera przy wpisywaniu komend do terminala nie pojawiają się żadne krzaki. Natomiast po wgraniu programu co drugi znak to 'krzaczek'. Tak powinno być?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 kwi 2013, o 17:14 
Offline
Nowy

Dołączył(a): 26 mar 2013
Posty: 7
Pomógł: 0

ale jestem głupi, przyczyną błędu były źle podpięte wyprowadzenia Txd i Rxd. Zamieniłem je miejscami i bez problemu migam diodami ;) . Dzięki za próbę pomocy.



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 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