Witam Wersja mojego Bascoma to 1.11.9.0. Niestety ani Round ani zrównanie liczb ze sobą skutków nie przynosi. Pozdrawiam, Karol
Problem nieprawidłowego zaokrąglania liczb zmiennoprzecinkowych uprościłem i przedstawiam na poniższym przykładzie: $regfile = "m8def.dat" $crystal = 16000000 --------------------------- Dim Nr As Byte Dim Tau_s As Single Dim Tau_w As Word Cursor Off Noblink '.............ukrycie kursora na LCD Cls Do Restore Tab '...............ustawienie się na pierwszej...
Witam! Jak zaokrąglić liczbę typu single (6 miejsc po przecinku) do 1 lub 2 miejsc po przecinku, tak aby to można później wyświetlić na LCD. Jest jakiś inny sposób niż komenda format?
Więc tak potrzebuje wyświetlić liczbę w formacie x.x. I nie wiem jak to zrobić próbowałem tak iż daną liczbę mnożyłem razy dziesięć zaokrąglałem do liczby całkowitej funkcją round a następnie robiłem dzieliłem na dziesięć ale na wyświetlaczu lcd i tak pojawiało mi się kupę liczb po przecinku w formacie x.x00000001 lub podobne x.x999999991. Jak to zrobić...
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! 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...
Jak można w Bascom x51 zmieniać (przesuwać) długość liczby wyświetlanej na LCD. Przykładowy program przedstawia problem. Jak przechodzę z liczby 100 na 99 to pozostaje nie potrzebne zero na wyświetlaczu , a jak przechodzi z 10 na 9 to pozostają dwa zera. Kolejny problem którego chcę się pozbyć to kreska za wyświetlaną liczbą „_”. Dim I As...
Cześc Ludzie podpowiedzcie jaka jest komenda w bascomie, aby wynik był wyświetlany trzy miejsca po przecinku Np. 1,235 3,483 Dzięki.
witam mam pytanie z wiązku z tym żeby na wyświetlaczu segmentowym liczby 123456 przesuwały mi się w prawo jak na banerach reklamowych z lewej do prawej oto jest napisany program wyświetlania liczb 123456 i nie wiem jakie komendy wpisać aby to się przesuwało: LJMP START ORG 100H START: MOV R0,#CSDS MOV R1,#CSDB MOV A,#00000001B MOVX (at)R0,A MOV...
To może koledzy mają jakiś inny sposób na zamianę liczby z postaci zmiennoprzecinkowej w całkowitą? No to w końcu chcesz mieć liczbę całkowitą w zmiennej zmiennoprzecinkowej czy liczbę całkowitą w zmiennej całkowitej? Jak to drugie, no to Round: Dim Co2_w As Single Dim Co2_int As Long ... Co2_int = Round(co2_w) Niezgodnie z Helpem BASCOMa,...
Tutaj masz wsaszik do atmegi 8. Tylko delikatnie zamotane jest zaokrąglanie liczby.
No bo zmienne nie mają nieskończonej dokładności. A liczba 0.1 w kodzie binarnym nie jest liczbą okrągłą i musi być zaokrąglana.
:) Komenda mod to taka reszta z dzielenia czyli: zmienna = liczba mod 4 zmienna - miejsce gdzie zostanie wpisana reszta z dzielenia liczba - zmienna która jest dzielona przez 4 (w miejsce 4 możesz wstawić inną liczbę lub zmienna) Dodatkowo w Bascomie są dwa rodzaje dzielenia znak / i \ pierwszy (/) używamy do dzielenia z resztą (w przypadku zmiennej...
Poradziłem już sobie z uśrednianiem wyniku, ale mam dalej problem z tym zaokrąglaniem. Nie ma jakiegoś prostego sposobu na zaokrąglenie liczby ułamkowej ? Te funkcje round i int nie działają poprawnie. Zaokrąglają, ale pozostaje przecinek i zero na końcu, którego chcę się pozbyć.
Można to zoptymalizować i nie przeliczać na Volty w ogóle, ale tak bedzie prościej zobrazować. Jeśli napięciem odniesienia jest AVCC to znaczy że 5V trzeba teoretycznie podzielić przez rozdzielczośc 1024 i wyjdzie 0.00488 no i to się często zaokrągla do 0.0049 Teraz żeby odczytać napięcie wystarczy pomnożyć odczytany wynik przez te 0.0049, ale to wymusza...
No tak, tu obliczenia robi na liczbach całkowitych i z pewnością wystąpi z tego tytułu niedokładność jakaś przez zaokrąglanie, ale nie sądzę aby to było jakieś 20% wyniku i tylko w dolnym zakresie.
Więc pytanie zasadnicze. Jak zaokrąglić otrzymany wynik zmiennoprzecinkowy w bascomie AVR? Wykorzystywanie liczb zmiennoprzecinkowych do odczytu temperatury z DS18B20 jest lekko mówiąc mało rozsądne, zwłaszcza że "po przecinku" może być tylko 16 różnych wartości. Takie rzeczy to się zaokrągla na etapie pisania programu, który potem operuje wyłącznie...
Błąd chyba tkwi w sposobie liczenia a dokładniej w sposobie zaokrąglania liczby, napisz dokładnie w jakis sposób liczysz część ułamkową. Przypuszczam że gdzieś zaokrąglasz coś w góre a przy sumowaniu to zaokrąglenie powoduje "przekręcenie" się licznika częsci dziesiętnej temperatury.
Dzięki za odpowiedź ale nim wpisałem pytanie na Elektrodę to sporo męczyłem się z tym (przesuwanie przecinka, mnożenie, dzielenie) ale niestety bez rezultatów. W bascomAVR jest polecenie "Round" ale ono zaokrągla wynik do liczby całkowitej i tym samym odpada. Może jest jeszcze jakieś polecenie coś w rodzaju formatowania wyniku, którego jeszcze nie znam/znalazłem...
niestety ujemnych liczb cgba nie obsługóje , chociaz może ??? co do zaokrąglania to mozna dać Lcd Fusing(Wynik , "#.##") i powinno działać pozdrawiam
Wydaje mi się że to nie tego jest powód bo na wyświetlaczu mam w 95% czasu wynik 151.352111816* i raz może na 30 sekund mignie dokładnie 90.0* i z powrotem jest tamta liczba dokładnie taka sama, gdyby co chwila była inna liczba to owszem sam bym stwierdził ze to niedokładność pomiarów. Poza tym ja licząc kalkulatorem zaokrąglałem każdy wynik (licząc...
Co do kolegi pierwszego: wcale nie chce żadnej wiekszej dokładności. 200 x 0.0025 = 0.5 i to bez łaski - nie wiem dlaczego procesor wylicza coś dalej poza mnożnik 0.0025 przecież powinien operować tylko wielokrotnościami tej liczby. O zaokrąglaniu to wiem ale myslałem, że nie trzeba bedzie tego stosować. Kolega drugi: Takie podstawienie jak napisaleś...
Bo fusing robi stringa proszę szanownego kolegi:) To nie tędy droga...PS może nie zaokrąglanie a histereza?:) Wiem właśnie. I dla tego takie głupoty wychodziły. Ale gdy dam dodatkową zmienną string i tak "zfusuje" wartość temperatury a następnie ponownie przepiszę ją do zmiennej single procedurą Val to ponownie zamiast xx.xx mam xx.xxxxxxxxx. A = Fusing...
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...
Co do konfiguracji portu C hm mam najnowszego bascoma i nie ma żadnych błędów po kompilacji i robot zaprogramowany tylko z czujnikiem lini lub tylko z czujnikiem wykrycia przeciwnika działają poprawnie. Co do zmiennej Word to jest to liczba całkowita bez znaku, od 0 do 65535, ok zgodzę sie bo zmienna Volt nie będzie całkowita i jest zaokrąglana do 0...
O zasilaniu czy sprawności kodu nie pisałem z prostych przyczyn: Piszącego w Bascom interesuje tylko to by program działał a nie ciągnął mało prądu (zasilanie bateryjne i Bascom? Nigdy nie słyszałem by ktoś to łączył) Piszącego w Bascom interesuje by progam działał niezależnie czy musi użyć procka z 16kb czy 32kb Ja wolę by program mieścił się w 1kb...
Oto fragment polskiej wersji helpa do bascoma (rozdział Podstawy języka BASCOM BASIC): Komplikacje związane z liczbami zmiennoprzecinkowymi Każda liczba całkowita może zostać zapisana w notacji binarnej. Liczba zmiennoprzecinkowa już nie. Faktycznie, każda liczba niewymierna o podstawie 10, będzie także niewymierna w każdym systemie o podstawie mniejszej...
Witam serdecznie! Mam problem z inkrementacją zmiennej Z, ponieważ wszystko opiera się o dokładność przedstawiania liczby zmiennoprzecinkowej. Zamiast 0,1 pokazuje 0,09. Próbowałem już fusing(), frac() (wskazywanie liczby po przecinku, chciałem tą resztę zaokrąglać round() ) , może format() ale tu trzeba non stop konwertować zmienne na znaki z liczb...
Niewiem czy dobrze rozumiem ale chyba będzie problem bo na moim kalkulatorze wychodzi że 16000000/15000=1066,7 a w nocie pisze że dla Timer1 prescaler może być max 1024 75 ? Czy to się jakoś zaokrągla do pełnej liczby?
Problem polega na tym że program pisze w asm - w bascomie też nie miałem problemu ale za duży kod - brakuje pamięci. Może ktoś wie czy algorytm ADD-3 można zastosować do liczb powyżej 8bit - zamiana 32bitowej liczby na BCD też by załatwiła sprawę. :arrow: natalia. Autor wyraźnie napisał jakiego języka programowania chce użyć(używa). ... 3. mnożysz...
Witam. Założenie jest proste czyli zwykły licznik w zakresie 0 - 99 km/h. Czujnikiem ma być powiedzmy kontaktron. Niestety mam problem z napisaniem programu. Wg mojej koncepcji przerwanie od timera ma zwiekszać stan zmiennej co 1ms. Po wykryciu sygnału od czujnika wartość czasu ma być przepisana do kolejnej zmiennej i dalej liczona dopiero predkość...
Nie używałem nigdy BASCOMa, ale chyba powinno się dać w nim zrobić coś takiego: wynik = round(liczba*100)/100
Dzielisz liczbę przez 100, masz setki. Dzielisz przez 10, masz dziesiątki ;-) Jeśli będziesz operował na byte to powinien zaokrąglić. Dim A As Byte Dim A100 As Byte Dim A10 As Byte Dim X As Byte 'zmienna pomocnicza A = 235 A100 = A / 100 X = A100 * 100 A = A - X A10 = A / 10 X = A10 * 10 A = A - X
Hej! Zobaczcie jak ja to robię, może komuś sie to przyda: 'Powiedzmy ze zmienna Liczba(single) wynosi 22.62555426 Temp = Int(liczba) ' dzieki temu poleceniu odcinam czesc setna czyli ' zmiennej Temp(byte) przypisuje liczbę 22 Liczba = Frac(liczba) ' dzieki temu poleceniu odcinam czesc ' dziesiętną czyli zmiennej Liczba(single) przypisuje ' liczbe 0.62555426...
Działać to one będą zawsze, tylko w pewnych przypadkach mogą się przegrzać. Z tego względu tutaj chyba chciałeś napisać "użyć diod wewnętrznych". Przyjąłem dla uproszczenia przypadek, gdy układ nie pobiera prądu większego niż wytrzyma dioda. Tutaj podano, że nie powinno się przekraczać 1mA dla tych diod. Trochę zaokrąglając przy minimalnie 15kΩ...
(A). Czy w Compare0a = 186 mogę wstawić liczbę w zakresie 0-255? (B). by uzyskać interwał =~100ms to 9 600 000Hz/ 1024 /37,5 (połówek pewnie nie można używać wiec zaokrąglę do 38 to będzie 247Hz (C). natomiast dla interwału 50ms to 9 600 000Hz/ 1024 /75 to będzie 125Hz czy dobrze to rozumiem? Nie dobrze , .. (at)A. -formalne/teoretycznie możesz w Compare0a...
Odjąć od badanej liczby jej zaokrąglenie, jeśli wyjdzie 0 to jest całkowita, jeśli nie to nie;)
Zdefiniuj zmienną Temp jako Word. Jak ci ma wyświetlić 600 jesli zmiena Byte może przyjąc max wartość 255. Właśnie powyżej tej wartości będą ci sie wyświetlać dziwne rzeczy. No to może wytłumaczę jak to zrobić na zmiennej typu Byte według wyżej wspomnianej ideii. $crystal = 4000000 $regfile "attiny2313.dat" Dim Pomiar As Single Dim Temp As...
To sobie zapisuj w postaci całkowitej i pamiętaj ile miejsc po przecinku dla wszyskich liczb jest przesunięcie, a resztę zaokrąglij.
nawet te 5MHz to już dużo, a mówiąc o rozdzielczości miałem na myśli liczbę bitów :) skontaktuj się z autorem wątku o AD9833 jeśli spodoba Ci się ten układzik :) Pozdrawiam
W nocie do megi8 masz pokazane jak podłączać AVCC (dławik + kondensator). Napięcie zasilania jest za mało stabilne na napięcie odniesienia, tym bardziej, że zależy Ci na dokładności. Wrzucilem kondensatory tylko prosze o sprawdzenie czy wartosci sa dobre... http://obrazki.elektroda.net/79_12163716... W kodzie wyżej kilka wartości i szczegółów...
na wejściach pomiarowych jest podpięty miernik i nie skacze jest stała wartość. Wymienię procesor bo juz kiedyś też miałem problem z pwm i nie wiem czy to czasem nie ta sama sztuka:) P.s wymieniłem procesor i nic to nie zmieniło. Jest jedna zasada ze pierwszy pomiar czy to z 10 czy z xxx jest zawsze ok wartość jest w 100% zgodna ze wskazaniem miernika...
Poprawiłem błędy, w tym ten związany z częstotliwością a nie z okresem sygnału. Dodałem zmienną typu Single Czestotliwosc, do obliczeń zmiennoprzecinkowych. W Timer0 wpisuję na starcie 131, Config Int0=Rising. Czy dobrze to robię, czy we właściwych miejscach kodu? Pytania: Jak zaokrąglić wynik ze zmiennej Czestotliwosc do dwóch miejsc po przecinku?...
http://obrazki.elektroda.net/41_12633119... Stworzone przeze mnie urządzenie jest praktycznym uzupełnieniem piórnika szkolnego. Jest wyposażone w kilka pożytecznych funkcji i na opisanych poniżej nie zamierzam zaprzestać. Całość została zorganizowana w wygodne w obsłudze intuicyjne menu. 6 przycisków uSwith w jakie jest wyposażony układ umożliwia...
Triangle Deluxe - Zaawansowany system oświetlenia http://obrazki.elektroda.net/26_11981998... Przedstawiam mój kolejny bardzo długo zresztą wyczekiwany projekt. Jest to jak dotąd największe z moich przedsięwzięć wykonane zupełnie samodzielnie od początku do końca. Jest też najdroższe gdyż z grubsza licząc kosztowało ponad 1000zł. Wstęp. Było...
Witam ,właśnie zaczynam wzmagania z operacjami matematycznymi w BASCOM (jak dotąd nie były mi potrzebne) ;) Zauważyłem pewne zjawisko ,że po przekroczeniu 90% Flash przy kompilacji zaczynają się dziać dziwne rzeczy ,jakby stos czy ram niszczył zmienne i pojawiają się dziwne wyniki ,stąd z ATTINY2313 ,przeskoczyłem na Atmegę8. Ten sam program bez jakichkolwiek...
zaokrąglanie liczb bascom zaokrąglanie bascom zaokrąglanie single
zawór ciśnienia listwie scania junkers regulacja pompa podwyższenie napięcia stabilizatorze
toshiba 32la3b63dt stara instalacja antenowa
Jak założyć sprężynę odciągającą pedał sprzęgła w kosiarce Wolf Garten Błąd "przepełnienie stosu w wierszu 68" w Microsoft Word