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



Teraz jest 18 sty 2025, o 06:44


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
Autor Wiadomość
PostNapisane: 17 kwi 2013, o 19:52 
Offline
Nowy

Dołączył(a): 22 sty 2013
Posty: 7
Pomógł: 0

Witam, buduję model robota sterowany przez telefon z androidem za pośrednictwem btm-a. Głowię się nad tym od dłuższego czasu ale nie mogę wpaść na rozwiązanie. Otóż telefon łączy się z modułem ale nie robot nie reaguje. Poniżej zamieszczam schematy jak i kod w C i aplikacji.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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


Schematy:
ObrazekObrazekObrazek

Z góry dziękuję za pomoc w rozwiązaniu problemu:)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 kwi 2013, o 21: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 wiadomosc powinna mieć modyfikator volatile, bo zmienia się w przerwaniu, a zerowanie tej zmiennej powinno być realizowane zaraz za USART_Transmit(wiadomosc);
PS.
Rysując schemat w Eagle korzystałeś pewnie z Wire, a należy połączenia rysować używając Net.
AREF procesora nie podłącza się do VCC (choć dla atmegi8 to bez znaczenia) i brakuje kondensatorów 100nF na zasilaniu układów cyfrowych.
Polecam najpierw sprawdzić to na PC w końcu przejściówka USB-Bluetooth kosztuje parę złotych i jak to będzie działać to zająć się komunikacją z telefonem z androidem.


Autor postu otrzymał pochwałę

_________________
Dragonus Cracovus: Biomagia



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

Dołączył(a): 22 sty 2013
Posty: 7
Pomógł: 0

Dzięki za podpowiedź, volatile myślę, że dobrze wstawiłem, ten reset rozumiem ze mam wstawić w main ale nie wiem jak to ma być:( Jeszcze jedno pytanie, czy mogę tak wysterować piny jak w 1 i 2 czy musi być tak jak w 3 i 4?
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 kwi 2013, o 19:07 
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

Tak powinno być jak poniżej, bo zauważ, że wcześniej flaga wiadomość musiała zostać ustawiona za zerowaniem, czyli było 50% szans na to, że po ustawieniu zaraz zostanie wyzerowana i drugie 50, że zostanie sprawdzona. A teraz jak już zostanie ustawiona to musi się wykonać USART_Transmit i dopiero zostanie ona skasowana.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

W przypadku 1 i 2 bity zostają ustawione a pozostałe są niezmieniane, bo użyty jest |=, a w przypadku 3 i 4 wybrane bity są ustawiane a pozostałe zerowane.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 kwi 2013, o 20:35 
Offline
Nowy

Dołączył(a): 22 sty 2013
Posty: 7
Pomógł: 0

Mam jeszczę pytanie, czy przy obecnym zapisie main w każdym cyklu atmegi resetują mi się wyprowadzenia, czy tylko przy starcie a potem już nie?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 kwi 2013, o 21:37 
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

Tylko przy starcie. Program zaczyna się od main, a potem krąży w pętli while(1) i dodatkowo w dowolnej chwili jak zostanie odebrany znak to realizowana jest funkcja obsługi przerwania ISR(USART_RXC_vect)


Autor postu otrzymał pochwałę

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 kwi 2013, o 18:54 
Offline
Nowy

Dołączył(a): 22 sty 2013
Posty: 7
Pomógł: 0

Ok, dzięki kolego, teraz wszystko działa:)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 maja 2013, o 18:50 
Offline
Nowy

Dołączył(a): 22 sty 2013
Posty: 7
Pomógł: 0

Aktualnie znowu natrafiłem na problem, chciałbym sterować serwami po przez pwm, lecz coś nie chce to działać, chciałbym aby po przyciśnięciu przycisku i odebraniu "6" szczęki się otwierały a po wysłaniu "7" zamykały oraz aby
a) po wysłaniu "8" zatrzymały się w tym położeniu w którym się znajdują a nie zamykały/ otwierały się do końca
b) lub po puszczeniu przycisku "6" lub "7" zatrzymywały się w danej pozycji
nie wiem która opcja a czy b jest łatwiejsza do zrealizowania:(

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 maja 2013, o 18:12 
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

Myślę, że opcja (a) z zatrzymywaniem jest prostsza. Dodaj sobie nową zmienną globalną, która, będzie przechowywać stan 0 - stop, 1 - otwieranie i 2 - zamykanie. W przerwaniu tylko zmieniaj tą wartość, a w pętli while co określony czas zwiększaj i zmniejszaj wypełnienie.

_________________
Dragonus Cracovus: Biomagia



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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