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



Teraz jest 20 maja 2026, o 14:42


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 8 cze 2014, o 09:17 
Offline
Użytkownik

Dołączył(a): 27 lip 2012
Posty: 59
Pomógł: 0

Witajcie!

Wielu konstruktorów robotów w ogóle nie pokazuje swojego kodu. Po wielu nieudanych godzinach zastępowania delay'ów timer'ami odpadam. Sam nie dam rady :(

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

Wszystko działa, ale... Te delay'e... Gdy robot wykonuje któryś z manewrów - OBROT_PRAWA, OBROT_LEWA lub któryś z programów startowych (które są zapisane w instrukcji switch) nie znajdzie przeciwnika. Jest po prostu ślepy przez te delay'e i wiadomo, jak to się kończy... Przeciwnik podjeżdża i bez problemu może zepchnąć mojego robota, bo ten nie ma się jak bronić.

Pierwsza zmiana - delay'e na timer:
No to pomyślałem, że można by zamienić delay'e na odliczanie czasu timer'ami i w trakcie wykonywania funkcji obrot_p, obrot_l, program_lewa, program_prawa sprawdzać czujniki. Z racji tego, że został mi ostatni wolny timer - timer0, to on zajmuje się odliczaniem czasu. Jest ustawiony w tryb CTC i daje przerwanie, co 1ms (bez przełączania wyjścia). Uznałem, że dla mnie dobrą podstawą czasu będzie 20ms (czas, w którym nie zapcham buforów TSOP'ów). Dlatego po zliczeniu zmiennej ilosc_1ms=20, inkrementuję zmienną ilosc_20ms, daję sygnał o wykonaniu pomiaru i zeruję ilosc_1ms. Wszystkie funkcje są oparte o właśnie podstawę czasu 20ms. Gdy któryś z czujników zauważy przeciwnika, to ilosc_20ms jest zwiększana do do takiej ilości, aby wyjść z wszystkich pętli. Oczywiście to nie działa i nie mam pojęcia czemu...

Druga zmiana - "paczkowanie" impulsów dla większego zasięgu czujników:
Dotychczas włączałem wszystkie diody IR i modulowałem sygnał na 36kHz. To działa, ale zapycha bufory odbiorników TSOP i zmniejsza się zasięg. Postanowiłem to zmienić i dodałem tzw. "paczkowanie". Teraz wysyłam sygnał testowy (według DS), czyli 30 impulsów (bo tyle wykona się w ciągu 85us). Problem w tym, że tutaj też mam delay'e. Drugi problem, że funkcja czujnik() nie działa jeśli jest ta zmienna stan. Bez zmiennej, czyli z return'em już po samym odczycie stanu pinu działa, ale nie mam pewności czy funkcja wykonuje się do końca - czy dioda zostanie zgaszona.

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


Będę ogromnie wdzięczny za każdą pomoc :D Robot wprawdzie przechodzi na emeryturę, ale chciałbym go odstawić na półkę, jako w pełni ukończonego :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 cze 2014, o 09:41 
Offline
Moderator
Avatar użytkownika

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

Pierwszy i PODSTAWOWY twój problem to to, że praktycznie W OGÓLE nie korzystasz z funkcji. Twoja pętla główna jest napuchnięta do granic możliwości i robi się z tego taki jakby program liniowy w Bascomie w jednym pliku ....

Pomyśl - zasada jest jedna - PĘTLA GŁÓWNA programu powinna być jak najkrótsza a z niej powinny być wywoływane funkcje ... głównie .. bo wiadomo że czasem parę IF'ów się trafi

to właśnie przez to - przestajesz sam panować nad kodem ... analiza takiego kodu jest mega ciężka ...


poza tym tworzenie TAKICH - (nie obraź się za określenie) POTWORKÓW:

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


to już gwóźdź do przysłowiowej trumny .... odnośnie tego "potworka" obejrzyj sobie to:

http://mirekk36.blogspot.com/2014/05/mi ... rawki.html

ok ?

_________________
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: 8 cze 2014, o 10:49 
Offline
Użytkownik

Dołączył(a): 27 lip 2012
Posty: 59
Pomógł: 0

Dzięki a porady! Obejrzę film w wolnym czasie i będę kombinował :)

Program byłoby pewnie znacznie łatwiej zrobić, gdyby nie to, że sobie utrudniłem życie tymi czujnikami.

Ten "tworek" miał być poprawiony, ale spełniał swoją funkcję, więc pozostał na miejscu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 cze 2014, o 12:34 

Pomógł: 0

Zajawki były w pierwszych poradnikach, snake, calblacki, eprom itd. oraz w książce wyjaśniając sens pliku common.h

Dlatego zawsze warto opisać co ma robić program na kartce i podzielić go na poszczególne sekcje, algorytmy.



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 8 cze 2014, o 22:24 
Offline
Moderator
Avatar użytkownika

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

mokrowski napisał(a):
Wiesz Mirku, taka mnie ,,myśl puknęła w głowę".


Tak tak - mam to od dawna na myśli ... i powoli mam nadzieję, że i mi uda się to jakoś dobrze przedstawić - a będę to poruszał i w poradnikach wideo ... ale też (jeśli uda mi się napisać) kolejne książki to już od YellowBooka - zacznie się czas - korzystania teraz z tego co dowiedzieliśmy się w dwóch pierwszych książkach ... i jak tworzyć projekty od początku do końca - dobierając odpowiednio poznane wcześniej narzędzia z obydwu książek i jak stosować je w praktyce - bo zdaję sobie sprawę, że z tym jest duży problem... Tyle tylko że w poradnikach nie uda mi się wszystkiego przedstawić tak jak bym chciał - dlatego sporą część widzę w książkach i już dawno mam to jakby zaplanowane .... a poradniki będą nadal mam nadzieję uzupełnieniem ...

wbrew pozorom to nie jest (przynajmniej dla mnie łatwe zadanie) ... skutecznie przekazać taką wiedzę ... bo wielu czytelników z jednej strony jej oczekuje ale z drugiej strony jak tylko zobaczy coś ciut bardziej skomplikowanego to zaraz się boi w ogóle albo tego oglądać albo czytać .... obawiając się, że i tak niby nie da sobie rady ... albo że nagle czasu nie ma itp ...

dlatego mam tu pewne pomysły na przekaz książkowy - ale zobaczymy czy się sprawdzi ;)

kolega rezasurmar miał też rację że po części w tych poradnikach o callbackach ale i w wielu innych również o tym eepromie, że z nich jak ktoś chce - ale jak chce ... to również zobaczy jaką drogą iść w sensie dzielenia programu na funkcje bo robię tam to na żywo że tak powiem, pomimo że główny cel poradnika jest niby inny .... No ale .... znowu - wielu początkujących boi się nawet tego obejrzeć .... podpatrzeć, chociaż się oswoić ... a przecież w międzyczasie cały czas nawijam w poradniku teksty typu

"no to teraz powołamy sobie do życia funkcję x" ... itd itp itd

_________________
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: 9 cze 2014, o 13:27 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 maja 2013
Posty: 432
Lokalizacja: Gostyń / Poznań
Pomógł: 25

Fakt wiedza o której mówicie by się przydała... ja też bawiąc się potrafię wykorzystać to co w BB ale takiego podejścia praktycznego brak... wiem że to sie własnie nabywa w miare pisania kodów ale jakieś podstawy i standardy dobrze jak ktoś pokaże... pozniej praktyka i swoj styl programowania kazdy sobie pewnie wypracuje... Łatwiej jak ktoś w tym pracuje, natomiast jak ktoś to traktuje jako hobby to tej praktyki ma sie znacznie mniej niestety...

Mozna sie do jakiejs przedsprzedazy na YellowBooka zapisac? Bo chetnie bym juz cos przygarnal :D Jakas data wydania juz znana? Ten rok? Nie ten?

_________________
Podpis...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 cze 2014, o 13:40 
Offline
Moderator
Avatar użytkownika

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

eMCe2 napisał(a):
Mozna sie do jakiejs przedsprzedazy na YellowBooka zapisac? Bo chetnie bym juz cos przygarnal Jakas data wydania juz znana? Ten rok? Nie ten?


Nie nie, proszę - jeszcze dużo za wcześnie aby cokolwiek o tym mówić :( przykro mi .... ale za to obiecuję, że dla forumowicza będzie tłusty, wręcz ociekający tłuszczem rabat ;)

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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


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