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



Teraz jest 16 sty 2026, o 10:11


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
Autor Wiadomość
PostNapisane: 22 sie 2013, o 14:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sie 2012
Posty: 159
Pomógł: 1

Witam wszystkich !!

Mam taki problem - buduję robota minisumo i chciałbym uzyskać jak najdokładniejsze odmierzanie czasu (5s), dokładność ma znaczenie, bo zazwyczaj który robot wystartuje pierwszy ma większe szanse na wygraną. W którymś temacie Mirek napisał, że nie ma co męczyć timerów do odmierzania tak długich czasów. A więc moje pytanie to jakbyście Wy to zrobili ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sie 2013, o 15:01 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 sie 2012
Posty: 245
Lokalizacja: Kielce
Pomógł: 6

Nie musisz używać timera. Skoro podczas tych 5 sekund robot i tak nic nie będzie robił w tle. Da ci to takie same rezultaty jakbyś użył timera (a może i nawet trochę lepsze ,bo przecież przed skokiem do obsługi przerwania trzeba jeszcze odłożyć dane na stos itp co dodatkowo opóźnia. - timerów używamy w systemach które coś robią w tle, z wywłaszczeniem, w których dane wywołanie przerwania musi być powtarzane w równych i konkretnych odstępach ). Co ty byś tam chciał konkretnie zrobić? Ustawić flagę? Wywołać funkcję?

Dokładność zależy tu tylko od jakości rezonatora. Kwarce mają jakieś tam minimalne odchyłki ale jak ci tak zależy na dokładności to zrób sobie program który dokładnie sprawdzi częstotliwość kwarcu i potem ją wpisz w ustawieniach kompilatora.

Akurat w tym wypadku już lepsze od timera był by delay - użycie go na początku, kiedy robot jeszcze nic nie robi jest jak najbardziej OK.

_________________
1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796



Ostatnio edytowano 22 sie 2013, o 15:18 przez Wojtek001, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sie 2013, o 15:15 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sie 2012
Posty: 159
Pomógł: 1

No właśnie - te delay - jak dobrać wartość żeby była równa równo 5s, albo jak ją zmierzyć ? ( stoper odpada, bo jest zawsze błąd ludzki )



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sie 2013, o 15:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 sie 2012
Posty: 245
Lokalizacja: Kielce
Pomógł: 6

Zrób tak:
Specjalnie na potrzebę zbadania dokładności kwarcu zrób program narzędziowy np. na stykówce który będzie wywoływał przerwania co sekundę z użyciem timera i w tym przerwaniu zwiększał wartość jakiejś zmiennej (LU - jakiejś długiej np 32 bitowej) a następnie wysyłał ją na wyświetlacz(uważaj na funkcje konwertującą w bibilotece LCD) / do terminala. Odpal program, sprawdź z wzorcem czasu np. w necie i za kilka dni porównaj, przelicz i to wszystko.
Kiedy już będziesz wiedział jaka jest rzeczywista częstotliwość twojego kwarcu wpisz ją w ustawianiach kompilatora.

Moim zdaniem gra nie warta świeczki. Przec9eż jak uruchomisz robota o kilka ms wcześniej to chyba nikt nie zauważy? :D

_________________
1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sie 2013, o 15:35 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sie 2012
Posty: 159
Pomógł: 1

W sumie może masz rację - ale popatrz na filmiki z minisumo - te roboty mają prędkość nawet do ~3m/s, póki co zrobię na delay'ach, jak będzie źle, spróbuję z kwarcem ;) dzięki za pomoc

A co do kilku ms to jednak zauważy - może nie człowiek, ale system wizyjny ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sie 2013, o 20:16 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 cze 2012
Posty: 95
Lokalizacja: Nowa Sól
Pomógł: 1

Delay nie jest najlepszym rozwiązaniem, bo podczas tych 5 sekund można zrobić kilka innych rzeczy, np. sprawdzić położenie przeciwnika, jeśli jest ustawiony w zasięgu czujników.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sie 2013, o 21:15 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 sie 2012
Posty: 245
Lokalizacja: Kielce
Pomógł: 6

Na początku i tak zawsze będzie naprzeciwko.

_________________
1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sie 2013, o 23:39 
Offline
Użytkownik

Dołączył(a): 15 cze 2013
Posty: 599
Lokalizacja: Lubin
Zbananowany użytkownik

Pomógł: 35

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


taki delay_ms 5000 da 5 sekund
dokładnie żeby było zmierzyć częstotliwość kwarcu i taka wpisać w F_CPU



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 sie 2013, o 01:20 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 sty 2013
Posty: 328
Lokalizacja: Rzgów k. Łodzi
Pomógł: 11

Możesz też sprawdzić za pomocą analizatora logicznego ;)

Wysłane z mojego Nexus 7 za pomocą Tapatalk 4

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 sie 2013, o 19:35 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sie 2012
Posty: 159
Pomógł: 1

Dzięki wszystkim za odpowiedzi ;)

Cytuj:
Delay nie jest najlepszym rozwiązaniem, bo podczas tych 5 sekund można zrobić kilka innych rzeczy, np. sprawdzić położenie przeciwnika, jeśli jest ustawiony w zasięgu czujników.


Ostatnio jak byłem na robomaticon'ie to kazali zawsze ustawiać tam gdzie nie masz czujników ( nie wiem co by było gdyby brał udział jeżyk nes'a86 :) ).

Niestety nie posiadam analizatora, więc póki co skorzystam z podanego kodu ;)

pozdrawiam



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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