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.
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.
Takie mam problemik. Otóż mam w stringu wartość typu "843.30" ............... Potrzebuję toto zamienić na wartość liczbową, więc przepisuję do zmiennej typu SINGLE. .................. Round(x) zaokrągla do pełnych wartości, więc nie pomaga... To zależy do czego chcesz ten wynik użyc. Aby wyświetlic go na display lub print, spórbuj tak: [code][syntax=basic4gl]...
No więc zacznijmy. W Twoim programie zmienna typu Single ma wartość początkową zero . Niezależnie od tego czy naciśnięty jest jakiś przycisk to zmienna ta dzielona jest przez 16. Tak więc nawet gdyby przyciskiem została zwiększona o jeden to i tak zostanie podzielona przez 16. Czyli cały czas będzie mniejsza od jeden. Będzie to 0.xxx coś tam Takie 0.1...
To sięgnij po" fusing" dla single i "format" dla reszty.
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?
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.
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...
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...
ALTON! 1. Założenie było: 2x150W, czyli moc oddawana 300W. Sprawność wzmacniacza jest ok. 70% czyli trzeba mu dostarczyć 428W, zaokrąglam do 450W ze wzgledu na straty w prostowniku. Twoja propozycja trafora 300W nie spełnia kryterium mocy, jak się chce mieć moc, to trzeba płacić ... 2. Moc oddawana 150W na 1 kanał oznacza wydzielenie w tranzystorach...
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...
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...
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...
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 potrafię wstawić komendy, która zaokrągla wynik do 2 miejsc po przecinku. Cały program (bez zaokrąglania) wygląda tak: $regfile = "m8def.dat" 'informuje kompilator o pliku 'dyrektywy mikrokontrolera $crystal = 8000000 'informuje kompilato Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.6 , Db6 = Portd.7 , Db7 = Portd.4 , E...
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...
Nie znam tej funkcji. Ja zawsze samemu to pisałem.Byla to rada, nie mogłem wkleić jakiegos przykładowego lisningu bo nei bylem u siebie w domu, a nigdy nie wklejak takowych bez sprawdzenia w symulatorze czy działają. Wyglądało by to jakos tak: Dim A As Integer Dim B As Byte Dim C1 As Byte 'cyfra 1 Dim C2 As Byte 'cyfra 2 Dim D As Single D = 23.6443...
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...
Nie używałem nigdy BASCOMa, ale chyba powinno się dać w nim zrobić coś takiego: wynik = round(liczba*100)/100
Po konwersji część ułamkowa zostaje "utracona". Zmienna przyjmuje wartość jedynie części całkowitej bez zaokrąglenia, czyli: 2,9 (single) po konwersji na integer to 2
Jak dla mnie najwięcej "lampy" słychać jak pracuje z innymi lampami bez żadnych hybryd. Szczególnie dotyczy się to stopni końcowych na pentodach i tetrodach strumieniowych a już w ogóle jeśli chodzi o wzmacniacze gitarowe. Przedwzmacniacze są już mniej istotne bo ostatecznie i tak lampa w stopniu końcowym wzmocni "po swojemu". Ja sobie zbudowałem mały...
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ść...
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...
Poniższy komentarz jest zamieszczony dla tych, co nie rozumieją lub nie wiedzą, jak skorzystać z tego, co jest widoczne powyżej. Ja przedstawiam to trochę inaczej, chyba prościej, posługując się działającym przykładem. Przykład wszystko wyjaśni. Zrób tak. 1.Otwórz nowy projekt i umieść na formie pole Memo , dwa pola Edit i dwa przyciski Button 2.W sekcji...
Witam, wiem ze temat był przerabiany wielokrotnie ale po przeczytaniu postów dalej nie mogę znaleźć błędu u siebie. Pod pin 8 portu A mam podpięty czujnik temperatury LM35. Napięcie jakie mierze na samym pinie jest poprawne np. ok 230mV czyli mniej więcej 23C. Chciałam napisać programik wyświetlający wartość binarną z wejścia analogowego. Ponieważ mam...
https://obrazki.elektroda.pl/6316252200_... Witajcie moi drodzy. Tutaj przedstawię wnętrze drukującego kalkulatora Citizen 355DP. Zobaczymy na jakich układach elektronicznych jest on zrealizowany, jaki ma wyświetlacz, oraz zrobimy sekcję modułu drukarki. Krótki opis Citizen 355DP Citizen 355DP to kalkulator 12-cyfrowy, zasilany z sieci....
Jeśli możesz dopuścić błąd przy zaokrągleniu , to skompiluj dla const _single=0 , jeśli nie , to const _single=1 : $regfile = "m8def.dat" Const _single = 1 #if _single Dim N As Single , Temp As Single , Temp2 As Word Temp2 = Tcnt0 * 10 N = Temp2 / 6 Temp = N - Int(n) If Temp = 0 Then Temp2 = N Cls Lcd "V=" ; If Temp <>...
Witam. To mój pierwszy post wiec proszę o wyrozumiałość. Wraz z kolegami z zespołu dostaliśmy zadanie aby zrobić termometr przy użyciu dekoderów cd4511be do które będą sterowały dwoma wyświetlaczami siedmio-segmentowymi które działają w ze wspólną anodą. Temperatura ma być podana z dokładnością do 1 stopnia C. Napisaliśmy program do terowania MC. Używamy...
Odjąć od badanej liczby jej zaokrąglenie, jeśli wyjdzie 0 to jest całkowita, jeśli nie to nie;)
Wielkości dodatnie to IEEE754 single pomnożone przez 2.54 i zaokrąglone do 4 miejsc dziesiętnych. Np. 3EE8C4F8 to 0.4546278, razy 2.54 daje 1.154754... ~ 1.1548 Ujemnych jest za mało i są zbyt mało zróżnicowane żeby powiedzieć coś więcej.
musze przyznać, że i tak dostałeś bardzo duże zbliżenie... Do twoich celów najlepszym sposobem i najpewniejszym będzie użycie zaokrąglenia. Pewnie bascom posiada tą funkcję.
Z miganiem lcd nie ma żadnych sztuczek. Chodzi o to aby nie czyścić w kółko całego wyświetlacza i znowu coś wyświetlać, bo to powoduje miganie tego co wyświetlasz. Robi się po prostu tak: locate 1,1 lcd "to wyswietlam" Locate powoduje że zawsze wyświetlasz od pozycji 1,1. Można to nazwać nadpisywaniem. Przy różnej długości zmiennej do wyświetlania,...
Mnożąc zmienną typu WORD przez stałą CONST wychodzi niedokładny wynik. Np: WORD = 200 x CONST = 0.0025 = SINGLE = 0.499999933. Dokładność obliczeń zmiennoprzecinkowych jest kwestią długości (i formy) reprezentacji liczb zmiennoprzecinkowych. Z oczywistych względów w ośmiobitowych procesorach z małą pamięcią reprezentacja FP nie może być zbyt długa...
Witam Mam liczbę integer 47 którą zamieniam na single i dzielę przez 10 , wynik to 4.69999806 . I teraz w jaki sposób uzyskać dwie liczby integer całkowitą czyli 4 i ułamkową po zaokrągleniu czyli 7 ?
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 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...
Czyli zmienić typ zmiennej i usunąć fusing, tak? Dodano po 31 Niestety nic to nie dało zmieniłem zmienną T1 z single na integer i long i wtedy termometr pokazuje tylko zero i nie mierzy temperatury, może ktoś ma jakiś pomysł na zaokrąglenie wyniku do liczby całkowitej.
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...
I jeszcze jedno ten program natychmiast poprawisz używając symulatora w którym co pętlę wyświetlisz wartości wszystkich zmiennych. A jak myślisz dlaczego na początku tych kodów jest $sim ? co z tego , że później potrzebujesz zmienną Z Nie później, a w trakcje wykonywania pętli. W tej pętli ta zmienna bardzo szybko się przepełni bo jest zbyt małej pojemności...
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)...
Moje podsumowanie: użyłbym LM385Z jako 2V źródła napięcia odniesienia. Miałbym wtedy 2V zakres pomiarowy, w którym mieściłby się 0 ÷ 1,35V napięcie na akumulatorku i 0 ÷ 1,76V czyli wzmocnione przez 8 napięcie na R1 pomiarowym. Tutaj mały schemat: http://obrazki.elektroda.net/60_12339304... Teraz jakie będą błędy pomiaru/przetwarzania: - tolerancja...
ok, no tak przecinek... wstyd się przyznawać :) dzięki bardzo za szybka odpowiedz. Doradzam , by dla tak prostych obliczeń jak również niewielkiej pamięci programu , zpomnieć o istnieniu SINGLE i FUSING - no chyba że potrzebne Ci są super dokładne dane(zaokrąglenia).Szkoda flsh'a ;) Można np. $regfile = "m8def.dat" $crystal = 8000000 Config...
Ł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...
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?...
Ma ktoś jakiś pomysł na odchudzenie programu do 2kb? Obecneie zajmuje 2188 bajtów. 140 bajtów do odchudzenia. Dim Napiecie As Single , Pga As Integer Dim Addressw As Byte , Addressr As Byte , Pomiarh As Byte , Pomiarl As Byte Dim Napiecies As String * 10 Addressw = &B1001101 'adresy do zapisu Addressr = &B1001111 Pga = 1 'Odczytu Cls Do Gosub Odczyt...
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...
czy będziesz miał temperatury ujemne? i co oznacza zmienna "Liczba" Liczba jest typu byte (0-255) jak ma być <0 ? odczyt temperatury: w kodzie ująłem zmienną znak dim znak as bit znak = 0 wartość dodatnia znak = 1 wartość ujemna znak = 0 'zakładam że wartość jest dodatnia 1wreset If Err = 0 Then 1wwrite &HCC 1wwrite &HBE Ds_1 = 1wread()...
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ę...
http://obrazki.elektroda.pl/6301628700_1... Cześć. Długo się zastanawiałem i doszedłem do wniosku że jednak je przedstawię-Powód był chyba taki że dawno na diy-akustyka nie pojawiło się nic nowego a i wiem jakie odezwą się głosy niektórych elektrodowiczów to to mnie trochę powstrzymywało ale się zdecydowałem więc… Chcę wam pokazać...
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...
Witam ponownie No ja walczę z całym kodem, żeby go trochę zoptymalizować, ale nie bardzo się daje. zajęte 77% a nie mam konwersji danych z sht11 jeszcze zrobionych, coś mi się wydaję, że będzie trzeba się przesiąść na M32. Przykładem może być np. zapis temperatury z dokładnością do jednego miejsca po przecinku. Przecież wystarczy do tego zwykły, dwubajtowy...
Witam Tworze sobie prosty termometr na wyświetlaczu 7 segmentowym. Napisałem kod w bascomie i wrzuciłem na płytę testowa z atmega32 i śmiga jak trzeba. Kolejnym krokiem było wrzucenie tego na na atmege8 (zmieniłem m32def.dat na m8def.dat i taktowanie na 1MHz ) atmega świeża , fusebity nie zmieniane. No i jak zwykle u mnie to bywa, rzecz nie działa....
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...
Nie skupiałem się na obliczeniach. Statystykę jakoś zaliczyłem, ale nie uważam jej za dziedzinę matematyki... Matematykę lubię, nawet różniczki 2 rzędu i szeregi, ale jak widzę prawdopodobieństwo to jestem chory... nie rozumiem tego zupełnie. Wykonałem makro do pobierania wartości na zasadzie wprowadzenia ich "gdzieś" i rozpoczęcia obliczeń. Chciałem...
Witam proszę o porównanie parametrów/wymiarów anten Yagi-Uda do odbioru TV na kanał 58 częstotliwość 767,25 MHz. Anteny wyliczyłem programie Yagi Calculator (dobry programik i polecany) który wyliczył mi takie wartości na to pasmo: Yagi design frequency =767,25 MHz Wavelength =391 mm Parasitic elements fastened to a non-metallic or separated from boom...
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...
Witam, po zapoznaniu się z ofertami na zakup serwera okazało się, że minimalna kwota potrzebna do zakupu sensownego zestawu to w zaokrągleniu 20 000 brutto. W związku z powyższym chciałbym zasięgnąć u Was porady dotyczącej czy jest sens rozbudowanie swojego komputera i wstawienie go w obudowie Tower w kolokację ? Zestaw jaki posiadam: 1. obudowa Chieftec...
bascom zaokrąglanie single zaokrąglanie liczby zaokrąglanie liczb
falowniki fronius hasło wygasa pomiar niski napiąć oscyloskop
wentylator android radio wentylator android radio
Opel Crossland X - specyfikacje, silniki, wyposażenie Schemat instalacji elektrycznej airbag Opel Crossland X