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...
Jeden mały rysunek w pamięci, przed wyświetleniem kasować ekran wyświetlacza i wysyłać rysunek od określonego adresu (zmiennego).
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...
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] .
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
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...
' 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)...
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.
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...
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...
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ć?
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ć.
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.
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...
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...
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...
Przesuwanie było w pierwszym poście. Tamta wersja nie działała jak powinna bo odbierała jak pisałem. Na razie nie mam dostępu więc teoria tylko. Czy wystarczy polecenie shift left 1 przesuwając Dana? Pozdrawiam Maciej.
.. myslalem, ze jest do tego jakies 'tajemne' polecenie :) widze, ze bez nakladania masek, przesuwania sie nie obedzie..
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"
Witam Wart_nap = Fusing(r , "#.##" ) Wart_nap = Format(Wart_nap , " ") Wtedy nie będzie się przesuwał napis
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?...
Do przesuwania bitów służy polecenie shift :) Poczytaj w pomocy bascom'a.
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...
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....
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ę.
Tak też robię przerabiam na prostokąt i napisze jak sprawuje się pomiar. Ale lubię eksperymentować i mieć jakaś alternatywę stąd też pytania może głupie i trochę dziwne, może się kiedyś zdarzyć że w procesorze zostanie wolne tylko ADC a będzie potrzebny taki pomiar . Czy np. wzmocnienie małych napięć i pomiar międzyfazowy nie dał by informacji o przesuwani...
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...
No i tu właśnie pojawia się problem. Nie przesuwał bym napisu jeśli był by widoczny cały.
yy... a jak to mniej/więcej wysterować np. pod Bascom'em lub C ?
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...
If L < 16 then poz = 1 If L >=16 AND <= 32 then poz =2 Zamiast 16-stu ifów zmienną L podziel przez 16 lub przesuń o 4 bity w prawo wówczas jako wynik otrzymasz pozycje znaku 'O' w linii. Zrobiłem tak jak napisałeś, ponieważ jest to dla mnie chyba najlepsze rozwiązanie (ledwo 3 linijki kodu) i tu pojawia się następny problem. Gdy podzielę 256...
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...
Ale czy bez tego nie będzie przesuwał textu dalej dorzucając następny? teraz nie moge tego sprawdzić.
bascom przesuwać bascom przesuwać tekst przesuwać tekst bascom
maszyna budowlany przetwornica pololu wyłączanie sygnalizacji alarmu pilotem
renault przełącznik zespolony aktualizacja dvbt2
Problem z programem po wymianie modułu Beko Programowanie modułu zmywarki Beko DSFS 6831X: krok po kroku