Pomnóż przez 2, zaokrąglij do wartości całkowitych, podziel przez 2, i wyświetl z rozdzielczością do 1 miejsca po przecinku.
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]
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:...
Kompiluje się bez tego $lib "mcsbyte.lib"
A w kodzie masz Rs=Es
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.
Po prostu spróbuj, nie wybuchnie ... (chyba) :)
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.
użyj do obsługi odczytu temperatury z DS timer0 ;) dzieki czemu nie bedziesz musiał zatrzymywać całego programu
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]
jeśli nasz zmienną typu integer to zmienne obliczjące cyfry też zmień na integer
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
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...
Hi ! Czy na symulatorze wszystko wyświetla prawidłowo ? Ja posiadam BASCOMa AVR w wersji 1.11.6.4 i u mnie na symulatorze jest wszystko OK. Skompilowałem dla Ciebie ten program (AVR 1.11.6.4) i zamieszczam go niżej. Sprawdź czy będzie chodził prawidłowo.
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.
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
Jak powinna wyglądać reakcja takiego wyświetlacza na podłączenie zasilania i kręcenie potencjometrem od kontrastu? Powinien coś wyświetlać?
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]
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....
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...
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...
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...
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
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.
Tak tylko wyświetla mi A01 - co robię żle?
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...
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.
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...
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.
Dzieki za poprawki ale to sa błędy chyba nie wpływające na wyświetlanie zmiennej Frequency :).
Wydaje się ok. Celem programu jest sterowanie wyświetlaniem jednego (lub dwóch obok siebie) segmentów wyświetlacza BAR LED jako cyfrowej skali częstotliwości do tunera 88-108. Stąd, pozycja na "skali" zależy od zmiennej (powiązanej z odbieraną częstotliwością). Kierunek "przesuwania" jest jeden, bo i tak po zmianie częstotliwości przeładowane zostaną...
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...
Dzięki za chęci Powodem było dzielenie różnych zmiennych. Po ujednoliceniu licznika i mianownika liczy już dobrze pozdrawiam Czarek
niveasoft Zwiększyłem długość zmiennej String jak zaszeregowałeś i faktycznie pomogło. Dziękuję.
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ę
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...
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.
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...
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.
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.
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]
Obsługę przez HTML włącz/wyłącz ,wyświetlanie zmiennych itp.. :) W przykładzie jak zdjęciu w serwery na SD się nie planuje bawić.
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...
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.
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,...
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
... 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]
Po prostu tekst który chcesz przesuwać musisz przesuwać w zmiennej w uP a potem wyświetlać w tej linii w której chcesz.
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).
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.
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.
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?...
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 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:...
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...
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
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)
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?
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...
Da się to zrobić bez większych kłopotów W bascomie zajeło mi to dwie godziny w raz z wyświetlaniem na LCD i zapisem położenia do zmiennych w eepromie pozdr
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,...
Ściągnij Bascom najnowszy (chyba 8.cośtam) , ale już w starszych był .lib lub .lbx glcdks108. - poszukaj w folderach instalacji Bascom! Bascom avr > samples > lcdgraph . Tak to ma wyglądać $lib "glcdks108.lbx" '(może być *.lib) biblioteka $include "font8x8.font" 'fonty PS wie ktoś czemu jak wyświetlam zmienną grafikę line...
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.
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...
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 ?
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...
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...
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.
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)
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...
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...
Ź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...
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...
(at)grala1Ten Twój kod jest trochę za prosty i z czasem zgubi synchro niemniej jak wrzucisz ten poprawiony na symulator, albo nawet uruchomisz na żywca z tym co Tobie tam nadaje to na chwile powinien podziałać ;) Lepiej byś odbierał znaki w przerwaniu do bufora. Procesor na nic by nie czekał i miał czas na inne sprawy. Do tego synchro, jakis timeout...
...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...
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.
...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...
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.
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...
nie nie, nie o to mi chodzi - nie chcę ingerować w polecenie LCD, ponieważ: ZMIENNA zmienia się od 0...75 i teraz miałbym kłopot gdybym tak właśnie wyświetlał przy liczbach od 10...75 ponieważ wrzucałoby mi to 0 i by pisało 010, 011, 012,..., 075. A ja chcę tylko przy liczbach 0...9 żeby mi dodawał zero. Jak bym wyświetlał LCD "0", ZMIENNA to można...
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)
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ą...
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.
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?
Zwiększ czas między przerwaniami a dodatkowo wiekszość operacji związanych np z wyświetlaniem zamieść w pętli głównej programu pod odpowiednią flagą. Temperaturę to na dodatkowej fladze np co 1s albo co 2s wystarczy.
Nie znam sie na bascomie ale mnie to wyglada jakbyś błędnie podawał parametry do procedurki. Byćmoże procedurka LCD musi dostać adres napisu a nie napis. Jeśli podasz napis to procedurka zinterpretuje go jako adres (stąd te krzaki na LCD). Procedurka jest tak napisana i nic z nią nie zrobisz poza napisaniem nowej albo musisz definiować zmienne (stałe)...
zaraz zwiększe i sprawdze. dzielinik już dobrałem na 1k i 2k i daje ok 3,3v dałem zmienną odbiór 20 bajtów niestety nic nie dało. Wyświetla napis poszło ale nie widze na lcd żandej innej treści
wyświetlanie zmiennych bascom zmiennych bascom wyświetlanie
prostownik automatyczny zwarcie instrukcja serwisowa pralka electrolux karta dźwiękowa directx
internet domki letniskowe internet domki letniskowe
Using Thomson 620 Remote with Telefunken Smart TV Instrukcja serwisowa Bosch MUM5 - gdzie znaleźć?