jeśli nasz zmienną typu integer to zmienne obliczjące cyfry też zmień na 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 *...
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...
...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...
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...
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...
Może nie umie wstawiać? $regfile = "m88def.dat" $crystal = 1000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.5 , Rs = Portb.4 Config Portd = &B00001111 'portd 0 1 2 3 jako wyjscia portd 4 jako 1wire 5 6 7 jako wejscia Portd.5 = 1 Portd.6 = 1 Portd.7 = 1 Portd.3 =...
(...) ' 5 Data 250 ' 6 Data 131 ' 7 Data 251 ' 8 Data 219 ' 9 Wstępna ocena dostępnych informacji W kodzie widzimy dwa liczniki (Liczba_ok i Liczba_nok) zadeklarowane jako zmienne typu Word, a także tablice na cyfry (Cyfra_ok i Cyfra_nok) jako typ Byte. Z punktu widzenia zakresu wartości samych liczników (od 0 do 999) nie powinno to powodować błędów...
użyj do obsługi odczytu temperatury z DS timer0 ;) dzieki czemu nie bedziesz musiał zatrzymywać całego programu
Odnowie temat bo teraz mam bardzo podobny problem. Mianowicie chodzi o uzyskanie coś w rodzaju pętli histerezy czyli mając zmienną np i=13,14,15,16,17 chcę zaokrąglić ją do dziesiątek (teraz już żaden problem) jednak chcę się pozbyć migotania cyfr (gdy zaokrąglamy liczbę 15 uzyskujemy 10 a gdy 16 wychodzi już 20). Moje pytanie to: czy jest sposób na...
niveasoft Zwiększyłem długość zmiennej String jak zaszeregowałeś i faktycznie pomogło. Dziękuję.
Cześć. Ćwiczę właśnie wyświetlanie multiplexowe na 4xLED7seg. Mam takie coś: [syntax=vbnet] $regfile = "m8def.dat" $crystal = 8000000 $hwstack = 40 $swstack = 16 $framesize = 32 Declare Sub _0 : Declare Sub _1 : Declare Sub _2 : Declare Sub _3 : Declare Sub _4 Declare Sub _5 : Declare Sub _6 : Declare Sub _7 : Declare Sub _8 : Declare Sub _9 Config...
Witam Bascom AVR Czy może ktoś mi podpowiedzieć jak wyświetlić na LCD literę po literze z opóźnieniem (n) ms dowolnego tekstu znajdującego się w zmiennej string ? Qrczę jakoś nie mogę tego wyczaić. Z góry dziękuję za sugestię
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]
http://obrazki.elektroda.net/7_123635472... Prawie rok temu, zainspirowany konstrukcją pana Kamila Przychodzenia http://obrazki.elektroda.net/18_12363549... http://obrazki.elektroda.net/82_12363551... Płytka sterownika oraz płytka organizacji połączeń http://obrazki.elektroda.net/62_12363543... http://obrazki.elektroda.net/80_12363591...
Witam Panowie Dzięki za zainteresowanie i poświęcenie czasu . Dzięki użyciu FLAGI "B" program w pętli głównej nie marnuje czasu na LCD i wyświetlanie wyniku zmiennej A . Nie najlepszy to przykład dla przedstawienia konceptu stosowania flag. Poniżej masz trochę zmodyfikowany twój przykład reagujący wyświetleniem wyniku V z pomiaru ADC tylko w przypadku...
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.
1) Zmieniłem na komórkę &B1001 i zapis jak i odczyt odbywa się poprawnie. Zarówno do tej komórki jak i następnej. (Zmienna typu word). 3) Tylko po co dodatkowo tworzyć dwie zmienne? Dodam, że do wyświetlacza podział zmiennej word na bajtowe nie jest używany. 4) Syf albo optymalizacja. Dając zmienne pomocnicze program działa tak samo. Problem nadal tkwi,...
Najwięcej czasu procka zajmuje komenda LCD W tym przykładzie w pętli jest wyświetlanie danych w każdym przejściu pętli for - next ale jest to zrobione tylko do celów symulacji. Normalnie "wynik" wysyłany jest jako zmienna ustawiająca counter1 timera. W docelowym programie te zmienne wynikowe nie są wyświetlane, służą do czego innego. W zamieszczonym...
Najszybciej powinno pomóc to ;) ..ale mógłbyś sam pomyśleć... Zdecydowanie lepiej zrobi jak pomyśli samodzielnie bo to co napisałeś nie działa poprawnie , poza tym ma sporo ograniczeń . Napisałeś to nie biorąc pod uwagę budowy mikrokontrolera i najgorzej jak można było . Czym mniejsze zmienne tym szybciej działa program , jak są 8 bitowe to super bo...
...Typ zmiennej wiem że musi być integer . Nie musi :!: Nie wiem tylko jak wyświetlić tę liczbę na portach zewnętrznych Poszukaj w "instrukcji obsługi" Bascom , słówek High i Low :idea: Piotrek
Sam dokładnie nie wiem jak to działa, ale chyba tak: najpierw definiujemy co ma się znaleźć w zmiennej string czyli Str( address ) , później jak ta zmienna ma być wyświetlana czyli "" . Ja to tak rozumiem.
W załączniku mój program w Bascom AVR do obsługi LCD z Nokii 3310. Znaki zwykłej wysokości, podwójnej wysokości lub w kontrze. String zwykłej wysokości, podwójnej wysokości lub w kontrze. Pixel ciemny, jasny lub XOR. Linia ciemna, jasna lub XOR. Prostokąt ciemny. Bitmapa. Kasowanie bitmapy. Program wymaga procesora z dużym RAM bo "rysowanie" obywa się...
Ok jest wszystko pięknie chodzi. Ale zdążyłem to zrobić innym sposobem, rozdzielałem liczbę na wiele sposobów, najpierw z pierwotnej uzyskiwałem całkowitą potem pierwotną razy 10 - odejmowałem całkowitą poprzednią i miałem wartość dziesiętną potem wyświetlałem to jako dwie liczby w środek dając przecinek. A tu jeszcze przetłumaczona instrukcja używania...
Dorzucam wspomnianą konfiguracje timera1. [syntax=basic4gl] Config Timer1 = Timer , Prescale = 64 On Timer1 Odmierzanie_czasu 'na rezonatorze 11059200 Hz Timer1 = 48256 'przerwanie wywolywane co 100 ms 10razy na sekunde Start Timer1 Enable Timer1 On Urxc Odbieranie_rs: 'odbieranie znakow z UARTA Enable Urxc On Utxc Wysylanie_rs: 'wysylanie znakow z...
Pisząc program chciałem wstawić swoje znaki za pomocą polecenia Deflcdchar, ale pojawił się problem . Na wyświetlaczu lcd zamiast zdwfiniowanych znaków pojawiają się krzaczki , próbowałem na różnych prockach attiny2313, atmega8 i atmega32 wszędzie to samo. Wszystko oprócz tego wyświetla się normalnie, ponadto zauważyłem że mój bascom generuje źle kody...
Najdziwniejsze że pokazuje się -65333. Łatwe. Zrealizowałem według pomysłu snow'a, bo tak umiałem. Tylko, że. Przetwonnik zlicza napięcia tylko do 2047, pokazując ujemne napięcie nie ma znaku minus i wartość, tylko np 65320. Jeżeli po naciśnięniu przycisku do zmiennej 'wyzeruj' wpisze, aktualny pomiar, czyli np 65333. To na ekranie pojawi się 0. Pokazując...
BlueDraco - gołym okiem widać że ten projekt spokojnie zadziała na AVR. A jeśli AVR nie daje rady to wkładasz drugiego. Szybciej i wygodniej niż siedzieć 6 lat nad nauką nowego procesora. elektronic - na czas odczytu z SD robisz disable interrupts, no więc nic dziwnego że wyświetlanie ci się sypie bo przecież je wyłączasz. Czy do obsługi SD musisz wyłączać...
Witam, posiadam dwie atmegi8 sprzęgnięte ze sobą komunikacja za pomocą UART. Jedna atmega będzie zbierać informację z czujników i poprzez UART przesyłać bajty danych do drugiej atmegi której zadaniem jest wyświetlanie tych wartości na wyświetlaczu graficznym. Moja ramka danych składa się z dwóch bajtów, pierwszy z nich jest to bajt "adresowy" który...
Witam ponownie Zrobiłem to przez Timer0. Jednak problem z aktualizacją wyświetlania dalej występuje. Jeszcze drugi problem to start, przez okres zdefiniowany zmienną Licznik ( teraz równą 300 ) nic się nie wyświetla - dopiero po czasie = 300. Próbowałem również z Enable/Disable Interrupts na czas pomiaru, ale nie było żadnego efektu. Mam takie pytanie...
... Moze inaczej sie zapytam: Jak zadeklarowac zmienna do wyswietlenia, aby wstawic ja do funckji pisztekst(PSTR("wyswietl cos")) Zamiast "wyswietl cos" chcialbym wstawic zmienna,ktorej wartosc to "wyswietl cos". W ten sposób sie nie da :( Podejrzewam , że niezbyt dokładnie przeczytałeś manuala.Jest tam napisane: #define PSTR...
Witam Mam zegarek/budzik z wyświetlaczem LED ( dwukolorowy ). Zegarek generalnie działa. Ale mam problem z sterowaniem jasnością. Wiadomo, że robi się to tak, że jasność zależy od częstotliwości odświeżania. Tutaj o jasności wyświetlania ma decydować zmienna jasnosc. . jasnosc : [syntax=vbnet] '************ Timer0 1000 = 1 sekunda, 10000 = 10 sekund,...
Mam oto taki problemik. Programik jest banalnie prosty i działa mniej więcej tak: Gdy zmienna (Wart) nie osiągnie 30 zostaje załączone wyjście Portc.0 . Po osiągnięciu tej wartości wyjście zostaje wyłączone i załącza się kolejne czyli Portc.1 . Podprogram kończy się na wyłączeniu wyjścia Portc.3 . To wszystko jest proste. Problemem dla mnie jest natomiast...
A w kodzie masz Rs=Es
Przepraszam za dłuższą nieobecność. Nie mając nic nowego (i mądrego) nie pisałem. Ale w międzyczasie polutowałem zestaw startowy, a ostatnio napisałem inny program, który umożliwia (w zamyśle) liczenie dokładniej częstotliwości dla "paczki" impulsów, tym razem około 500 Hz. Wiem, że to dosyć skomplikowany tok myślenia, pewnie można to zrobić prościej,...
Tak, jest 10 zmiennych "wynik_o" Ale każda jest wyświetlana osobno (mam nadzieje). To może ja przytocze tutaj fragment żeby nie mieszać całością: Tutaj wyliczane są końcowe wartości poszczególnych słupków, i dalsze wyniki za każdym razem są zmieniane dla następnego słupka, dochodzi "for K = 1 to 10" For K = 1 To 10 Sing = Wynik(k) * 0.02 Sing...
Jeżeli między znakami masz jedną kolumnę odstępu, to na pierwszej stronie będą dwie, a nie jedna kolumna z drugiego znaku, no ale to szczegół ;) Nie wiem, jak masz zapisaną "czcionkę". Jak na moje oko, to może być po bajcie na każdą linię i takich linii 7, jedna po drugiej, potem następny znak itd. Nieużywane bity (te z prawej, znaki wyrównane sa do...
dzięki działa:) dodałem jeszcze buzzerek, ale mam takie pytanie układ ma działać jako termometr informujący o danej temperaturze i bliskości zagotowania wody w obiegu. Kod napisany teraz po przekroczeniu temperatury 70 C zacznie odgrywać melodyjkę, po przekroczeniu 80 inna, a 85 na bardzo piskliwą. Ale potrzebuje coś aby spełniało taka cechę: np. idę...
http://obrazki.elektroda.net/22_12083708... Witam Chciałbym przedstawić wyświetlacz który powstał na szybko na płytce uniwersalnej. Pomysł powstał gdy przyszedł do mnie kolega i powiedział że fajnie byłoby mieć coś takiego na rowerze, nie zastanawiając się długo chwyciłem za lutownicę ;) Powstał pajęczak na zwykłych diodach red 5mm.Następnego...
Bascom - wersja 1.11.95 Kod, no jest tego sporo: - zegar PCF8563 - Zapis na SD - dwa czujniki DHT11 - odczyt z PCF8574AP ( klawiatura ) - RC5 - ma być DS18B20 - ma być DCF77, ale nie doszedłem do tego momentu ( tzn testowałem na innym procesorze i działało ) Działa - zegar PCF8563 - dwa czujniki DHT11 - odczyt z PCF8574AP w przerwaniu ( klawiatura )...
Witam, mam mały program napisałem przy użyciu książki Pana Marcina Wiązania oraz przy użyciu elektrody do obsługi matrycy led, lecz mam nieporządany efekt stroboskopowy. Nie widać liter, tekstu, tylko wszystkie diody mrugają. Czy to jest spowodowane zasilaniem czy też błędem programu? Dorzucam dwa programy, przy których pracowałem i schemat, schemat...
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:...
Po prostu spróbuj, nie wybuchnie ... (chyba) :)
Incr - inkrementacja czyli Z=Z +1 Decr - dekrementacja czyli Z=Z - 1 Home - ustawienie kursora na pozycji 0,0. Polecam polskojęzyczny help do Bascoma tam wszystko pięknie pisze :)
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]
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.
Nie jestem specem w tej dziedzinie ale chyba brakuje Ci tam konfiguracji wyjść do obsługi wyświetlacza LCD.
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 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...
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.
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]
Czy w swoim programie stosujesz komendę LCD w składni podanej niżej ? LCD "tekst" ; zmienna1 ; zmienna2 Najlepiej będzie jeśli podasz kod źródłowy swojego programu oraz numer wersji BASCOMa AVR. I jeszcze jedno, możesz spróbować zrobić to w taki sposób: LCD "tekst"+STR(zmienna1)+STR(zmienna2) z tym, że w tym przypadku zmienna1 i zmienna2 muszą być zmiennymi...
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
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?
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...
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.
wszystkie zmienne (te do wyświetlacza[setki,dziesiatki,jednosci] i ta wyświetlana liczba) powinny być tego samego typu np word lub integer Dim Setki As word Dim Dziesiatki As word Dim Jednosci As word Dim Wart As Word
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...
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...
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. ... 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...
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.
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...
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
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ą...
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...
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]
czy nie potrzebna jest tutaj instrukcja INKEY() ? swojego czasu zrobiłem taki układ , że dwa procki atmega8535 przesyłały między sobą zmienną. program zajął dosłownie 3,4 linijki w odbiorczym użyłem instrukcji inkey() tzn , jeżeli było coś w buforze(różne od 0 ) to wyświetlało daną. oczywiście czasy w realizacji pętli były takie same oraz kwarce również...
Tak tylko wyświetla mi A01 - co robię żle?
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...
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...
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
Dzieki za poprawki ale to sa błędy chyba nie wpływające na wyświetlanie zmiennej Frequency :).
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
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...
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...
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?...
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.
- powyżej 10W: "Pwej= Tak będzie się wyświetlało jeżeli pierwszym bajtem zmiennej String Pwej będzie 0. Zero jest końcem łańcucha (dwie możliwości takiego błędu już podałem stos, albo nadpisanie przez inny łańcuch ;)). Nie piszesz też jaka wersja Bascoma to jest, może w którejś wersji był błąd z funkcją Fusing. Możesz podglądnąć co się dzieje z Pwej...
Do pętli głównej przenieś w takim razie fragment struktury Select Case a zmienną niech będzie cas.Wartości jedynie od 0 do 4. Dlatego, że pozostałe wartości będą wyświetlane z instrukcji If then (alarmy). Do każdego jednak warunku case musisz wstawic Wait 1. Inaczej informacja wyświetli się na czas tak mały, że jej nie zauważysz. Ta strukturę Select...
Witam niestety komendą LCD nie można wyswietlać zmiennej typu Word. Jak obejść ten problem? Zadeklaruj jakąś zmienną jako string (np. tak jak poniżej jest ss1) Dim Ss1 As String * 12 Ss1 = Fusing(W, "#.&&") ' formatowanie zapisu doformatu x.xx Lcd "U=" ; Ss1 jak wartość odczytana komendą getADC ma się do wartości napięcia...
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.
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...
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ę
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...
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...
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...
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 ?
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.
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.
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...
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?
Możesz przytoczyć kawałek kodu (z deklaracją trablicy), bo jak rozumim to nie chodzi o zmienną tablicową, tylko o coś innego.
Z wypowiedzi zrozumiałem że chcesz zapisywac jakieś zmienne w pamieci zewnętrznej podłaczonej po i2c? czy sie gdzieś pomyliłem/nie doczytałem? Dokładnie to. Zmienne mają tam być Niezależnie od kodu w uP. Mają być wyświetlane poprzez odczyt zmiennej sięgając do pamięci zewnętrznej.
Dzięki za chęci Powodem było dzielenie różnych zmiennych. Po ujednoliceniu licznika i mianownika liczy już dobrze pozdrawiam Czarek
obsługa guzików w przerwaniu to bardzo dobry pomysł. Zastanawiałbym się również czy by jednak nie przenieść wszystkiego na timer0 (ten jest 8 bitowy) ale taki akurat miałęm projekcik. Do wygaszania zer trzeba by dodać 10 cyfrę (która będzie pusta - 255). Są trzy cyfry więc trzeba zacząc sprawdzanie od lewej (czyli w przykładzie od trzeciej) .... if...
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.
W najbardziej prymitywny sposób możesz to zrobić tak jak napisałeś, ale rozdzielając odstępami czasu pomiędzy kolejnymi sekwencjami: Portd=&B10000000 waitms 200 Portd=&B11000000 waitms 200 Portd=&B11100000 waitms 200 Portd=&B11110000 waitms 200 Portd=&B11111000 waitms 200 Portd=&B11111100 waitms 200 Portd=&B11111110 waitms 200 Portd=&B11111111 waitms...
wyświetlanie zmiennej bascom wyświetlanie zmiennej napięcia wyświetlanie wartości zmiennej
mazda adaptacja tanie dobre radio samochodowe zmienic dzwonek
frytkownica tefal energotytan zaciskarka
Electrolux EW1043S – silnik nie kręci, pasek cały, silnik programatora działa Moment dokręcania VW LT 2.5 TDI: wałek rozrządu, wtryski, wał korbowy