Komenda shiftlcd left tego nie zrealizuje Niby dlaczego? Problem będzie tylko, gdybyś chciał wykorzystać inne linie do czegoś innego. Tu masz przykładowy program, korzystający z pamięci EEPROM: $eeprom Data "Baaardzo d{003}uuugi napis.!Jest zapisany w pami{002}ci EEPROM. W ATTiny 2313 mo{007}e mie{001} do...
Przykład bez użycia tablic... [syntax=basic4gl]$regfile = "m8515.dat" ' specify the used micro $crystal = 4000000 ' used crystal frequency $baud = 19200 ' use baud rate $hwstack = 32 ' default use 32 for the hardware stack $swstack = 10 ' default use 10 for the SW stack $framesize = 40 ' default use 40 for the frame space $sim 'Config Lcdpin = Pin ,...
(at)zumek Dzięki za kod, ale nie do końca wiem jak on działa. Szkoda :( W1 to tablica wskaźników na W, przesunięta o dwa miejsca? Mylisz się :( W1 , to jakby wskaźnik na W powiększony o 1 element tablicy W , czyli 2 bajty . Natomiast tablica wskaźników , to ... nie z tej bajki ;) A dokładnie rzecz ujmując , to Bascom definiuje tablicę W1 , w obszarze...
Witam, na początek powiem ze jestem początkujący, więc prosze o wyrozumiałość. Problem w tym jak napisać programu który by za pomocą przycisków przesuwał tekst w prawo/lewo, lub góra/dół. Dołączam kod programu który napisałem i zdjęcie z proteusa. Z góry dzięki. http://obrazki.elektroda.pl/9491384700_1...
Nie musisz się w to bawić "ręcznie" Możesz wziąć zmienną i ustawić w niej 1 jako wartośc a potem zrobic Shiftout gdzie można ustawiać ilość bitów do wypchniecia czyli taktów. Nominalnie Bascom robi dwa NOP`y pomiedzy zmiana stanów zegara. Czyli potem możesz brać jakiś Bajt z wartością 0 i wypychać tylko jeden Bit ;) Potem sobie mozesz napisac makro...
Jeden mały rysunek w pamięci, przed wyświetleniem kasować ekran wyświetlacza i wysyłać rysunek od określonego adresu (zmiennego).
' Na początku kodu Index_tab=0 ...... ...... If Licznik = 1200 Then IF Index_tab=3 Then ' przesuniecie w tył jeżeli pozyskano co najmniej 3 pomiary Pomiar(1)=Pomiar(2) Pomiar(2)=Pomiar(3) Else ' Fragment kodu wykonywany dla Index_tab=0,1 i 2 Incr Index_tab IF Index_tab>3 Then Index_tab=3 End If Pomiar(index_tab)...
Witaj. Poniższy programik napisany jest w Bascom AVR - dla '51 jest pewnie podobnie. Spróbuj tego: Dim S As String * 16 Dim Stala As String * 60 Dim I As Byte Stala = " ABCDEFGHIJKLMNOPQRSTUVWXYZ " Do For I = 1 To 40 S = Mid(stala , I , 16) Locate 2 , 1 Lcd S Waitms 250 Next I Loop Pozdrowienia - teedd
Przesuwający się tekst może się komuś przyda. Długość tekstu ograniczona do 100 znaków, ale można zmienić w linijce: Proszę na przyszłość używać tagu ] do wklejania kodu Bascom... /syntax] .
Jest to wyświetlacz 4x20 Wyświetlane są na nim Temp.V. ,2 czy 3 napisy. Dlatego ważne jest by strzałka poruszała się w określonym polu np. Locate 4 ,10 do 4 ,15 Nie można przesuwać całego LCD. Ma być to czujnik ruchu. po naciśnięciu przycisku strzałka ma przeskoczyć o 1 pole i czekać na następne naciśnięcie. Czujnikiem jest fototranzystor więc działa...
Chodzi o instrukcję SHIFT ? ... Nie, chodziło mi o MAKEINT(LSB,MSB), bo co Ci po SHIFT, skoro nie wiesz w którą stronę przesuwać :D
Witam Bardzo dziękuję za pomoc oaz ten program. Jedyne czego nie rozumiem w programie Kolegi, to zasady działania polecenia Shift. Z tego co zrozumiałem, to chodzi o przesuwanie bitów zmiennej, czyli umożliwia to de facto dzielenie lub możenie liczby. A co w przypadku, gdy chcę pomnożyć moją liczbę np przez 0.74, w tym wypadku byłby to zapis: [syntax=vbnet]Liczba...
Witam Muszę zrobić menu w Bascomie. Będą to dwa przyciski typu Enter i Esc oraz 2 strzałki 1 w górę i 1 w dół. Ruch strzałek będzie sygnalizowany przez "*", która będzie przesuwać się zgodnie z kierunkiem naciśniętej strzałki.
Obracają się dwoma jednocześnie , a mają pojedynczo zależnie od przycisku , po obrocie w prawo jak i w lewo ma ustawić pozycje środkowa, i od środka przesuwać w prawo i lewo . Nie ustawiają się na środku
Dzięki megaman123 za pomoc...Napiłem się kawy tak jak ty, pomyślałem trochę i zrobiłem jak radziłeś. Nareszcie działa. Tylko jest jeden problem, ponieważ mogę wyświetlić i przesuwać tylko 39 znaków - dzieje się to za sprawą tego, że Bascom umożliwia stworzenie tylko 254 bajtowe tablice ;/. Może macie jakieś pomysły co zrobić aby móc wyświetlać więcej...
z tabelka to dowaliłem ... przepraszam...zapędziłem się odpowiedzią... Bardzo dziękuję, że jestes taki pomocny. Napisałem też do Ciebie PW. Przeanalizuję to wszystko dzisiaj i zobaczę co mi wyjdzie, nie mogę nigdzie znaleść przykładu procedury przesuwania bitów na 3 pinach - znalazłem tylko przesuwanie na całym porcie co do tabelki to widzę prawidłowość,...
Witam, Napięcie podłączone jest prawidłowo tak jak matryca. W książce jest jeden schemat i dwa programy. Jeden z programów działa - czyli wyświetla tekst znakami po kolei – tu jest OK (czyli matryca podłaczona dobrze) Natomiast drugi program (listing wyżej) ma za zadanie przesuwać tekst - to niestety nie działa. Dodatkowo poza wykonaniem układu...
Wszystko działa prawie idealnie. Prawie dlatego, że nie chce mi przesuwać maski. Z jakiego powodu ? robiw , dodam, że sposób, do którego podałeś link jest względnie dobry. Niestety posiada trzy pętle For. Nie wiem czy to prawda, gdzieś czytałem, że Bascom masakruje pętle For. Tak czy owak trzeba odczytać kod ASCI i przydzielić mu adres czcionki. A co...
W sumie już rozumiem :D A jakich tranzystorów kolega użył? Jedna rzecz mnie zastanawia, czy powodem tego zachowania które opisałem, nie jest to, że przemiatam wyświetlacze w poziomie. Kolega z kolei w pionie więc inaczej. Ale nie będzie mi łatwo sprawdzić czy zadziała przy przemiataniu w pionie, bo musiałbym przebudować całą matrycę do tego :D Wolałbym...
Ale to jest totalny bezsens. Po co konwersję ma robić AVR skoro może ją zrobić PC? Mi taka głupota zdarzyła się tylko raz na etapie wersji Beta programu kiedy BASCOM nie chciał wklepać do rejestru trzeciego w kolejności bajtu adresu Labela. Musiałem wklepywać adres i przesuwać go rozkazami rol ;p Na moje oko jedyna możliwość to przekonwertowanie kodu...
Witam! Proszę o pomoc w uzupełnieniu programu w bascom. Napisałem programik (korzystając z dostępnych listingów w sieci). Który pobiera dane z pilota wyświetla je na LCD, i ustawia odpowiednio porty, które zapalają ledy. Jedna z komend mówi żeby przesuwać bity, w lewo, a inna w prawo.. Nawet wszystko działa. :| Teraz chciałbym iść dalej, i zmusić program...
Zatem należałoby kolegów nieco uświadomić: - CLS TEXT | GRAPH jest dla wyświetlaczy graficznych posiadających wbudowany generator znaków i tym samym posiadający dwie strony pamięci: jedna na grafikę, drugą na tekst. - CLS jako, że jest komendą niezależną przywraca status sterownika tak, że korzysta on później z pamięci DATA RAM i wszystko co jest później...
Mam następujący problem: posiadam tablice diodową 126 na 15 LED i trzeba napisać drugi generator znaków (jeden już mam trochę o nim jest w poście Bascom i cuda które się dzieją jeśli admin uzna że oba posty powinny zostać scalone to proszę scalić zakładam nowy z powodu iż tamten był defakto o problemach z kompilatorem nie o samej tablicy) Sprawa wygląda...
Ja Ci napisze jeszcze coś ciekawszego. W folderze Bascom jest plik PDF o nazwie BASCAVR.pdf To dopiero kopalnia wiedzy jeśli chodzi o udogodnienia. Przesuwałem jak przysłowiowy osioł linijka po linijce jak czyjeś kody były przyklejone do lewej linii albo bez wcięć. Teraz zaznaczam taki blok który chcę przesunąć i naciskam CTRL + SHIFT + I Suuuuuper...
INKEY i INPUT stricte nie czyszczą bufora. Od tego jest CLEAR SERIALIN. Jednak korzystanie z INKEY i INPUT pobierają dane z bufora i przesuwają wskaźniki, co także powoduje, że bufor jest "opróżniany" - choć dane w pamięci dalej są.
Zamieszczam w załączniku kod programu. Zmiana tekstu jak można zauważyć odbywa się przez płynne przesuwanie literek po wyświetlaczu. Kod jest modyfikacja programu z książki : Projektowanie mikrokontrolerow AVR w praktyce. Bascom. Literki sam robiłem więc mogą być niektóre nie takie jak powinny. Pozdrawiam
Bufor ten ma 3 znaki ale po pojawieniu się pierwszego znaku od razu jest on przesuwany bo bufora programowego. Czyli działa to jak jak by bufor sprzętowy miał tylko 1 znak.
On będzie się zwiększał o 1 w tym przypadku, bo wartość przesunięcia przekazywana do funkcji też się tak zwiększa. Jeśli jednak np. zacząłbyś przesuwać w prawo to funkcja nie działałaby prawidłowo, poza tym musiałbyś tą wartość zapamiętać poza funkcją dla danego napisu (tak, jak teraz przesuniecie ). Dlatego trzeba to liczyć.
Napisz program od nowa, przekombinowałeś wszystko maksymalnie, takie sterowanie da się zrobić prościej. Nie ma żadnego schematu. Przesuwasz sobie bity po porcie sterując jakoś, czymś... Dodatkowo przesuwasz aż 4 bity. Ile cewek ma twój silnik że aż 4 bity trzeba przesuwać?
Stwórz tablicę za pomocą: Dim Zmienna(5) As Byte 'lub Word, Integer, Long, Single, Double... Przed zapisem aktualnej wartości do Zmienna(1), przesuń wartości z 1, 2, 3, 4 o jeden indeks (na 2, 3, 4, 5). Pamiętaj aby zrobić to tak, by nie "zamazać" wartości przy przesuwaniu. Potem zapisujesz aktualną wartość do Zmienna(1) i masz komplet, który...
Adres się zgadza. &H6C podzielone przez dwa to &H36 ;) Możesz sprawdzić wbudowanym w Windows kalkulatorem programisty. W nocie podają adres nie uwzgledniając bitu RW. Bascom od razu przesuwa adres w lewo o jeden bit żeby zrobić miejsce na bit RW. Przesunięcie w lewo oznacza jednocześnie mnożenie przez dwa. Adres do zapisu &H6C a adres do odczytu &H6D....
Shift jest od przesuwania bitów. Ty musisz przesuwać całe bajty w tablicy Buffer_in. Użyj sobie mojej metody odbierania: [syntax=vbnet]Inputbin Dana Buffer_in(in_pos) = Dana Incr In_pos If In_pos = 9 Then 'Jak zmieści się co najmniej jedna cala ramka danych If Buffer_in(1) = &H01 Then 'To sprawdzamy czy jest prawidłowo rozpoczęta If Buffer_in(2) = &H10...
Tu masz troszkę prościej, z użyciem operacji przesunięcia bitowego (krótszy kod, łatwiejsza zmiana prędkości linijki led) Dim Led As Byte Dim Kier As Bit Config Portb = Output 'wszystkie porty b jako wyjścia' Portb = &B00000000 'wszystkie porty b w stanie niskim Config Portd = Output 'wszystkie porty d jako wyjscia Portd = &B0000000 'wszystkie porty...
wywal starsza połówkę np przesuwając rejestr w lewo czterokrotnie komendą LSL - Logical Shift Left a następnie przesuwając w prawo LSR LDI działa tylko na stałych 8bitowych P.S. Bardziej po polskiemu to się "używa" niż "urzywa"
Dzielenie przez 16 to to samo co przesuwanie bajtu w prawo o 4. Czyli jest to wywalenie jakby 4 najmłodszych bitów, czyli odczyt temp będzie z dokładnością do 0,5 stopnia. Zajrzyj do notki. 5 najstarszych bitów to znak czy dodatnia czy ujemna, a 4 najmłodsze oznaczają miejsca po przecinku. Rozumiem ze zmiana z systemu binarnego na dziesiętny jest znana?...
yy... a jak to mniej/więcej wysterować np. pod Bascom'em lub C ?
.. myslalem, ze jest do tego jakies 'tajemne' polecenie :) widze, ze bez nakladania masek, przesuwania sie nie obedzie..
Na talerzu podawać nie będziem, ale podpowiedzieć można. 1. Z takim podejściem zaraz podpadniesz pod p.16 regulaminu... 2. Schemat rzeczywiście jest źle narysowany (bo zapewne to właśnie o technikę głównie chodziło). Schematy w Eagle twórz tak, by w miejscu połączeń 3 przewodów pojawaiły się kropki (tak, jak wygląda to nieszczęsne połączenie AREF z...
Do przesuwania bitów służy polecenie shift :) Poczytaj w pomocy bascom'a.
Tak to da się zrobić. Godziny 5 bitów, minuty 6 bitów, miesiąc 4 bity, dzień 5 bitów, rodzaj x bitów. Razem 20 bitów + x. Kodowanie: Dim temp as long '.... temp = godziny shift temp, left, 5 temp = temp OR minuty shift temp, left, 6 temp = temp OR miesiac Działa jak widać dodajemy przesuwamy o odpowiednią ilość bitów i następną zmienną dodajemy w puste...
Niedługo skończę testy mój programik praktycznie wyciska wszystko z bascoma. atom czemu po wysłaniu każdych 8 bitów aktualizujesz adres? Sterownik wyświetlacza sam przesuwa swój wskaźnik więc potrzebne jest to tylko przy nowej linii. Przeciez pisałem. Bo nie chciało mi się sprawdzić czy to zadziała :D Co do nowej linii: Tam też nie trzeba aktualizować...
robisz to za każdym razem tak : 1. Zerujesz rejestr/zmienna w której chcesz miec wynik. 2. Przesuwasz rejestr/zmienna o 1 bit w lewo bez rotacji. 3. Jeśli P1.1 = 1 to ustawiasz najmłodszy bit w rejestrze/zmiennej, jeśli nie to zerujesz (poprostu dodajesz zawartość pinu do rejestru/zmiennej) 4. Jesli ni eodebrałes jeszcze 8 bitow to skocz do 2. Pozdrawiam...
Jak można w Bascom x51 zmieniać (przesuwać) długość liczby wyświetlanej na LCD. Przykładowy program przedstawia problem. Jak przechodzę z liczby 100 na 99 to pozostaje nie potrzebne zero na wyświetlaczu , a jak przechodzi z 10 na 9 to pozostają dwa zera. Kolejny problem którego chcę się pozbyć to kreska za wyświetlaną liczbą „_”. Dim I As...
Witam Wart_nap = Fusing(r , "#.##" ) Wart_nap = Format(Wart_nap , " ") Wtedy nie będzie się przesuwał napis
Sposób obsługi tego rejestru jest chyba taki że wybierasz go i wtedy przesuwające się jeden po drugim bity nie mają wpływu na wyjścia. Kiedy "puszczasz" wybór to ten podręczny rejestr jest przepisywany na wyjścia. Ty masz tylko LED`y i nic sie nie stanie, ale pomyśl o jakiejś maszynie w której byłby przekaźniki i podczas przesuwania bitów by się włączały...
Witam. Program nie pobiera po jednym znaku ale pobiera 16 znaków, odczekuje 2ms następnie pobiera znowu 16 znaków z tym , że zaczyna pobierać o jedną komórkę pamięci dalej. W sumie daje to złudzenie przesuwania sie napisu. Można przerobić aby przesuwał sie w drugą stronę.
No i tu właśnie pojawia się problem. Nie przesuwał bym napisu jeśli był by widoczny cały.
Ja nie znam BASCOM'a... Zapisujesz górną linię... Zapisujesz dolną linię... Przesuwasz okno w jakąś stronę... Zapisujesz dolną linię...(jak trzeba obie naraz to górną nadpisujesz przesuniętą, czyli spacja z przodu lub tyłu). Ja tego lepiej nie zobrazuje ...
Jeśli chcesz potencjometrem regulowac prędkość, to łączysz jego opór pomiędzy szyny zasilania mikrokontrolera, a suwak dajesz pod przetwornik ADC. I przykładowo program: Config Adc = Single, Prescaler = Auto, Reference = Avcc Start Adc i w programie co jakiś czas sprawdzasz sobie: opoznienie = getadc(0) i zamiast waitms 500, dajesz waitms opoznienie...
Witam!! Chciałbym prosić kogoś kto zna się na języku BASCOM. A dokładnie chciałbym żeby ktoś sprawdził mój program Ma on za zadanie przesuwać wałek odpowiedniego serwa o jakiś kąt po naciśnięciu przełącznika. poniżej zamieszczam screen'a z programem Z góry dziękuje http://obrazki.elektroda.net/64_12282476... http://obrazki.elektroda.net/68_12282472...
przesuwać bascom bascom przesuwać tekst przesuwać tekst bascom
focus gasnące zegary volvo silnika przerobienie aparatu
canon skanowanie suzuki burgman an400
Błąd uwierzytelnienia Outlook w GNOME Evolution Świecenie próbówki na obudowie silnika - przyczyny