Po prostu spróbuj, nie wybuchnie ... (chyba) :)
Pomnóż przez 2, zaokrąglij do wartości całkowitych, podziel przez 2, i wyświetl z rozdzielczością do 1 miejsca po przecinku.
Post wyżej napisałem jak ma wyglądać wyświetlanie tekstu. Wstaw tą linię tam gdzie umieściłeś komentarz "Tu wstawiam..." :) ps. Pisałem z pamięci i zamiast Seq(1) = Text powinno być Seq(1) = Tekst czyli zapisanie aktualnej wartości po przesunięciu.
Masz dwie możliwości, możesz pobrać nowszą wersje BASCOM'a lub dopisać taką linie: [syntax=basic4gl]$lib "xmega.lib" : $external _xmegafix_clear : $external _xmegafix_rol_r1014[/syntax]
jeśli nasz zmienną typu integer to zmienne obliczjące cyfry też zmień na integer
A w kodzie masz Rs=Es
Kompiluje się bez tego $lib "mcsbyte.lib"
Witam; Na wstepie chciałbym zasygnalizować, że programowania w Bascom-ie ucze się dopiero od niedawna :) Mam takie pytanko: mam sobie wyświetlacz LCD 16*1 i prosty układ który sobie zlicza detale. Na wyświetlaczu pojawia się napis: ilość sztuk 123 jak zrobić żeby liczba którą wyświetla zawsze była wyrównana do prawej strony? Aktualnie zrobiłem coś takiego:...
Bo znak 0 to znak końca linii. 0 wyświetlane jako chr zostanie potraktowane jako znak o kodzie 0 a więc pójdzie do wyświetlacza. 0 "wyświetlane" jako String jest widziane jako znacznik końca textu a więc ten text nawet nie trafi do LCD. Jednym słowem LCD nawet by to wyświetlił, ale BASCOM kompiluje program tak żeby nie przepuszczał zera.
Kolejność? Z = 3 Y = 2 + 3 X = Y + Z
Ja stosuje takie wyświtlanie czasu: [syntax=basic4gl] Dim Wart_Bcd as Byte Wart_bcd = Makebcd(godziny) Lcd Bcd(wart_bcd) ; ":" Wart_bcd = Makebcd(minuty) Lcd Bcd(wart_bcd) [/syntax]
E tam, nic strasznego.... Tu masz błąd: Dim U_wy As String * 2 Zwiększ to na: Dim U_wy As String * 3 I leci aż miło. Nie mieścisz się w zmiennej, that's all:) Poza tym skonfiguruj watchdog oraz TIMER. Pewnie jeszcze coś tam siedzi (wyświetlanie bez wymazywania poprzednich, większych o rząd wartości na przykład) ale to tak na szybko. Pozdrawiam, TD
Zuba1 - jest szansa że zadziała 1) Config Pinc i pod spodem pinc zamień na config portc i portc 2) Jeśli nie definiujesz lcd w swoim programie to musi być zdefiniowany w opcjach bascoma (gdzieś w menu poszukaj) 3) Działanie programu będzie dziadowskie bo zadziała ale tak się tego nie robi. Kiedyś go sobie poprawisz.
Witam. To z dodatkowymi cyferkami można zreazlizować w taki sposób, że wyświela się liczbę w zależności od jej wartości np. if $zmienna<10 then Locate 1,1 'tu definiujesz początek miejsca na wyswietlaczu gdzie chcesz by pojawil sie ten tekst LCD " ";$zmienna;"*C" 'dwie spacje w cudzyslowiu elseif $zmienna >9 and $zmienna <99...
Rozumiem, że tych slave'ów jest kilka i tylko z tego jednego krzaczy, a z pozostałych slave'ów wyświetla poprawnie ? Jeśli tak to prawdopodobnie stos najeżdża na zmienne w programie mastera.
użyj do obsługi odczytu temperatury z DS timer0 ;) dzieki czemu nie bedziesz musiał zatrzymywać całego programu
Eh, a napisz coś takiego: [syntax=basic4gl] dim pwm_var as byte [/syntax] Tam gdzie deklarujesz resztę zmiennych, następnie przy wyświetlaniu: [syntax=basic4gl] pwm_var=cool1 lcd "Obroty"; str(pwm_var)[/syntax]
W przerwniu i programie głównym używasz zmiennych zadeklarowanych jako word. Myślę, ze tu leży pies pogrzebany. W C wystarczy użyc volatile i atomic_block. W Bascim? Był taki na Elektrodzie (niveasoft) co wiedział w jaki tajemniczy sposób Bascom zarządza takimi zmiennymi. Myślę, że nie masz wyjścia, tylko przed odczytej w programie głównym zmiennej...
Czyli jak mój wyświetlacz przy takim podłączeniu nic nie pokazuje mimo kręcenia kontrastem to znaczy że mogę go do kosza wyrzucić?
ello jestem tu całkowice nowy ale mam nadzieje że mnie nia zignorujecie , bo mam dosyć dziwaczny problemik z bascomam avr i obsługą wyświetlacza 16*2 Chodzi o to ze gdy chce na nim wyświetlić swykły napis to wszystko jest ok ale schody zaczynają się gdy wyświetlam tekst i zmienną ... wtedy zaczyna wyświetlać jakieś dziwne znaczki i nie wiem za bardzo...
W timerze (np. co 0.5 sek) gasisz albo zapalasz flagę (powiedzmy o nazwie fMiganie) Oczywiście po każdej zmianie flagi (fMiganie) następuje odrysowanie całości wyświetlanego zbioru elementów w najstępujący sposób: 1. Jeśli fPozycja jest poza zakresem zbioru wyświetlanych elementów (np. =0) - wtedy obraz wyświetlany jest bez migania. 2. Jeśli fPozycja...
W sumie można, lecz autor chciał mieć format byte, domyślam się że potrzebne to mu było do wyświetlania liczby na wyświetlaczach siedmiosegmentowych. Jeżeli tak, to Ciekawy jestem czy autor korzysta z lini Data i instrukcji lookup(), czy może z select case?
Tworzysz zmienną sting * 20 i tworzysz tablice byte(20) adresujesz je tak samo i poleceniem lcd chr(byte(a)) stawiasz znak z wybranego miejsca ze stinga.
Problem rozwiązałem dużo wcześniej ... a teraz znalazłem czas żeby wyjaśnić. Oczywiście problem tkwił w programie. W etykiecie "posow" w pętli za każdym razem wyświetlam zmienne "I" oraz "X" - zmiana stanu portu B.0 ograniczona była czasem wyświetlania zmiennych na LCD.
Tak tylko wyświetla mi A01 - co robię żle?
To ja bardzo odgrzebię temat :) A jak wyświetlić na LCD jakąś wartość ze zmiennej? Np. w programie do czytania RC5 mam taką linijkę: Lcd "Adres: " ; Address1 ; " " i tu Address1 jest zmienną a jak mam to wyświetlić w tym programie dla LCD z Nokii? Jest tam: Lcdclear Lcdgoxy 1 , 1 Lcdstr "Adres: " , 1 , 0 Lcdupdate...
Witam Zrób tak jak pokazałem Ci w pierwszym moim poście, tylko zmienne zamień na BYTE, wtedy powinno wyświetlać setki, dziesiątki i jednostki. Pozdrawiam
Program działa ale nie do końca dobrze ponieważ na lcd zamiast pojawić się wartości odebranej (222) pojawia sie w 1 sek odcinkach czasu najpierw 1(wartość zmiennej którą wysyłam na początku) potem pojawia się 22 i na końcu dopiero 222 która się już nie zmienia. No to wszystko jest zgodne z programem. Masz tam przecież właśnie wyświetlanie zmiennej...
Dzieki za poprawki ale to sa błędy chyba nie wpływające na wyświetlanie zmiennej Frequency :).
Ponieważ Fusing zwraca zmienną tekstową więc deklaracja zmiennych stanowiących wynik tej instrukcji powinna być następująca: Dim V As String * 6 Dim A As String * 6 Dim P As String * 6 Dim R As String * 6 Dim Vod As String * 6 Zmienne są wystarczająco długie dla zakresu 99.9. Jeśli wartość przekracza 100 powinno być String * 7
Kod jest za krótki brakuje wywołania timera co 4 ms na tym polega cala idea multipleksowania. Przerwanie musi wywoływać procedurę wyświetlanie. Brakuje deklaracji zmiennych.
niveasoft Zwiększyłem długość zmiennej String jak zaszeregowałeś i faktycznie pomogło. Dziękuję.
Masz zapętlenie wywoływania podprogramów instrukcją GOSUB. każdy podprogram np: Wyswietlanie_alarmu_temp powinien być zakończony instrukcją RETURN. Jeśli tak nie masz to w nieskończoność wywołujesz kolejne podprogramy i po którymś cyklu kończy ci się rozmiar STOSU :( np HW_STACK. Dlatego program zaczyna wariować i gubić wartości zmiennych SOFT_STACK....
licznik = 50 w językach pochodzącch od C oznacza "nadaj zmiennej licznik wartość 50". Instrukcja użyta w warunku if() daje zawsze wejście pod if (bo wartość w warunku jest różna od zera). A poza tym, jeśli mowa Arduino, to nic nie wykonuje się "natychmiast", podobnie zresztą jak w Bascom.
temperatury zostaja zmienione na lcd ale tylko raz, znaczy się gdy temperatura zmieni się to nie ma zmian na wyświetlaczu. temperatura na lcd zmienia się "live" tylko wtedy gdy trzymam przycisk cały czas. Program działa dokładnie tak jak go napisałeś, w momencie kiedy naciskasz przycisk wartość odczytana jest przepisywana do zmiennej która jest wyświetlana...
W skrócie: - definiujesz własne znaki : pełny prostokąt, pół prostokąta, marożniczek lewy, prawy, górny, dolny - rozumiesz mam nadzieję, o co mi chodzi ;-) - analizujesz odczytaną godzinę, na jej podstawie tworzysz np. cztery zmienne tekstowe odpowiadające kolejnym liniom. - zmienne tekstowe wypełniasz odpowiednimi prostokątami, narożnikami - wyświetlasz...
Nie powinieneś wyświetlać wartości Timer1 bo ona się będzie zmieniała w trakcie. Wyświetlać trzeba zmienną do której zapiszesz wartość Timera1 po jego zatrzymaniu.
Witam Oststnio zacząłem bawić się wyświetlaczem graficznym. Wiem jak w nim wyświetlać tekst, zmienne, obrazki. Natomiast nie wiem jak zrobić np stopień Celcjusza pisząc program w Bascom avr. Czy też trzeba go zrobić jako oddzielny obrazek? Trochę byłoby to bez sensu, ale może się mylę
Powiem tak: Nie znam się na BASCOMie ale widzę, że END kończy program a dokładnie pustą pętlę w której powinien znajdować się odczyt z przetwornika i wyświetlanie, używając napisanych przez Ciebie funkcji. Przykładowo siała baba mak.../deklaracja zmiennych Do /pętla główna programu wykorzystująca twoje funkcje ODCZYT WYSWIETL Loop END ODCZYT: bla bla...
...Chodzi mi o to że chce wyświetlić na Lcd znak którego wartośc mam zapisaną w bajcie np D1 - wartość binarna Np w D1 jest 0111000 i chce aby na wyświetlaczy pokazało sie " p " Jak to zrobić ? :) Piotr Takie "cuda" robi się za pomocą polecenia Chr() :D Jeśli w zmiennej jest zapisany kod ASCII jakiegoś znaku , to by wyświetlić właśnie ten znak na LCD...
Pytanie do bardziej doświadczonych: W jaki sposób najoptymalniej wyświetlać wartości zmiennych na LCD? Czy przy wyświetlaniu zmiennej o wartości (0, 1000) trzeba stosować if.. then..elseif..elseif....else ?
Gdy wyświetlam zawartość zmiennej to na LCD widzę nie cala wartość tylko po kolei kody jak zrobić żeby wyświetlał cały 8 bitów za jednym razem.
Kwarc dajesz np. 12 MHz Robisz sobie pętelkę pomiarową wywoływaną z Timera np. co 200 µs sprawdzającą dane wejście pomiarowe. Jeżeli wejście jest =0 to nie zliczasz jeżeli = 1 to zwiększasz zmienną WYNIK o 1 (zmienna 16 bitowa) zakres będzie do jakichś 6.4 sekundy. W pętli sprawdzasz także czy zmienna nie przekroczyła 25000 (5 sekund). Jeżeli...
Wrzuć wszystko do programu głównego tzn. przyciski ( ustawianie czasu załączania/wyłączania pompy), sprawdzanie Adc (poziom wody) przeliczanie wartości dla wyświetlacza , a samo wyświetlanie w podprogramie odświezanym co jedną sekundę za pomocą Timer0 . Timer0 dalej dla wyznaczania 1 sekundy. Buzer zrealizuj za pomocą zwykłej zmiennej licznikowej zwiększanej...
W bascomnie ciężko zrobić LED + Ds18b20 wszytko psuje Waitms 750. Zwiększ do 8 a jak możesz do 16MHz kwarc. A od kiedy to musimy czekać 750ms nie robiąc nic innego? Od czego mamy timery? Przepraszam najmocniej Kolegę, ale jeśli Kolega tego zrobić nie potrafi to: 1. Nie oznacza że się tego zrobić nie da - ja nie potrafię zbudować komputera klasy PC...
Właśnie na to wpadłem, T2 = T mod 10 , z tym, że na wyświetlaczu wyskakują krzaki :( . A rodzaj zmiennej ma znaczenie w tym przypadku? Bo kombinuje i z byte i integer.
To wiele wyjaśnia. Spróbuj tak ;) [syntax=vbnet]$regfile = "m8def.dat" $crystal = 8000000 $hwstack = 64 $swstack = 16 $framesize = 64 $baud = 9600 Config Lcd = 16x2 Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.6 , Db7 = Portb.0 , E = Portb.4 , Rs = Portb.5 Cursor Off : Cls Dim K1 As Byte Dim K2 As String * 20 Dim Id As String *...
Program jest mój. Korzystaj. Linijkę możesz "skrócić" ograniczając w pętli zmienną licznik (teraz pracuje do 16 - znaków). Odpowiednio przeliczyć trzeba współczynnik podziału. Maksymalna wartość wielkości wyświetlanej/maksymalna ilość słupków w linijce.
Po prostu tekst który chcesz przesuwać musisz przesuwać w zmiennej w uP a potem wyświetlać w tej linii w której chcesz.
Witam. ... Freddy - twój plik też testowałem i wszystko ładnie wyświetla (litery) natomianst nie wiem jak za pomocą tego programu wyświetlić jakąś zmienną typu byte. Tak jak wcześniej pisałem wskakiwanie do podprogramu powoduje zbyt wolne zwiększanie wartości zmiennej którą zmieniam z przycisku. Czy można ten cały podprogram przenieś do głównego programu...
Możesz przytoczyć kawałek kodu (z deklaracją trablicy), bo jak rozumim to nie chodzi o zmienną tablicową, tylko o coś innego.
Bo trzymasz znak w zmiennej zadeklarowanej jako Byte. Zrob sobie stringa o dlugosci np. 5 znakow i zobaczysz. acha i jeszcze po zresetowaniu mikroprocesora wyskakuje w terminalu kwadracik... Wcale sie nie dziwie bo po resecie pojawiaja sie smieci...
Następna podpowiedź :P Na otwartym oknie Bascom wciśnij na klawiaturze F1 żeby otworzyć okno Help`a W zakładce Index wpisz "$DBG" i może tam znajdziesz odpowiedź na Twoje pytanie :P W języku C jeśli zmiennej nie zainicjujesz jakąś wartością to ona ma nieustaloną wartość, więc jeśli chcesz żeby miała zero to musisz napisać np. "char myChar = 0". W Bascom...
Możesz jeszcze spróbować: 1. Zmienną I w odbiorniku zdefiniować jako Word a nie String 2. Zastąpić Cls w pętlach przez szybsze Locate 1 , 1 (wymagane formatowanie wyświetlanej wartości) Edit: [syntax=basic4gl]Dim I As Word Input I Noecho[/syntax]
Witam, Jeśli nie musisz nie korzystaj ze zmiennych typu single, lepiej przeskalować int'a kilka razy (np zamiast 1,232 robisz 1232 a przy wyświetlaniu dodajesz przecinek) operacje na liczbach zmiennoprzecinkowych zjadają spora flash i czasu procesora. Pozdrawiam, Marcin
Siemka! Musisz wziąść pod uwagę fakt, iż zmienna single przechowuje wartości zmiennoprzecinkowe ze skończoną dokładnością i to może być zauważalne przy niektórych operacjach na tego typu zmiennych. Poszukaj w helpie od Bascoma i poczytaj o kodowaniu liczb zmiennoprzecinkowych i wszystko Ci się wyjaśni:) Pozdrawiam!! Widzę że dałeś kod.:) Mi się wydaje...
Witam. Masz w złym miejscu Do i Loop oraz Lcd. Zobacz ze program powtórnie już nie wyświetla nic (zmiany liczb). No i skoro deklarujesz Sub`y to ich użyj czyli Sub Menu1 ........ End Sub, no i dawaj te deklaracje zawsze na początku programu, np. zaraz po zmiennych. Pozdrawiam
Witam Chciałem zbudowac układ który liczył by 0-9 i wyświetlane to było na siedmiosegmentowym wyświetlaczu... .......... prosze o pomoc i o jakies proste wytłumaczenie moich błędów. myslalem jeszcze o robieniu tego za pomoca rozkazu INC i dodawania tylko nie wiem jak zawartośc rejestru wystawic na wyjscia z gory dziekuje za pomoc pozdrawiam Tu masz...
CLS czyści i ustawia kursor w pozycji 1,1 HOME ustawia kursor w pozycji 1 Drobna różnica acz znacząca. Jeśli chce użyć HOME, musi pokombinować z formatowaniem wyświetlanej zmiennej ( chodzi o długość i ew wypełnienie pustymi znakami)
... bo dobrze znam ten wyświetlacz. Ale z Bascomem już gorzej :D Co to jest za twór :?: [syntax=basic4gl] Data "Poniedzia" ; &h9D ; "ek" ; [/syntax] Do umieszczenia w zmiennej tekstowej dowolnego kodu ASCII, służą nawiasy klamrowe :idea: [syntax=basic4gl]Data "Poniedzia{157}ek" [/syntax]
Dzięki za chęci Powodem było dzielenie różnych zmiennych. Po ujednoliceniu licznika i mianownika liczy już dobrze pozdrawiam Czarek
pablo666gliwice masz rację kod miałem dobry oprócz zmiennych. Zamieniłem dosłownie wszystkie zmienne na Word i wyświetla prawidłowo każdą cyfrę. Teraz mogę pisać dalej swój program. Dziękuje wszystkim za pomoc.
udaje mi sie zmienna temp odzyskać z programu i wyświetlić ją na wyświetlaczu lcd niestety nie wiem jak uzyskać nastepną.Chodzi mi mianowicie o coś takiego: 1)uzyskujemy zmienna nazwijmy ją A1 i wyświetlamy na lcd 2)po wyświetleniu zmiennej potwierdzamy ją klawiszem także z tej klawiatury 3)program przechodzi wtedy do odbioru zmiennej A2 4)wyświetla...
po pierwsze, program nie uśrednia wyników - usuń to w=getadc(0) po pętli for, a typ zmiennej w zmień na long to co Ci wyświetla to wartość pomiaru z adc * 0.0049 :D
Zrób to tak: [syntax=basic4gl] $regfile = "m8def.dat" $crystal = 4000000 Config Timer0 = Timer , Prescale = 256 'onfiguracja timera, przescaler 256 On Timer0 Odmierz_1s 'włączamy timer0 Dim Licz_8ms As Byte 'definiujemy zmienną pomocniczą Dim Sekundy As Byte Enable Interrupts 'włączamy zezwolenie na przerwanie Enable Timer0 Load Timer0 = 125 'ładujemy...
już sobie poradziłem, uczę się z książki Piotra Góreckiego "mikrokontrolery dla początkujących" i tam tak to było przedstawione. Dodałem zmienną i na normalnej zmiennej(1 bajtowej) chodzi bez problemu.
Ato jest proste czytaj co pisze kompilator : Source string could be too big to fit into target string in line 375 (....) Masz zbyt długie stringi ;) fajnie brzmi to pierwsze a możliwe ze program mimo kompilacji będzie ci nadpisywał stosem zmienne , Ramu jest tyle ile jest i trzeba nim dobrze dysponować jeśli przy każdym przerwaniu odkladasz na stos...
tak tylko to co odczytam wyświetlam w formie restore label: czyli powinienem odczytać do zmiennej tablicowej i zeby ja wyświetlić dać restore ta_zmienna_tablicowa?
Witam Może dla większości proste pytanie, ja niestety nie umiem sobie z tym poradzić. W zmiennej single mam wartość z kilkoma miejscami po przecinku i teraz mam pytanie: czy jest możliwość odcięcia zbędnych cyfr po przecinku tak, aby w/w zmiennej fizycznie pozostała pożądana wartość? np: wartość w zmiennej 1.2345 potrzebna 1.2 lub 1.23 Dodam tutaj,...
A gdzie przypisania zmiennych A, B, C, D z kodem cyfry danej wartości ? ps. Całą tą procedurę wyświetlania można zrobić bardziej przejrzyście...
Program wyświetla to co chcesz ale w symulatorze to trwa bardzo bardzo długo. i Teraz ja licznik odlicza 100 impulsów to musisz pozmieniać obliczenia. Podczas symulacji w warunkach wpisz mniejsze wartości to się szybciej doczekasz tego wyświetlenia na lcd albo zwiększ zmienne ręcznie podczas symulacji. sygnał 125khz do generowania PWM 1,25khz. Nie rozumiem?...
Szukam teraz zmiennej którą mógł bym to zrobic ale widze tylko takie które odpowiadają za wyświetlanie znaków na lcd, i funkcie matematyczne. podejrzewam że zmienna ma w jakiś sposób odczytywac wartośc licznika z timera? Mógł byś podac dokładniejsza nazwę tej zmiennej lub przykład?
Po co jest "Readeeprom Nr_menu , 1" po "Debounce S1 , 0 , Zmiana , Sub"? To raczej nic nie wnosi do działania programu, ponieważ po "Debounce..." w zmiennej nr_menu już masz aktualny numer menu. "Readeeprom Nr_menu , 1" powinno być przed "Do". Wtedy aktualną pozycję menu odczytujesz tylko raz przy włączeniu zasilania i na ekranie wyświetlasz menu które...
Troszkę dziwnie wygląda ta pętla główna, ze zmienną "corobic" :) Mogłeś dać po prostu w do-loop wywołania kolejnych procedur i jedną pauzę np. 1 sek. Do tego w procedurze wyświetlania dajesz CLS - nie przeszkadza Ci miganie ? Spróbuj dodać na początku dyrektywy ustalające stos : $hwstack = 32 $swstack = 32 gdyż używasz GOSUB. Może pomyśl o procedurach...
Będzie to kodowanie z offsetem, i to w dodatku z offsetem zależnym od pomiaru w momencie naciśnięcia przycisku. Tak się po prostu nie robi. Czyli jedyna rada, to sprzętowo, za pomocą potencjometru regulować punkt 0? Nie, nie. Chodziło mi o to że jak regulujesz programowo, to zmienne muszą być trochę bardziej pojemne, na przykład typu LONG. Ale skoro:...
Czy ktoś stosował zmienne typu DOUBLE? Próbuje od pewnego czasu i dzieją się dziwne rzeczy Dim Aa As Double Dim B As Double Aa = 5 / 6 Print Aa B = Sin(0.2) Print B Zmienna Aa zawsze ma wartość zero. Zmienna B pokazuje się jako B=0198669330795061 Przypomina raczej łańcuch niż liczbę (brak przecinka) Po kompilacji w raporcie nie wyświetla typu zmiennej...
Witam Zapomniałeś o inicjalizacji LCD initlcd Dim A As integer Do A = 18 Cls Lcd A waitms 20 ' tu trzeba poeksperymentować :) Loop End 'end program Albo obsługe wyswietlacza wywoływać co jakiś czas, np wtedy kiedy zmieni się wartosć wyswietlanej zmiennej. Pozdrawiam
No nic dziwnego, w ustaw_czas robisz call do wys_czas który wbrew obiegowej opinii wyświetla temperaturę;] i... ustawia kursor kilka spacji za *C :) a potem sobie reta do ustaw_czas gdzie już jak widać LCD "Ustaw czas" :) Ot i tajemnica;] Pozdro ;] Dodano po 1 PS lowerline sux, ja bym używał locateów na twoim miejscu ;-) Poza tym funkcje są fajnejsze...
O dziwo po dobie testowania, tak naprawdę czas nie różnił się ani sekundę. Jedynie wyświetlanie szwankuje. Chciałbym jednak użyć CTC, ale kompletnie nie wiem jak się za to zabrać w Bascomie. Nie znalazłem na forum żadnych przykładów. Co do dziwnego wyświetlania to chyba właśnie będzie problem przekształcania zmiennych czasu na tekst. Poszedłem po łatwości,...
A nie prościej liczyć to za pomocą Timera1 czyli na sekundę ma być np. wyświetlonych 50 obrazów i każdy z nich zawiera np. 10 części. Daje nam to 500 przerwań na sekundę. W przerwaniu Timer1 ustawiasz za każdym razem początkową wartość timera i ustawiasz jakąś flagę. Możesz również dodać zwiększanie licznika od tego co ma być wyświetlane. W programie...
Teraz problem zrobił się bardziej skomplikowany, jako zmienną mam liczbę np. 3,6 i chcę ją wyświetlić na wyświetlaczu... Ciężko mi to zrobić w basomie.
Po pierwsze nawet jak by Ci się to skompilowało to wynik działania A = 1 / Timer1 prawie zawsze będzie równy 0. Więc późniejsze mnożenie go przez 60 nic nie zmieni. Zrób: A = 60 / Timer1 A ten błąd to jest w linii B = Int(a) ? Jak tak to pewnie Int nie przyjmuje innych parametrów niż typu Single. Po co wyciągać część całkowitą z liczby całkowitej?...
Dodaj zmienną "offset_y" i dodawaj do niej wartość pętli. Jeeśli offset=0, wyświetlasz od wiersza 1, jeśli 4, to od 5...
Mam identyczną konfigurację, i żadnych problemów z LCD w trakcie symulacji. A jak działa, symulacja, w ogóle ? Możesz bez problemów śledzić wartości zmiennych ? Może problem tkwi w deklaracji LCD ?
Tak jak w temcie. Dokładnie chodzi o to, że w po łączu szeregowym dostaję konkretną paczkę danych i z nich chcę wykorzystać tylko część, a dokładnie wyświetlić to na lcd. I teraz mam pytanie jak to zrobić, bo najpierw przechwutyuje do zmiennej dane: zmienna = inkey() LCD zmienna I teraz jak przjęte dane podzielić do różnych zmiennych żeby potem...
Wszystko się da zrobić kolego. Można np. napisać sobie małą procedurkę która będzie tłumaczyć kody z klawiatury na kody displaya. Coś w stylu: wypisz("еле... . . . sub wypisz(aa byval as string) dim bb string ' tłumaczenie ciągu aa na bb lcd bb end sub Oczywiście należy napisać...
Trzeba jeszcze zadeklarować zmienną us jako single i później jeśli trzeba odpowiednio sformatować jej wyświetlanie. Pochłonie to sporo pamięci. Jeśli nie musisz koniecznie to nie stosuj ułamków.
Kolego nowyARM wymienię na 4.7kΩ do 1wire jest 4.7kΩ tylko do I2C mam 10kΩ . Co do zmiennej Q_zmiana to ona odmierza 5 sekund i zmienia wyświetlanie , czemu jest ten zapis Q_zmiana = 6 po to jak ustawiam czas to by cały czas wyświetlało tylko zegar . Dodano po 4 Dodam że z tymi minutami to wystarczy zresetować procesor i wyświetla zero...
Elektryk - nie brałem tego pod uwagę, to może być to, ale jak zapisać w takim razie indeks miesiąca i dnia tygodnia (tam jest chyba podobna sprawa) do zmiennej w Bascomie? Mol - tak, z tym nie ma problemu, polecenie makedec(zmienna)
Komórki pamięci są 1 bajtowe! Word ma 2 bajty. Z tego co wiem to Bascom pozwala DIMować jakąś zmienną tak aby była umieszczana w EEPROM. Wypróbuj to. Drugi wariant to taki żebyś za pomocą HIGH i LOW rozbił 2 bajtowy Adres na 2 pojedyncze bajty, zapisał je do eeprom, a następnie znów złożył przy odczycie w 2 bajtowy word. Piszesz że przy wartości np...
Koledzy dziękuję wam bardzo za rozwiązanie problemu. a więc przestawienie prescalera na 8 odniosło pożądany skutek. Miałem jeszcze jeden błąd w programie. otóż w przerwaniu oczywiście zerowałem timer3=0 ale już w głównej pętli wyświetlałem lcd timer3 przez co wyniki skakały. w przerwaniu dałem aby timer3 zapisywał do zmiennej a w głównej pętli tą zmienną...
Co do samego stylu ja dodam od siebie. 1. Odświeżanie danych na LCD - nie rób ciągle Cls, Cursor Off Noblink. Ta druga instrukcja tylko na początku programu, a zamiast kasować danych i wyświetlać od nowa, zrób to za pomocą funkcji Locate i nadpisywania odpowiednich miejsc. 2. Konfiguracja pinu sterującego przekaźnikiem na początek programu. 3. Waitms...
Źle podchodzisz do problemu - zmienna i (czyli numer wyświetlanej cyfry) powinna być zmienną globalną, którą w przerwaniu od timera zwiększasz, a następnie wykonujesz blok switch (i) { ... }. Oczywiście delay w przerwaniu to "bluźnierstwo" :) Preskaler ustaw sobie na 64, wtedy przerwanie od timera dostniesz ok. 400x na sekundę, czyli odświeżanie całego...
I tu też by dobrze chodziło, ale działania na zmiennych rzeczywistych (w Bascomie - Single) zajmują bardzo dużo miejsca a prawie zawsze można te obliczenia dokonać na zmiennych całkowitych (np. tak jak w tym przykładzie).
...Czy w bascomie można zadeklarować tablicę dwu wymiarową Nie :!: Dla czego przy odczycie danych muszę ponownie resetować magistralę i podawać numer seryjny układu... Bo tak są skonstruowane - patrz tabelki w PDF-ku :) Czy jest możliwe najpierw wysłanie do wszystkich czujników polecenia mierzenia temperatury ... Jasne ;) '... 1wreset If Err=0 Then...
Małe pytanko a obsługa wyświetlania multipleksowanego jest wykonana w przerwaniu czy w pętli programu po ustawianiu zmiennej F4ms? EDIT: Nie rozumiem, zapis do eepromu wykonuje się 20 razy (zmienna Autoret = 20)
Dzięki za podpowiedź. Jestem upierdliwy. Chciałem wyświetlać pod jedną zmienną dwie wartości co ułatwiłoby formułowanie warunków i nie musiałbym do każdego podpinać obsługi wyświetlania wszystkich wartości. Szkoda, że w bascomie nie można tworzyć klas.
Jeśli się resetuje to sprawdź czy podprogram obsługi przerwania (lub inny podprogram) jest zakończony przez return. Jeśli chcesz wyświetlać nieznaczące zero to: If Minuta < 10 Then Lcd "0"; Lcd Minuta lub Zamieniasz zmienną minuta na postać BCD i wyświetlasz starszy półbajt i młodszy jalo osobne cyfry.
Nie wiem co dokładnie chcesz osiągnąć. Dobrze by było zobaczyć cały string jak on wygląda to wtedy można obrac strategię. Korzystając z pokazanego kodu wysyła zapytanie o datę i czas. W odpowiedzi powinien dostać: +CCLK: 00/01/01,03:56:34+08 Ale gdzieś jest jakiś babol - nie wiemy co się dzieje ze zmienną odb_txt i skąd się bierze - więc...
witam. Małe pytanko do programistów w bascomie. Mam zmienna typu byte wyświetlam ją na wyświetlaczu 16*2, wyświetla ona mi się w systemie dziesiętnym. a chciałbym ja wyświetlić binarnie albo szesnastkowo. Dim A as Byte Dim B As Byte Cls Lcd "A " ; A ' wyświetla się dziesiętnie a chcę binarnie Lowerline : Lcd "B " ; B jak to zrobić ? pozdrawiam.
bascom wyświetlanie zmiennej wyświetlanie zmiennej napięcia atmega wyświetlanie zmiennej
bezpiecznik zasilacza komputera suzuki wagon sterowanie przez rs485
electrolux ew8tn3372p politechnika łódzka
Meyra Cityliner 412 - Opis błędów i diagnostyka Co to jest AOS w elektronice? Wyjaśnienia i konteksty