Pomnóż przez 2, zaokrąglij do wartości całkowitych, podziel przez 2, i wyświetl z rozdzielczością do 1 miejsca po przecinku.
Poprawiłem - nie sprawdzałem. Dim Odczyt(2) As Byte dim T As Integer dim T1 As Single dim T2 As Single Dim Temp As Long Do Ds18b20 Print Temp Wait 1 Loop End Sub Ds18b20 1wreset 1wwrite &HCC 1wwrite &H44 Waitms 750 1wreset 1wwrite &HCC 1wwrite &HBE Odczyt(1) = 1wread(2) T = Odczyt(2) Shift T , Left , 8 T = T + Odczyt(1)...
Text = "99.9999" Text = Format(text , " 0.00") LCD Text Pytanie poza konkursem: dlaczego wszyscy notorycznie stosują Fusing(xxx, "#.&&")? Nie lepiej Fusing(xxx, "#.##")?
Long = GetAdc(0) Single = Long * 0.01955 String = Fusing(Single, "##.##") LCD String; "V"
Chyba jednak nie ta instrukcja. Dzięki formatowi mogę uzyskać to że nie będzie przesuwało napisu Cool1 = Cool * 0.1953125 Cool2 = Fusing(cool1 , "#.#") Cool2 = Format(cool2 , " ") Tak masz rację, na symulatorze nie działa. Przy aliasach chyba jest błąd, dwa razy przypisy do tych samych pinów. [syntax=basic4gl]Ac Alias Pinb.0 Ss Alias Pind.7 Sg Alias...
Niestety, inaczej nie sformatujesz single. Zapis zmiennej z przecinkiem jest dość skomplikowany (mantysa, wykładnik) i znalezienie przecinka nie jest prostą sprawą. Jakie działania potrzebujesz wykonać na single? Może nie trzeba jej używać. Wykonałem próbę w symulatorze najpierw single na string za pomocą fusing(), potem z powrotem na single za pomocą...
Sprawdź ten kod. Powinno być wszystko OK. Początkowo chciałem tego "PLL Lock" zrobić na przerwaniu ale widzę, że podłączyłeś tam LCD. $regfile = "M8def.dat" $crystal = 1000000 Dim X As Byte Dim Wpis As Word Dim Wpis2 As String * 5 Dim Przed As String * 3 Dim Po As String * 3 Dim Dlugosc As Byte Config Portd.13 = 1 Config Portd.12 = 1 Config...
Lcd Fusing(zmienna , "#.&&&") masz trzy miejsca po przecinku, bez zaokraglania. -- pzdr, DAMDAM
Witam. Po wgraniu kodu do obsługi czujnika DS18S20 (Bascom), temperatura wyświetla się kilka jako jedności i kilka miejsc po przecinku (dziele przez 16). Jak zmniejszyć wyświetlaną temp do 1 miejsca po przecinku?
Porty L i G należą do rozszerzonych. Przeczytaj rozdział w Helpie Bascoma - Config 1Wire. Skonfiguruj dowolny pin jako 1Wire i dopisz po przecinku - Extended. Powinno się coś zmienić ;)
Witam Temperatura i wilgotność, wyświetla tylko wartość całkowitą. A jak z czytać przynajmniej jedno miejsce po przecinku ?
Witam. Wybrałeś dość trudny temat na początek nauki 1./ przed wysłaniem danej na wyświetlacz skasuj go instrukcją CLS. 2./ pomiary z przetwornika różnią się, należałoby wykonać np. 10 pomiarów co 25ms i wyciągnąć średnią. 3./ wynik aby był czytelny należy zaokrąglić do np. dwóch miejsc po przecinku można zastosować funkcję Fusing
bo nie jest on dostosowany do liczb ułamkowych można go łatwo zmodyfikować napisze ci go tylko podaj jaka dokładność jest tzn. ile liczb po przecinku
Nie wnikajac w bascoma i jego funkcje - pomnoz wynik przez 10. wtedy ta liczbe (zaokraglana) podzielisz przez 10 i bedziesz mal jeden znak po przecinku.
Tak wyświetla wartośc temperatury I2 z dokładnościa do jednego miejsca po przecinku.
Wynik po przecinku skacze, bo DS18B20 mierzy temperaturę z rozdzielczością do 1/16 st. C. Tak więc nie ma najmniejszego sensu wyświetlać temperaturę z dokładnością do 2 miejsc po przecinku.
więc ja tez mam zapytanko jak w bascomie zrobić coś takiego aby zapisac dane z tabeli załozmy mam cos takiego U Dodano po 1 tych danych oczywiscie ma być dużo wiecej i miejsc po przecinku też np do 4 miejsc po przecinku ...jeśli miałoby to jakies znaczenie przy wprowadzaniu danych taka informacja:)
wiem że troche to sknociłem, ale w symukacji pokazuje to troche inaczej. Wielkie dzięki za pomoc. Dodano po 18 I jeszcze jedno jak pozbyć się przecinka.
No po przecinku... E0 to kod oznaczający grupę przycisków lub jakąś funkcję (w tej chwili nie mam czasu sprawdzić), czyli Ciebie interesuje kolejna wartość po przecinku.
Poczytaj helpa o funkcjach Fusing i Format.
Witam Chciałbym wydzielić tylko to co znajduje się po przecinku odczytanej temperatury na przykład w Tempp. Czyli ładuje wartość odczytaną z ds1820 do Tempp potem: Shift Tempp , left , 8 if Tempp >= 10000000 then Tempp = to co jest po przecinku tak?
Poprawny i dokładny stosunek podziału to 921600, czyli np. 14400 * 64 albo 3600 * 256 albo 900 * 1024. Jak widzisz nie ma żadnego problemu z zaprogramowaniem timera na taką częstotliwość.
Dzielenie przez 16 to to samo co przesuwanie bajtu w prawo o 4. Czyli jest to wywalenie jakby 4 najmłodszych bitów, czyli odczyt temp będzie z dokładnością do 0,5 stopnia. Zajrzyj do notki. 5 najstarszych bitów to znak czy dodatnia czy ujemna, a 4 najmłodsze oznaczają miejsca po przecinku. Rozumiem ze zmiana z systemu binarnego na dziesiętny jest znana?...
Już chyba rozumiem ,np dla tysięcy przy liczbie 1896 mam ją podzielić np przez 1000 co da 1 (co za przecinkiem bascom chyba ignoruje dla zmiennej byte) ,teraz dla ósemki mam liczbę podzielić przez 100 ,następnie odjąć to co mi zostało z pierwszego działania pomnożonego przez 10. Dzięki za pomoc ,pomyśleć że tyle się męczyłem przy tym typowo matematycznym...
Masz dużo racji. Prawdopodobnie to co napisałeś zadziała. Następnym krokiem ( pomnożyłeś przesuwając w lewo 4 razy przez 16) będzie podzielenie przez 16 i rzutowanie na zmienną single. Otrzymasz temperaturę dodatnią lub ujemną z dokładnością bodajże 4 miejsc po przecinku.
Tzn. co widać na tym zdjęciu, gdzie i jaki jest problem? Ja widzę 245.6 stopnia i żadnej drugiej cyfry po przecinku nie dostrzegam.
Te wszystkie sztuczki pozwolą ci zaoszczędzić parę bajtów , ale największe oszczędności przyniesie ci rezygnacja z liczb zmienno przecinkowych. Tu oszczędności będą na poziomie kilkudziesięciu procent , więc jest o co walczyć. Tymabardziej że napewno to się da zrobić i nie jest to takie trudne. Przecież zamiast operować na liczbie np 13,45 możesz sztucznie...
zmieniłem config adc z takiego: Config Adc = Free , Prescaler = Auto , Reference = Avcc Start Adc na taki: Config Adc = Single, Prescaler = Auto , Reference = Avcc Start Adc Ale nie rozumie jakie ma znaczenie czy działa ciągle czy na żądanie Mam jeszcze jedno pytanie jak zmienić wynik by nie pokazywało po przecinku??
może liczba Pi ? Ma hak po przecinku :)
to mój pierwszy projekt z wykorzystaniem ds18b20 i bardzo możliwe że kiepsko napisany. I rzeczywiście minus pojawia się po przecinku, spróbuję to poprawić
Co to znaczy inne wyświetlacze ?. Wróżką nie jestem, ale bez schematu mogę się domyśleć, ze sterujesz kluczami załączającymi poszczególne wyświetlacze poprzez port D, a dane wysyłasz na port B. W takim wypadku zamiast zmieniać wartości na porcie B pozmieniaj dane w tablicy Tabela. No i nie zapomnij o przecinku dziesiętnym ;)
:) 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...
Może problem powoduje przecinek i spacja na końcu linii?
398216 Usunięty <---- dzięki z plusa ! Zadowala mnie wynik z dokładnością +/- 0.02 % , a w marzeniach mam +/- 0.01%..to chyba nie jest źle, że dążę do dokładności...dobrze mi się patrzy jak np: ładuję li-ion i napięcie na nim jest maksymalnie 4.201 V, a nie np: 4.2V nie wiedząc co jest na drugim miejscu po przecinku...
Tak z ciekawości tylko zapytam jakich ty czujników używasz i czy rzeczywiście potrzebna ci jest aż taka pracyzja w pomiarze temperatury do 9 miejsc po przecinku ?!?!? temp1: -1699.399902343
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...
Jak w bascomie ze miennej typu single wydobyc liczbe po przecinku i wpisac ja do zmiennej byte ?? Przyklad jest liczba single np 12,34 i teraz chce wpisac to co po przecinku (czyli 34) do zmiennej byte Z gory dzieki za pomoc
Dajesz przecinek zamiast kropki.
Co do twojego pierwszego problemu, to najprościej jest czytać ciąg nie z określonego miejsca, a za określonym znakiem. Wszystkie dane masz przedzielone przecinkami. Zakładam że tych przecinków jest stała ilość. Po prostu czytaj łańcuch po 7 przecinku do następnego przecinka i już i wtedy długość wcześniejszych danych nie ma znaczenia. Co do eepromu...
Histereza jest zadeklarowana jako Single. Zmień to na Integer bo szkoda miejsca. Po tym ustaw Histereza = 20 i powinno jakoś działać. Temperatura 60st.C to u Ciebie I1 = 600 a przecinek jest dorysowywany funkcją Format. Dlatego różnica stopnia to różnica równa 10 a nie jeden.
Dzieki, za odpowiedz juz pokazuje poprawnie. A jak zrobic zeby pokazywal tylko dwie cyfry po przecinku?
Witam, podłączyłem czujnik temp odpornościowy do atmegi i komendą getrc odczytuje wartość w danej temperaturze. To co udało mi się sprawdzić: temp - wartość 20°C - 1000 30°C - 900 40°C - 800 50°C - 700 60°C - 600 70°C - 500 80°C - 400 itd. Wartości mamy 3 cyfrowe więc np 875 będzie oznaczała temp 43,5°C. Teraz pytanie jak najprościej to zdekodować w...
Wszystko było by fajnie z tym innym licznikiem ale niestety zostały mi tylko 8 bitowe a to za mało, musiał bym część liczenia przenieść do pętli głównej a niestety to też nie zda egzaminu bo jak np włączę menu, a tam jest np. obsługa klawiatury i chośby dyskryminacja drgania styków która wstrzymuje czas, a w tym czasie stracę impulsy i pomiar będzie...
16 (liczba nie cyfra) ponieważ temperatura odczytywana jest z dokładnością do 4 cyfr po przecinku, dlatego odczytaną wartość trzeba podzielić przez 16 (przesunąć o 4) Bd(1) = 1wread(9) tu do Bd jest wpisanych 9 bajtów ( liczba bajtów w nawiasie) odczytanych przez 1wread(9) z czego 2 pierwsze to temperatura
Tak, przepraszam jeśli żart się nie udał. Żeby pozbyć się przecinka wystarczy przerzucić wartość z Single na jakąś taka która przecinka nie obsługuje. Przecinek zostanie automatycznie odcięty, a Bascom od dawna nie potrzebuje formatowania liczb całkowitych do String jeśli maja trafić na wyświetlacz. Robi to sam. Żeby odciąć przecinek wystarczy więc:...
Kolego w arkuszu kalkulacyjnym masz funkcję zamień. Zamieniasz wszystkie kropki na przecinki i i już piękne wykresy można robić.
Składaj ciągi z odbieranych znaków. Jeśli trafi się przecinek to koniec danej partii. Potem tylko analiza: HELLO? END? Nie, więc liczba. Oczywiście przecinek trzeba pominąć.
Łopatologicznie to by było tak... Masz zmienną o nazwie np. LICZBA=123 i chcesz z niej wyodrębnić setki, dziesiątki i jedności... Musisz stworzyć nowe zmienne typu całkowitego, np. SETKI=LICZBA/100 --> (123/100 = 1,23 zmienna typu całkowitego utnie te 23 po przecinku i zostanie 1 --> SETKI=1) DZIESIĄTKI=(LICZBA/10)-(SETKI*10) --> (123/10=12 --> 12-1*10=2...
Piotrek_P dziekuje bardzo teraz śmiga wszystko , tylko jeszcze jak zlikwidować całkiem liczby po przecinku ?
Witam Jest to miernik pojemności Jak zwiększyc dokładnośc tak aby na zakresie nF wynik był wyświetlany trzy miejsca po przecinku. Np: 2,234nF Dzieki
Eksperymentuje, więc na razie nie ma komentarzy. Temperatury dodatnie i wilgotność poprawnie wyświetla. Poniżej 0*C to już głupoty typu: 3480*C Sumę kontrolną usunąłem, bo nie wyświetliło ani razu ERROR. Mybyte = T + H 'dodajemy wartości temperatury i wilgotności If Mybyte <> Crc Then 'jeśli suma kontrolna się nie zgadza Lcd "error"...
potrzebuje tylko czesc przed przecinkiem wiec w sumie mozna i druga metoda
Dana jest zmienna 'sx' s zawsze jest takie samo - jest to znak Chr(10). Potrzebuję "wyłuskać" x. [syntax=basic4gl]zmienna = Chr(10);x[/syntax] Coś takiego nie działa, niestety. Ani przecinki, ani kropki ani średniki. Pozdrawiam
Wszystko przerwie ;) nawet wait'a - od tego są przerwania jak sama nazwa wskazuje. Tylko podejrzewam, że może w trochę nieprzemyślany sposób dałeś parametr Nosave Jeśli chodzi o te nosave to dałem bo dałem, narazie to sam szkielet programu , nawet odpalany jeszcze nie był. Co do przecinków to juz jej wywaliłem ;)
Fajnie by było, gdyby funkcja zwracała wartość logiczną - czy single ma wartość ułamkową czy też jej nie ma. Chociaż trzeba by się przyjrzeć jak zorganizowana jest zmienna single, czy czasem nie da się wyjąć tej wartości co po przecinku np. za pomocą LOW(zmienna) na przykład.
Do tablicy tak się nie wpisuje wartości. Wpisujesz np tak: Tabaa(1)=100 Tabaa(2)=200 Kompilator Ci krzyczał że nazwy są zduplikowane bo nazwa twojej tablicy i nazwa etykiety byłe takie same. Trzeba czytać te błędy. Następny błąd jest w printbin nie da się nic zapisać po przecinku. Co ta siódemka miała znaczyć?
A z jaką dokładnoścą możemy się spodziewać wyniku operacji (ile miejsc po przecinku)??? Patrz help "Podstawy języka BASCOM BASIC" Ile pamięci "pożre" nam funkcja trygonometryczna (sin)??? Sporo. Coś w okolicach 600 bajtów nawet.
W pierwotnej wersji miałem "i" zamiast "przecinek", ale zasugerowałem się pewnym rozwiązaniem komercyjnym termometru, gdzie mówił "przecinek". Chętnie zobaczyłbym program (najlepiej w Bascom), w którym gada się przez pwm. Do tej pory pwm używałem do zmiany jasności świecenia led i jako przetwornik c/a.
Kod wydaje się sprawować prawidłowo. Przecinek jest względny. Operacje na zmiennych z przecinkiem są męczące dla mikrokontrolera. Jesli nie jest to konieczne to należy ich unikać. Zauważ że sam DS nie wysyła Single tylko Integer. Każda zmienna z jednym miejscem po przecinku pomnożona przez dziesięć da liczbę całkowitą. Tutaj przecinek jest "wirtualny"...
No niestety BASCOM tak ma. Zdaje mi się że takie obliczenia kiedyś działały (operacje na integer a zwracanie wyniku do Byte). Widocznie od którejś nowej wersji już nie działają. No to będziesz musiał zrobić tak: [syntax=basic4gl]Dim Stopnie As Integer 'Stopnie musi być typu Integer Do Ds_i1 = 305 '************ Obliczenia temperatury Stopnie = Ds_i1...
Po pierwsze nie wrzucaj zdjęć bo nie idzie odróżnić kropki od przecinaka .Z tego co widzę to masz błąd przy 0.0049 , u ciebie jest przecinek.
Enable Timer0 , On Timer0 Przerwanie Zamiast przecinka ma być chyba dwukropek. Albo przenieść do następnej linii.
To bardzo dobrze. Freqq, używaj znaki przystankowe "przecinek" trudno zrozumieć co piszesz.
To sobie zapisuj w postaci całkowitej i pamiętaj ile miejsc po przecinku dla wszyskich liczb jest przesunięcie, a resztę zaokrąglij.
No dobrze, sprawdziłem. Płytka EVBavr05. Bascom 1.11.9.5 Port A, Twój kod. Chodzi. W pierwszej linijce napis test. w drugiej 12345678. Nie trzeba ustawiać config output. Bascom sam to robi. Dodano po 6 Może to nie jest 16*2 ? Może ma trochę inaczej wyprowadzone piny? Ponieważ Twój kod skopiowałem to raczej nie ma błędów w przecinkach itp.
Ale za to otrzyma wynik bez przecinka :)
To jest dosyć niewygodny sposób na przesyłanie zmiennych w postaci znaków ASCII i sam się nieco ograniczasz, bo pierwsza zmienna musi mieć zawsze dwa znaki, druga trzy itp... Jeśli chcesz troszkę bardziej uniwersalnie podejść do tematu to przesyłaj wartości zmiennych w ten sposób: PRINT XX,YYY,Z,KKKK czyli każda wartość oddzielona np przecinkiem. Później...
Witam ! $crystal = 9,600000, przecinek w tej linii to przypadek ?
Logarytm z zakresu 1-100 , 3 miejsca po przecinku: Log(100/x) gdzie x 1-100 Jak szybko to obojętne mi ;)
Z RESZTĄ Z DZILENIA JEST TAK JAK W ZWYKŁYM KALKULATORZE CZYLI PO PRZECINKU :?: popraw duże litery, zdejmij palec z caps locka!! regulamin!! 3molo
Chyba nie czytałeś ostatnio tego rozdziału z Language Fundamentals. W ten sposób sam sobie robisz kuku... Pomijając to myślę, że jeśli te Twoje zmiennoprzecinkowe masz tylko do dwóch miejsc po przecinku, to dlaczego, po prostu, nie pomnożysz tego x100 a na końcu wyniku nie podzielisz /100? Zapewne wszystko się wykona dużo szybciej niż na tych zmiennoprzecinkowych....
WItajcie Czy jest szansa, by w 2 kB 90s2313 zmieścić obsługę DS18B20 wraz z obliczeniami by uzyskać na LCD temperaturę z wartościami po przecinku. $regfile = "2313def.dat" $crystal = 16000000 Config 1wire = Portb.0 Dim T As Integer , Stt As String * 6 Cls Do 1wreset 1wwrite &HCC 1wwrite &H44 Waitms 800 1wreset 1wwrite &HCC 1wwrite...
W pierwszej kolejności to użyj SYNTAX CHECK i usuń błędy składni (przecinek, to nie kropka - lupa do ręki i dokładnie sprawdź). Oprócz tego deklaracja Sub Znaki i wykorzystanie w procedurach - zgroza (trzeba rozróżnić Znak i Znaki - u Ciebie to wszystko jedno. Na końcu program domaga się End If. Po tych poprawkach ładnie się kompiluje - wersja nie demo.
Lininijkę 11 połącz z linijką 10, czyli po przecinku(linijaka 10) dopisz resztę(linijka 11), a nie w następnej linii. A tak wogulę: BASCOM jest niezbadany!!! Daj znać czy pomogło. Pozdr -=Marcin=-
Chciałbym żeby był pomiar do tych -10 ale chyba go sobie narazie odpuszcze. Ale dosyć dziwna jest ta sytuacja, tak jakby T nie było takie jak ma być :] , jedynie przecinek wychodzi ok :)
1wreset If Err = 0 Then 1wwrite &HCC 1wwrite &HBE Ds_1 = 1wread() Ds_2 = 1wread() Status_temp = 1 If Ds_2 >= 248 Then 'wartość ujemna Ds_1 = 255 - Ds_1 Ds_2 = 255 - Ds_2 Status_temp = 0 End If T1 = Ds_1 / 16 T2 = Ds_2 * 16 T1 = T1 + T2 ten fragment odczytuje czujnik i pod zmienną T1 umieszcza wartość tempreatury (z pełną rozdzielczością...
ok, no tak przecinek... wstyd się przyznawać :) dzięki bardzo za szybka odpowiedz.
Przecinki zauważyłem wcześniej. :D Tak jak już wspomniełam, slave nie odbiera danych (wyświetla "0").
Temperatura ujemna wyświetlana jest tak, że pierwszy wyświetlacz jest wygaszony na drugim zapala się minus trzeci i czwarty wiadomo, piąty znak przecinka a szósty temperatura po przecinku. Najprędzej jutro wieczorem będę mógł wstawić filmik
Kolega popełnił więcej byków przy przepisywaniu. Brak jeszcze kilku THEN i przecinków. Cały program wraz z plikami wynikowymi masz w załączniku.
Nie dokonuj pomiaru ilości impulsów na 1 sek ! To błędne podejście . Niby dlaczego ,mógłbyś rozwinąć tę myśl? Przecież co sekundę mam uaktualnianą zmienną z prędkością, po co szybciej jeżeli w czasie jazdy nie patrzymy cały czas na wyświetlacz/wskazówkę. Tylko co jakiś czas ale także krótko. Chodzi mi o to aby wynik nie skakał po przecinku jak "oszalały...
Wybieg przesuwający przecinek. Wynikiem będzie, na przykład, dla temperatury 22,4 st C 224 i przecinek należy sobie w stringu dorysować :D
mi sie pojawia -20.9...-20.0...-21.0 to w ogóle jest jakos bez sensu znajomy mi mówil że on tylko neguje część po przecinku i ni erobi zadnej inkrementacji... i byż tu mądrym!
No sposób parsowania danych i porównywania zależy wyłącznie od ciebie. Nie ma znaczenia jak to zrealizujesz jeżeli cel będzie ten sam, a mianowicie prawidłowe działanie. Można też parsowanie realizować np. za pomocą rozdzielania danych w stringu np. przecinkami jak to ma się np. w plikach csv. Wtedy dane mogą mieć różną długość byle by tylko kolejność...
Niezupełnie - chodzi o to, że do programu wartość jest dostarczana właśnie jako string. Muszę mieć natomiast zmienna, aby móc ją porównywać z zadaną wartością (mniejsza, większa itp). Ale nie może być tak, że zamiast 84.2 (która to wartość jest prawdziwa, i taka jest w stringu), to do porównania używam 84.199999 czy coś podobnego. Mógłbym usuwać przecinek...
Może by zrobić tak $GPRMC,230340,A,4959.79044,N,01956.37777... 0.1,1 94.9,250511,,*1A Wyciągnąć pięć pozycji ze stringu licząc od 44 miejsca Speed1 = Mid(Rs , 44 , 5 ) Obliczyć w którym miejscu występuję przecinek Dim Znaczek as string*1 Znaczek = "," Speed2 = Insrtr(Speed1 , Znaczek ) Wycinać ze stringu odpowiednią ilość pól,...
W BASCOMIE 8051. Wytlumacz o co chodzi z tym przeliczeniem. chce miec kazda cyfre liczby (takze te po przecinku) w osobnej zmiennej
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ć...
No oczywiscie ze nie mozna zapisac singla w byte, ale mozna go zrzutowac na byte tracac wartosc po przecinku. Tylko jak sie to robi w tym wspanialym programie ;)? Albo podzielic na 4 bajty i je zapisac i potem zlozyc w single, tylko jak to zrobic ? ;)
Macie racje - teraz juz dziala, ale dalej mam problemy z przecinkiem (wartosc jest 10x wieksza) Edit: z tym tez sobie poradzilem - zostala jeszcze kwestia ujemnych temperatur :)
Dobry będzie taki program? Można coś jeszcze poprawić? Return Podaj jaka dokladnosc pomiaru jest wymagana i do czego to ma sluzyc. Najprostszy, najtanszy obrotomierz/ tachometr, najlatwiej jest wykonac uzywajac tylko ATtiny 2213, jeden wyswietlacz LCD (8 lub 16 cyfr, jedna lub dwie linie dla dodatkowych informacji, opcji) Impulsy "odczytasz" z elementu...
Witam. Mam problem z przybliżeniem zmiennej Single do dwóch miejsc po przecinku. Nie mogę zamienić jej na string gdyż mam mało wolnej pamięci. Czy jest jakaś inna możliwość przybliżenia tej zmiennej? Pozdrawiam
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...
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...
Za końcem programu: Nazwatablicy: data 'wartości kolejnych kolumn oddzielone przecinkami Odczytujesz poleceniem lookup. Np.: For X = 0 To 4 cyfra z 5 kolumn Portb = Lookup(x , Cyfra) Waitms Czaskol Next Portb = 0 'kolumna odstępu Waitms Czaskol Zauważ, że tu zmienna "cyfra" decyduje z ktorej tablicy odczytamy dane. ;)
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?
Myśłem, że jest do tego jakaś biblioteka, ale w takim razie przejdźmy do rzeczy. Funkcja INSTR(); zwraca pozycje znaku czyli ja tu wstawie ",". Poda mi pozycje pierwszego przecinka (tak się domyślam), a co z resztą? Wycinać przeszukany już tekst po kawałku ? Jak to zrobić najoptymalniej?
Witam. Jak masz liczbe sekund np. 213456 to najpierw dzielisz ją na 60 i otrzymujesz minuty, potem to co po przecinku razy 60 i masz minuty i sekundy. Minyty dzielisz przez 60 i masz godziny, to co po przecinku razy 60 i masz reszte minut. Godziny dzielisz przez 24 i masz dni itd. np. 213456 [sek] 213456/60=3557.6 [min] 0.6*60=36[sek] czyli mamy już...
Dzień dobry. Kompilator przecież pisze o co chodzi :D Zamiast "jeśli przycisk = 0" napisałeś "jeśli przycisk = Duża litera O" Brakuje też przecinka przed Right. http://obrazki.elektroda.pl/7581088600_1... Poniżej film z uruchomionej symulacji :D https://filmy.elektroda.pl/100_144731640... Miłego dnia. P.S. Do Gunslinger - Myślę że...
Witam Mam problem ze skompilowaniem w Bascom 8051 procedur do DS18B20 B1 = B1 / 16 ,obliczenia wyłącznie... B2 = B2 * 16 , dla temperatur dodatnich. Być może dla Ciebie , przecinek i średnik to to samo - dla Bascome nie ;) Piotrek
single bascom przecinku wyświetlanie przecinku ds18b20 przecinku
komunikacja ethernet moduł chinski generator dioda referencyjna
pralka samsung addwash bosch zmywarka
Problem z podłączeniem przewodu hydraulicznego z kombajnu Anna do ciągnika Dwa znaki zapytania w SMS - znaczenie i przyczyny