Jeśli liczba sztuk będzie wzrastać to OK, ale przy przejściu ze 100 na 99 wyświetli 199. Może rezultat = FORMAT( zmienna , "maska" ) pomoże!
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....
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...
(...) ' 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
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]
moim zdaniem błąd tkwi w przypisywaniu zmiennym typu byte wartości zmiennych typu string,możliwe że dlatego wynik nie jest poprawny
Pomnóż przez 2, zaokrąglij do wartości całkowitych, podziel przez 2, i wyświetl z rozdzielczością do 1 miejsca po przecinku.
Witam, mam problem bo nie wiem jak wyświetlić dwie zmienne w tym samym miejscu na wyświetlaczu to jest kawałek kodu Dodano po 2 Wymyśliłem licznik [syntax=basic4gl] Wyswietlacz: If Pind.1 = 0 Or Pind.3 = 0 Then Do If Pind.1 = 0 Or Pind.3 = 0 Then Licz_ok = 0 Incr Licz_ok End If Locate 1 , 7 : Lcd Zmienna If Licz_ok = 255 Then Exit Do Loop [/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...
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,...
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...
Witam wszystkich. Problem kształtuje się następująco: W programie wynik wrzucany jest do zmiennej typu SINGLE. Jest to wartość prędkości na poziomie około 2 m/s Wynik wyświetlany jest na wyświetlaczu LCD zawsze do 9 miejsca po przecinku: Np. 1.945674391 chciałbym, aby wyswietlanie było tylko dwa miejsca po przecinku, czyli np. 1.94, nie jest istotne...
odczytuję temperaturę z dwóch ds18B20, zapisuję do oddzielnych zmiennych i wybieram dwoma klawiszami która z nich ma byc wyświetlona i tu pojawia sie problem: temperatury zostaja zmienione na lcd ale tylko raz, znaczy sie gdy temperatura zmieni się to nie ma zmian na wyświetlaczu. temperatura na lcd zmienia sie "live" tylko wtedy gdy trzymam przycisk...
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...
Nie łam się - idzie ci bardzo dobrze. Moje wypowiedzi miały ukierunkować cię na jedynie słuszna drogę: bascom -> bascom+wstawki asm -> asm Także testuj różne rozwiazania tego samego problemu i wybieraj te które zajmuja najmniej pamięci - jest to prawie jednoznaczne z szybkoscią działania programu po kompilacji bascomem. I jeszcze raz o tym lcd. Wiadomo...
Witam Mam problem z właściwym liczeniem i wyświetlaniem wyniku (LED 7-segm.). Liczy procent czasu włączenia urządzenia (licz_minuty_triaka) w stosunku do czasu działania (licz_minuta_stat). Standardowo, jeśli nie dochodzi inny warunek to urządzenie chodzi 3 min. co 2 godziny, zatem wynik powinien oscylować wokół 2,5%. Wynik ostateczny z bascoma - liczba...
jednak jak bym chciał zrobić to w bascomie to i tak i tak muszę liczyć na zmiennym przecinku bo bascom funkcje trygonometryczne liczy tylko na zmiennych typu single więc sprubuje zrobić to przez DFT i IIR i zobacze co działa szybciej a tak w ogule to mam jeszcze pytanie czy dobrze rozumiem to IIR najpierw muszę zaprojektować analogowy filtr wedłóg schematu...
Witam! Mam tu taki kawałek kodu: Dim Tick_time As Single Dim Length As Single Dim Mps As Integer Dim Fps As Integer Dim Fff As Single Dim Tick_count As Integer Dim Czas As Single Tick_time = 0.000096 Czas = Tick_count * Tick_time Mps = Length / Czas Fff = Length / Czas Fff = Fff * 10 Fps = Fff / 3 Tick_count = 0 Cls Lcd Mps Lcd " m/s " Lowerline...
Witam, Czy istnieje możliwość z - poziomu języka Bascom - sterowania wybranym polem/polami wyświetlacza (2*20)? Chodzi o to, że program się wykona, wyświetli wyniki na wyświetlaczu a ja chciałbym np. naprzemiennie wyświetlać sekwencję znaków w jednym miejscu nie tracąc z wyświetlacza wyników z poprzedniej operacji... Proszę w swoich wypowiedziach używać...
Witam Potrzebuję zaokrąglić liczbę zmiennoprzecinkową do liczby całkowitej (do późniejszego wyświetlenia na wietlaczu LED (rozbijanie liczby na pojedyncze cyfry działa poprawnie). Do tego celu wykorzystałem funkcję Round. Zgodnie z instrukcją Bascoma należy zrobić to tak: [syntax=vbnet] dim A as Long, B as Long A=Round(B) [/syntax] Rozumiem, że gdyby...
Witam! problem mam nastepujacy: wyswietlam zmienna na wyswietlaczu graficznym w punkcie: Lcdat 4 , 15 , Metry i teraz jak ta zmienna inkrementuje to ona zmienia swoja wartosc od 0-100 przez co liczba na wyswietlaczu sie powieksza(normalne) ale miejsce dziesiatek nie zmienia sie w kierunku prawym tylko lewym ;( glownie chodzi o to ze liczba zmienia sie...
Nie porównuj programu z BASCOM 8051 do programu z BASCOM AVR bo to dwa różne kody wynikowe. W układach AVR wszystko odbywa się szybciej. Mniej taktów zegara przypada na wykonanie jednej instrukcji. Poza tym tam nie musisz na nowo uruchamiać licznika - działa on stale od momentu gdy ustawisz preskaler. Uproszczenie procedury przerwania w sposób przez...
Witam, Czy ktoś może mi powiedzieć czemu jak używam komendy print , na wyświetlaczu żadne dane się nie wyświetlają [syntax=vbnet] $regfile = "m644pdef.dat" ' specify the used micro $crystal = 16000000 $baud = 9600 ' use baud rate $hwstack = 32 ' default use 32 for the hardware stack $swstack = 10 ' default use 10 for the SW stack $framesize = 40 ' default...
Większość to jedna wielka wstawka ASM + kilka procedur gotowych z bascoma AVR. Co się da mam napisane w asm. wykorzystuje wszystkie zegary, dwa comy (komunikacja z komputerem(modbus rtu) i z sterownikiem IDEC), i2c pzetwornik i pamięć, wyświetlanie stanów na lcd, ,rejestry wewnętrzne,klawiatura.... Ale w kolejnych wersjach już będę musiał przejść i...
Witam Mam zagwozdkę w sprawie wyświetlacza LCD. Posiadam Płytkę uruchomieniową z wyświetlaczem 4x20. I na wyświetlaczu ma mi się wyświetlać po kolei litery z danego napisu w danej linii. Podstawy program działa, tylko zastanawiam się jak to ugryść dalej. Proszę o pomoc. Piszę w bascomie, niedawno zacząłem przygodę dopiero co. Mój program na LCD to:...
Witam Mam taki [url=http://www.artronic.pl/o_produkcie.... LED i nie umiem wyświetlać na nim cyfr, tzw. umiem ale nie tak jak to powinno się robić. Wyświetlam je tak [syntax=basic4gl]Portb = &B1100110 Portd.1 = 1[/syntax] a chcę pisać np. wys5 i wyświetli się liczba 5 To moje kody [syntax=basic4gl]Tabela: Data 63 , 6 , 91 , 79 , 63...
uP 2051, port P3.2, odbiornik TFMS.. - typowa aplikacja, wyświetlanie na LCD, program z "sampli" BASCOMA. (...) Wygląda to tak jakby zmienne command i subaddress były "zapamiętywane" i podawane do wyświeylenia na wskutek przerwania od obcego pilota co powoduje oczywiste zakłócenia. Zmienne Command oraz Subaddres są i muszą być zmiennymi globalnymi....
Witajcie Jestem na etapie programowania układu zasilacza laboratoryjnego z ograniczeniem prądowym. mikrokontroler atmega16 Mój algorytm jest taki: Przerwanie co 8ms (ze względu na to że stosuje bascom i liczby zmiennoprzecinkowe nie mogę zejść niżej) W przerwaniu: - sczytane wartości napięć i prądów i porównanie ich z wartościami zadanymi -jeśli prąd...
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...
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! snnaap dzięki za pomoc, udzieliłeś świetnych uwag !!! Dokonałem zmian w programie i tak jak właśnie powiedział snnaap, zastosowałem przerwania int0 i int1 do odczytu stanu przycisków +/- po za tym odczyt temp i termostat pozostawiłem bez zmian. Zamieszczam kod mimo że jest napisany w stylu quick and dirty i zawiera wiele niedociągnięć jednak...
Da się na 1000% ponieważ przed tym miałem tzw "piórnik ściągę" i pokazywało temperaturę i czas w 2 linijkach jakby jako jedna. Tylko właśnie nie wiem jak to dokładnie napisać ponieważ nie mogę ogarnąć tego w kodzie z tego "piórnika" Teraz chcę żeby tak pokazywało tylko temperaturę. Ogólnie ten "piórnik ściągę" rozpatroszyłem na części pierwsze żeby...
A w kodzie masz Rs=Es
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...
Witam W ramach dalszego eksperymentowania z AVR i Bascom popełniłem połączenie odczytu z DS18B20 z sterowaniem wyjściem uC ( przez tranzystor FET ) + dodatkową atrakcję - buzer, który sygnalizuje wł/wył tranzystora/wyjścia. Chciałem dodać możliwość zmiany temp max i min, przez proste menu. Menu zrobiłem w oparciu inny mój kod obsługujący ustawianie...
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 )...
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) :)
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.
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 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.
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...
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]
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.
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...
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...
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
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
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ą...
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
wyświetlanie zmiennych bascom zmiennych bascom wyświetlanie
sterowanie bramy rolowanej mostek zamiast lampa krystalizacja akumulatorów
tester ogniw 18650 apple display studio
Jak zmienić rozszerzenie pliku .txt na .jar? Wymiary profilu do utrzymania 150 kg na 1,5 m