Kol. _Matik_ określił przyczynę problemu, ja natomiast chciałem zasugerować rozwiązanie. W Bascomie jest instrukcja ROUND(x). Sądzę, że to jest najprostsze wyjście.
Piszesz "nie działa" a to nie wiadomo czy LCD pusty czy kod się nie kompiluje. Ta Twoja wersja pamięta jeszcze dinozaury. Być może trzeba zmienną 4 bajtową jaką jest Single rzutować najpierw na 4 bajtową Long. Czyli Dim A As Single, B As Long. Zamieść kawałek kodu który Ci nie działa łącznie z deklaracjami zmiennych.
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?
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.
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,...
Takie mam problemik. Otóż mam w stringu wartość typu "843.30" - przecinek może być na różnej pozycji, czyli może to być np. "3.423" Potrzebuję toto zamienić na wartość liczbową, więc przepisuję do zmiennej typu SINGLE. Ale - dla stringu "84.2" otrzymuję wartość zmiennej 84.199996946 Jak sądzę, jest to problem konwersji do single - czy jest jakiś sposób,...
mnie sie wydaje ze nie ma znaczenia czy zmienną single wyswietlasz czy wysylasz UART'em, u mnie wlasnie na RS'ie tak sie dzieje, jak dla mnie to Bascom juz tak ma.
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...
Zaokrąglenia single... na LCD. Powiem szczerze ze pomysłów mi już brakło. Spróbuj więc takiej funkcji: CONFIG SINGLE = SCIENTIFIC , DIGITS =1 co obcina zbędne miejsca zmiennej 'single' do jednego miejsca po decimal point. Zamiast 1 może byc dowolna wartośc w zakresie 1 do 7. albo jak wyżej "FUSING". e marcus Ta funkcja również zaokrągla ?, działa przy...
Przetestuję i zobaczę, ale dla częstotliwości zegara taktującego atmegę równej 16MHz to powinno dość krótko chyba trwać. Zobaczę i zmierzę w praktyce. Szczerze mówiąc nie wiem, ile będzie trwało. Nie wiem też, jak to skompiluje Bascom. Najlepiej sprawdź. Tablicę można zrobić, tylko do tablicy nie mogę wpisywać wartości Single, a zmienna całkowita Integer...
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...
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...
Mam problem z uśrednieniem wyniku z przetwornika ADC. Nabazgrałem cos ale nie do końca to działa. Chcę z czytywać 10 ostatnich wyników i wyciągnąć z nich średnią arytmetyczną, wysłać do LCD na pierwsza linie. Następnie ten uśredniony wynik będzie dzielony przez 6 i mnożony przez 100 i wysłany do LCD na druga linie. Mam też problem z funkcją zaokrąglania...
Nie używałem nigdy BASCOMa, ale chyba powinno się dać w nim zrobić coś takiego: wynik = round(liczba*100)/100
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 będę sie rozpisywał: Dim T1 As Single , T2 As Integer ... T1 = -123.50 T2 = T1 'bez części ułamkowej T2 = Round(T1) 'zaokrągli zgodnie z prawami arytmetyki ... Pozdrawiam Piotrek
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...
Odjąć od badanej liczby jej zaokrąglenie, jeśli wyjdzie 0 to jest całkowita, jeśli nie to nie;)
Dlaczego tak sie dzieje ze I2 jest zaokraglane do jedności czy jest na to jakis sposob aby pobrać taka daną I2 ktora jest na wyświetlaczy czyli z jednym miejscem po przecinku?
Na mój gust do skoro mnozysz zmienną WORD przez stałą CONST o dokładności 0.0001 to dlaczego chcesz mieć wynik z dokadnością 1000 razy większą. To nie komputer PC. Ja bym zaokrąglił wynik do sensownej pozycji używanej przez kompilator ( w twoim przypadku 0.0001) i wynik się przecież zgadza. Problem jest typu: mmnożenie zmiennych typu SINGLE a wynik...
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...
Witam Mam problemy z fazami w domu. chciałbym mieć stały pomiar wyświetlany na LCD i w przypadku przekroczenia napięcia 240V zapalaną diodę led podpiętą do nóżek procka(docelowo będą to przekaźniki) i sygnał dźwiękowy na syrence. Wykonałem w bascomie miernik faz na atmega8, tryb zaokrąglania wyniku zaczerpnąłem z jednego kodu z forum. Płytka z układem...
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...
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...
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?...
Witam Miałem podobny problem z wyświetlaniem. Trzeba prawidłowo przypisać typy zmiennych a formatowane umieścić w poleceniu LCD "123";Fusing(X, #.##);"123". Tylko takie umieszczenie formatowania rozwiązało mi problem z wyświetlaniem całkowicie. Odpowiednie akcje na zmiennych należy wykonywać po zaokrągleniu do całości instrukcją np Round(Vol) lub Int(Vol)...
Łap. Voltomierz będzie działał stabilnie, ale wiedz, że Ty masz błąd logiczny w swoim kodzie. Pomysl. Jeśli u Ciebie "Steps" to zaokrąglone do całych poprzez Round "Angle" to jest to wartość ustalana przez napięcie czyli w pewnym momencie będzie stała. A tu zmienna "Kroki" jest porównywana z ta zmienną ""Steps", ale po porównaniu dodajesz lub odejmujesz...
Witam ,uczę się obsługi przetwornika ADC i na bazie helpa z Bascoma napisałem dwa programiki: [syntax=basic4gl] 'przetwornik ADC $regfile = "m8def.dat" $crystal = 8000000 $hwstack = 64 $swstack = 64 $framesize = 40 Config Portc = Input Config Portd = Input nop Portd = &B11111111 nop Config Lcd = 16 * 2 Config Lcdbus = 4 Config Lcdpin = Pin , Db4 = Portb.3...
Oto kod jednego z programów z którym mam problemy: 'C029f.bas Generator impulsów prostokątnych ' UWAGA! Wejsciem EN(able) modułu LCD steruje końcówka PB.1 ' do wyjscia PB.3 dołączona przez rezystor 1k anoda diody LED (katoda do masy) Dim Impuls As Word , Przerwa As Word , Czas As Single , Zmiana As Bit , Napis As String * 9 Config Timer1...
Poradziłem sobie już wystarczyło zadeklarować A jako Long i wtedy moglem użyć funkcji Round. Mam jeszcze pytanie bo nie chcę zakładać kolejnego tematu . Jak ustawić timer aby w poniższym programie aby robił pomiar ciśnienia co minutę ? [syntax=basic4gl] $regfile = "m644pdef.dat" $crystal = 16000000 Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3...
Witam W prockach dopiero raczkuje. Robię obrotomierz do samochodu (choć można zastosować to wszedzie). Oparłem to na atmega16 bo taki akurat teraz mam, ale docelowo ma byc na 2312.Na razie jest wszystko w fazie testowej na biurku, ale założenia są takie: na kole zamachowym umieszczam siakiś czujnik, podaje to na układ formowania impulsu, z którego będę...
A jest możliwość zapisu danych w do MS Excela lub do csv w postaci tabel? Dlaczego 11 bajtów przy czterech naraz (a nie 8)? Niestety nie ma możliwości zapisu do excel'a, i ja nie potrafie tego zrobić. Wykres można zapisać do pliku *.grf Po otwarciu go w notatniku wygląda tak: Kurve 255 1462 0.00000000000000E+0000 0.00000000000000E+0000 9.99999999999446E-0004...
witam Próbuje napisać program który po wgraniu do atmegi będzie pokazywał napięcie i prąd. 10 bitowa rozdzielczość przetwornika A/D jest dla mnie nie wystarczająca, Postanowiłem sięgnąć po technikę zwaną nad próbkowaniem (oversampling) Atmege programuje w bascomie znalazłem artykuł w nowym elektroniku z 2007 roku opisujący to zagadnienie.Przepisałem...
Witam serdecznie! Najpierw może podzielę się kodem: [syntax=basic4gl] $crystal = 8000000 $regfile = "m644pdef.dat" Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1 Dim Plynnosc As Integer Dim Plynnosc_r As Single Dim Plynnosc_t As Single Dim Reszta_pwm1b As Integer Dim Ustaw_czasu_ms As Integer...
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...
single zaokrąglanie bascom zaokrąglanie single bascom
paliwo stałe junkers regulacja pompa mostek tyrystorowo diodowy
Vaillant filtr pompy 160928 – czyszczenie, demontaż, konserwacja, uszczelka EPDM Schemat magnetofonu szpulowego Grundig ZK 120 – gdzie pobrać dokumentację serwisową?