soban Napisano Czerwiec 20, 2011 Udostępnij Napisano Czerwiec 20, 2011 Witam wszystkich. Zaczynam zabawę z wyświetlaczem LCD. Bawiłem się już kontrastem itp. tak więc teraz przyszła pora na animację. Nigdzie nie mogę znaleźć poradnika odnośnie tej funkcji. Dowiedziałem się tylko dzięki własnym kombinacjom, że istnieje funkcja dodawania obiektów w BASCOM-AVR. Niżej prezentuje podstawowy kod którym się posługuję od samego początku: $regfile = "m128def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Porte.2 , Rs = Porte.3 Cls Do Locate 1 , 1 Lcd "LCD 2x16 Nauka" Locate 2 , 1 Lcd "" Loop End Tak więc wracając do funkcji tworzenia obiektów postanowiłem zrobić gwiazdę, słońce jak kto woli która się obraca (czyt. promienie się obracają). Dostałem 2 kody na 2 różne pozycje tej figury: Deflcdchar [x],32,32,4,4,31,4,4,32' replace [x] with number (0-7) Deflcdchar [x],32,32,17,10,4,10,17,32' replace [x] with number (0-7) Proszę o pomoc odnośnie programu który umożliwiłby mi wstawienie tych obiektów oraz sposobu dzięki któremu ta gwiazdka obracałaby się w jednym miejscu. Za wszelką pomoc z góry dziękuję. PS: Program w Bascomie Link do komentarza Share on other sites More sharing options...
Robomaniak Czerwiec 20, 2011 Udostępnij Czerwiec 20, 2011 $regfile = "m128def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Porte.2 , Rs = Porte.3 Cls Do Lcd chr(0) waitms 100 lcd chr(1) waitms 100 Deflcdchar 0,32,32,4,4,31,4,4,32' replace [x] with number (0-7) Deflcdchar 1,32,32,17,10,4,10,17,32' replace [x] with number (0-7) Loop End obrazki zrobione przez to urządzenie bacomowskie wczytujemy lcd chr(x) tam gdzie x to liczba którą ustawiłeś w deflcdchar Mam nadzieję że o to chodziło i w miarę jasno się wyraziłem. Link do komentarza Share on other sites More sharing options...
soban Czerwiec 20, 2011 Autor tematu Udostępnij Czerwiec 20, 2011 Robomaniak to co wpisałeś daje jeden symbol za drugim a mi chodzi o to żeby te znaki były w jednej kratce i żeby zmieniały się np. co pół sekundy żeby utworzyć animację taką. W sensie raz jeden raz drugi, raz jeden raz drugi w pętli No chyba, że Cię źle zrozumiałem zrobiłem coś takiego Kod: $regfile = "m128def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Porte.2 , Rs = Porte.3 Cls Do Lcd Chr(0) waitms 100 Lcd Chr(1) waitms 100 Deflcdchar 0 , 32 , 32 , 4 , 4 , 31 , 4 , 4 , 32 ' replace [0] with number (0-7) Deflcdchar 1 , 32 , 32 , 17 , 10 , 4 , 10 , 17 , 32 ' replace [1] with number (0-7) Loop End Link do komentarza Share on other sites More sharing options...
Robomaniak Czerwiec 20, 2011 Udostępnij Czerwiec 20, 2011 aha czyli się nie zrozumieliśmy $regfile = "m128def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Porte.2 , Rs = Porte.3 Cls Do locate 1 ,1 Lcd chr(0) waitms 100 locate 1, 1 lcd chr(1) waitms 100 Deflcdchar 0,32,32,4,4,31,4,4,32' replace [x] with number (0-7) Deflcdchar 1,32,32,17,10,4,10,17,32' replace [x] with number (0-7) Loop End teraz powinno zadziałać. 1 Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Produkcja i montaż PCB - wybierz sprawdzone PCBWay! • Darmowe płytki dla studentów i projektów non-profit • Tylko 5$ za 10 prototypów PCB w 24 godziny • Usługa projektowania PCB na zlecenie • Montaż PCB od 30$ + bezpłatna dostawa i szablony • Darmowe narzędzie do podglądu plików Gerber Zobacz również » Film z fabryki PCBWay
soban Czerwiec 20, 2011 Autor tematu Udostępnij Czerwiec 20, 2011 Dzięki wielkie Piwo i pomógł 4you a jeśli jesteś taki dobry w te LCD to wiesz może jak zrobić żeby się raz zakręciła i przeskoczyła w kolejną kratkę i tak dalej i tak dalej??? PS: Może zrobisz jakiś tutek do LCD? Bo nie ma jeszcze takiego a przynajmniej ja nie znalazłem, gdzie pokazane by były różne kombinacje z przesuwaniem, animacjami nie wiem jakimiś takimi rzeczami które można by było dalej rozwijać według własnego gustu. Link do komentarza Share on other sites More sharing options...
Robomaniak Czerwiec 20, 2011 Udostępnij Czerwiec 20, 2011 wszystko jest w polskim helpie do bascoma Link do komentarza Share on other sites More sharing options...
soban Czerwiec 20, 2011 Autor tematu Udostępnij Czerwiec 20, 2011 To podpowiedz mi jeszcze tylko tyle czemu to nie chodzi płynnie tylko robi 4 znaki, chwila przerwy, 4 znaki, znowu przerwa itd. Jak się pozbyć tej przerwy? $regfile = "m128def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Porte.2 , Rs = Porte.3 Cls Do lcd chr(1) Waitms 30 locate 1, 1 Lcd Chr(2) Waitms 30 locate 1, 1 Lcd Chr(3) Waitms 30 locate 1, 1 Lcd Chr(4) Waitms 30 Locate 1 , 1 Deflcdchar 1 , 32 , 32 , 31 , 17 , 23 , 16 , 31 , 32 ' replace [x] with number (0-7) Deflcdchar 2 , 32 , 32 , 29 , 21 , 21 , 17 , 31 , 32 ' replace [x] with number (0-7) Deflcdchar 3 , 32 , 32 , 31 , 1 , 29 , 17 , 31 , 32 ' replace [x] with number (0-7) Deflcdchar 4 , 32 , 32 , 31 , 17 , 21 , 21 , 23 , 32 ' replace [x] with number (0-7) Loop End [ Dodano: 20-06-2011, 21:00 ] Wytłumaczy mi to ktoś? Byłbym mega wdzięczny Link do komentarza Share on other sites More sharing options...
Harnas Czerwiec 20, 2011 Udostępnij Czerwiec 20, 2011 Może daj Deflcdchar 1 , 32 , 32 , 31 , 17 , 23 , 16 , 31 , 32 ' replace [x] with number (0-7) Deflcdchar 2 , 32 , 32 , 29 , 21 , 21 , 17 , 31 , 32 ' replace [x] with number (0-7) Deflcdchar 3 , 32 , 32 , 31 , 1 , 29 , 17 , 31 , 32 ' replace [x] with number (0-7) Deflcdchar 4 , 32 , 32 , 31 , 17 , 21 , 21 , 23 , 32 ' replace [x] with number (0-7) przed pętlą do..loop. Link do komentarza Share on other sites More sharing options...
soban Czerwiec 21, 2011 Autor tematu Udostępnij Czerwiec 21, 2011 Wymyśliłem coś takiego: $regfile = "m128def.dat" $crystal = 4000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Porte.2 , Rs = Porte.3 Dim Jman As Byte Cursor Off Deflcdchar 0 , 32 , 32 , 32 , 4 , 14 , 31 , 14 , 14 ' replace [x] with number (0-7) Deflcdchar 1 , 32 , 32 , 4 , 14 , 31 , 14 , 14 , 32 ' replace [x] with number (0-7) Deflcdchar 2 , 32 , 4 , 14 , 31 , 14 , 14 , 32 , 32 ' replace [x] with number (0-7) Deflcdchar 3 , 4 , 14 , 31 , 14 , 14 , 32 , 32 , 32 ' replace [x] with number (0-7) Deflcdchar 4 , 14 , 31 , 14 , 14 , 32 , 32 , 32 , 32 ' replace [x] with number (0-7) Deflcdchar 5 , 31 , 14 , 14 , 32 , 32 , 32 , 32 , 32 ' replace [x] with number (0-7) Deflcdchar 6 , 14 , 14 , 32 , 32 , 32 , 32 , 32 , 32 ' replace [x] with number (0-7) Deflcdchar 7 , 14 , 32 , 32 , 32 , 32 , 32 , 32 , 32 ' replace [x] with number (0-7) Cls Do For Jman = 0 To 7 Step 1 Waitms 50 Locate 2 , 7 Lcd Chr(jman) Next For Jman = 6 To 0 Step -1 Waitms 50 Locate 2 , 7 Lcd Chr(jman) Next Loop End No i teraz mam problem bo nie wiem np jak dodać drugi taki sam element tak aby chodził równo z tym 1 a nie czekał aż 1 skończy pracę i dopiero zaczął swój ruch. Link do komentarza Share on other sites More sharing options...
BlackJack Czerwiec 21, 2011 Udostępnij Czerwiec 21, 2011 BASCOM akurat nie jest najszczęśliwszym rozwiązaniem do robienia animacji. A już szczególnie na Alfanumerycznym LCD. Używana przez was instrukcja, DefLCDchar zwyczajnie nie została do tego celu pomyślana. Ma ona jedynie umożliwić wyświetlanie nietypowych znaków a nie tworzenie animacji. Zresztą zalecane jest użycie po niej instrukcji CLS co praktycznie skreśla ją w tworzeniu animacji. Wyświetlacze kompatybilne z standardem Hitachi posiadają pamięć CG-RAM, gdzie można zdefiniować 8 znaków użytkownika. Maja one kody od 0 do 7 (oraz 8 - 15 zdublowane przyp. tłumacza). Znaki te można wyświetlać używając instrukcji LCD w połączeniu z funkcja CHR(). W środowisko BASCOM wbudowano narzędzie projektowe dla tych znaków. Znajduje się ono w menu: Tools | Character Designer. Uwaga! Po instrukcjach DEFLCDCHAR powinna występować instrukcja CLS. Aby płynnie coś animować należało by stworzyć własne procedury, operujące bezpośrednio na CGRAM wyświetlacza. Link do komentarza Share on other sites More sharing options...
Nawyk Czerwiec 21, 2011 Udostępnij Czerwiec 21, 2011 Można jeszcze zmienić magistralę na 8bit. Polecam ten temat, korzystałem z podanej tam biblioteki i działała bardzo dobrze: http://www.elektroda.pl/rtvforum/topic797750.html Link do komentarza Share on other sites More sharing options...
soban Czerwiec 21, 2011 Autor tematu Udostępnij Czerwiec 21, 2011 No ok stworzyłem najprostszą strzałkę którą dałem w kodzie wyżej a chciałbym np zrobić dwie takie strzałki jedna dajmy w drugiej linii na 5miejscu a druga w tej samej linii na miejscu 8 mają się ruszać identycznie jedna z drugą to jak mam o zrobić? Pomożecie? Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »