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



Teraz jest 17 kwi 2026, o 01:02


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 21 paź 2015, o 16:28 
Offline
Nowy

Dołączył(a): 08 lip 2015
Posty: 13
Pomógł: 0

Witam,

Chcialem zrobic robota w oparciu o ultradzwiekowy czujnik odleglosci HC SR04 zamontowany na serwie w taki sposob aby robot mogl sie "rozgladac" w razie napotkania przeszkody.
Wszystko nawet dziala, jednak przy okreslaniu kierunku robot uparcie wskazuje na skrajne prawo (chyba sugeruje zeby glosowac na korwina :mrgreen: ) wiec cos tam w srodku nie dziala, tylko pytanie co? Czy ma ktos jakis pomysl?
Generalnie to dorzucilem do kodu pomiar usredniajacy na podstawie 5 pomiarow, co troche pomoglo.
Niestety czujnik czasem wywala zamiast 0,5m wartosc odpowiadajaca 20 metrom i wtedy nawet te 5 pomiarow niewiele daje.

Glowna petla programu (w ktorej na 99,99% znajduje sie blad prezentuje sie tak:

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



Po kodzie mozna smialo jezdzic, jest to wersja niechlujna, przed liftingiem ktory zrobie jak wszystko bedzie dzialac w 100%.

Ma ktos jakies pomysly skad sie biora takie bledy?

PS gdzie trzeba definiowac F_CPU? i dlaczego nie tutaj?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 paź 2015, o 19:51 
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

Zastanów się jaka maksymalna wartość zmiennej odleglosc jest możliwa i ją ogranicz:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Pomyśl czy gdzieś nie przekraczasz rozmiaru zmiennej, bo wtedy może się przekręcić. Mam tu na myśli tą linię:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Korzystaj ze zdefiniowanych typów uint8_t, uint16_t.
Dla zmiennych które nie przekraczają 255 nie używaj uint16_t, int czy unsigned int np.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

klimek476 napisał(a):
PS gdzie trzeba definiowac F_CPU? i dlaczego nie tutaj?

W Eclipse pod prawym klawiszem masz Properties->AVR->Target Hardware i tam okienko MCU Clock Frequency. Dlatego nie w pliku c, bo może być ich wiele, a częstotliwość taktowania jest jedna i jak zmienisz ją sobie to musiałbyś grzebać się we wszystkich tych plikach co jest bez sensu. Ciekawe co masz w pliku HD44780.c.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 paź 2015, o 21:03 
Offline
Nowy

Dołączył(a): 08 lip 2015
Posty: 13
Pomógł: 0

dzieki za odpowiedzi, doszedlem do wniosku ze zmienna odleglosc faktycznie moze byc przepelniona i sie przekrecac, nie korzystam z eclipse, korzystam z atmel studio.

PS dodalem mu algorytm dosyc obciazajacy procesor ale za to usprawniajacy pomiary ktore teraz praktycznie sie nie zmieniaja,
chodzilo o to ze jezeli program wykryje ze odleglosc za bardzo urosla albo za bardzo zmalala w jednej chwili to zaczyna weryfikowac pomiar, zeby taki pomiar zostal pomyslnie zweryfikowany odleglosc nie moze sie zmienic 2 krotnie i zmalec dwukrotnie przez kolejne 4 pomiary, jezeli taki mocno odbiegajacy pomiar powtorzy sie mniej niz 4 razy, program kasuje wynik i musi zmierzyc od nowa.
Kod powstal troche z chaosu ale o dziwo...dziala.

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 paź 2015, o 21:36 
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

klimek476 napisał(a):
nie korzystam z eclipse, korzystam z atmel studio

To popatrz na przykład tutaj
topic8740.html#p98023

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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Majestic-12 [Bot] i 4 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