rezultat = HIGHW( zmienna )
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
...Wystarczą wskazówki. zmienna=Makedec(Portd) Piotrek
Podaruj sobie funkcje sprintf itp, z natury zzeraja duzo pamieci. Pomysl nad jakas wlasna konwersja :)
A sprawdziłeś jaką wartość przyjmuje po odczycie (i konwersji) zmienna "Month"?
Witam wszystkich Mam mały problem. Mmam dwie zmienne FLOAT zmienna1; BYTE zmienna2; i chce zrobić konwersje zmienna=(BYTE)zmienna1; to które bity mi wezmie ze zmiennej1 i wstawi do zmiennej2. np. jezeli mam FLOAT zmienna1=3421.2323 lub zmienna1= 65653421.2323; to co odpowiednio zostanie?
Mała podpowiedź: %u to jaka konwersja? Albert
Przy zamianie ośmiocyfrowych liczb long do postaci float pojawiają mi się zaokrąglenia na ostatniej pozycji. Czasem o jedną, czasem o kilka jednostek. Na przykład: Zmienna long przed konwersja: 88888889 Zmienna float po konwersji: 88888888.00 Nie dokopałem się do powodów takiego stanu rzeczy. Jakieś pomysły jak z tym walczyć?
Po prostu zadbaj warunkiem, żeby zmienna cap nie byłą nawet minimalnie ujemna.
Bo zmienna BOOL jest 8-bitowa. W pierwszej kolejności konwersja na WORD a następnie przesunięcie.
nie pamiętam jak to w C szło - itoa ? po co robić (pseudo) if (zmienna==0) wynik+="0"; if (zmienna==1) wynik+="1"; ... skoro można wynik+=itoa(zmienna)
Witam, Kolega za dużo kombinuje...bierzemy bajt do konwersji i rozdzielamy na dwie 4 bitowe wartości (używamy do tego celu maski zmienna = zmienna&maska), następnie konwertujesz dwa półbajty do ASCII i po problemie :) Sama konwersja też jest dość prosta, sprawdzasz czy pół bajt mniejszy od 10 jeśli tak to robisz logiczny or z 0x30h jeśli większy lub...
Przeznaczenie: Formatuje tekst zawierający liczbę według podanego wzorca. Składnia: rezultat = FORMAT( zmienna , "maska" ) gdzie: rezultatzmienna tekstowa, w której umieszczony zostanie sformatowany tekst, zmiennazmienna tekstowa zawierająca formatowaną liczbę , maskawzorzec formatowania. Przeznaczenie: Zwraca tekstową reprezentacje podanej liczby....
juz chyba rozumiem co jest grane po prostu drukuje ci 48 w dziesietnej a odbiera i pokazuje tobie w char bo dziesietnie 48 = char "0" w helpie masz jak zamienic char na dec. Dodano po 8 zmienna = STR( x ) gdzie: zmiennazmienna typu String do której wpisany będzie wynik działania funkcji, xdowolna zmienna lub stała, poddana konwersji. ________________________________________...
Nie wiem dokładnie czy bascom dokonuje konwersji typu string na byte w tym może być problem. Spróbuj zmienna nm zadeklarować jako 'byte' może pomoże.
Błąd w logice. Twój kod czytam tak -> Dopóki zmienna nie ma 5 to cały czas resetujemy pomiar i startujemy nowy (już Select Case byłoby lepsze). Potem próbujemy to czytać jak zmienna ma powyżej 100. No daj spokój. Są tu tego tony jak to obsługiwać. Mój/nie mój sposób to dwa suby. Jeden Startuje konwersję a drugi Czyta. Sprawa polega na tym by odwrócić...
Problem rozwiązany. Tak jak podejrzewałem problem był w konwersji typów, zmienna rzeczywista jest inaczej reprezentowana w przestrzeni pamięci sterownika a inaczej na systemach Intela. Rozwiązaniem było zastosowanie funkcji F_SwapReal w sterowniku, konwertującej te zmienne.
Dzięki zmienna string dała rade
Albo elegancko tak: [syntax=C] typdef union uint16_bytes { uint16_t Dana_16_bitow; struct { uint8_t Bajt_mlodszy; uint8_t Bajt_starszy; }Dana_po_8_bitow; } uint16_unia_t; [/syntax] A używasz tego tak: [syntax=C] uint16_unia_t zmienna; // Dostep do 16-tu bitow zmienna.Dana_16_bitow = 0x1234; // Dostep do pol uart_buf = zmienna.Dana_po_8_bitow.Bajt_mlodszy;...
Możesz zrobić zmienną pomocniczą typu np.: UDINT i zapisać w niej bajty w żądanej kolejności przez dostęp symboliczny - zmienna.%B0, zmienna.%B1, .%B2, .%B3. https://obrazki.elektroda.pl/2008114200_...
Dzięki. Działa, nawet nie pomyślałem o konwersji.
zmienna = BIN( liczba ) gdzie: zmiennazmienna tekstowa, w której znajdzie się liczba zapisana w formacie binarnym, liczbaliczba poddana konwersji, może być stałą lub zmienną typu Integer, Word, Long czy Byte.
Witam do którego dokupiłem wzmacniacz na aliexpress, Czy jest tam napisane, na jakim układzie scalony zrobiony jest ten wzmacniacz? Wtedy będzie wiadomo jakie maksymalne napięcie może wytrzymać. PozdrawiaM.
Cytat z polskiego Helpu: Funkcja STR() Przeznaczenie: Zwraca tekstową reprezentacje podanej liczby. Składnia: zmienna = STR( x ) gdzie: zmiennazmienna typu String do której wpisany będzie wynik działania funkcji, xdowolna zmienna lub stała, poddana konwersji. Opis: Zmienna String musi mieć odpowiednią długość, by pomieścić wszystkie znaki. Zobacz także:...
Myślę że tak zmienna=*((uint16_t*)&buf ... Oczywiście wskaźnik wykonujesz na pierwszy element tablicy, czyli pierwszy bajt informacji, którą chcesz wydobyć. Pozdrawiam
Napisz proszę czego używasz do komunikacji z ESP8266. Jak rozumiem w pierwszym przypadku jest to PC (terminal), a w drugim jakiś zewnętrzny mikroprocesor (Raspberry czy co ?). W obu przypadkach komunikacja odbywa się po RS232 z modułem ESP8266.Czy tak? Domyślam się, że chcesz ściągnąć dane o przewidywanej pogodzie poprzez API dostawcy usług wether underground....
Zapewne masz przepełnienie bufora - nawet jeśli wynikiem konwersji dtostrf jest dwznakowy łańcuch to potrzebujesz jeszcze jednego bajtu na znak NULLZ. Poza tym skoro konwertowana zmienna jest typu int, to dlaczego nie wykorzystasz itoa?
Bascom zawsze używa metody obliczeniowej, która należy do zmiennej wynikowej. Oznacza, że w tym przypadku Bascom wykonuje obliczenia na bajtach. Wartość obliczeniowa2 jest typu Word. Czyli (1) = Liczba_ok / 100 zmienna Liczba_ok traktowana jest jako byte. Jedynym sposobem na konwersję jednego typu na inny jest po prostu przypisanie go w ten...
Witam, int zmienna = ((TH0 << 8) | TL0); [url=http://pl.wikibooks.org/wiki/C/Oper... do strony z opisem operatorów C. Pozdrawiam, Piotr.
ADMUX=0b10000000; //kanał 7 ADC Zamiast 7 ustawiasz zerowy kanał ADC, a ten pin wykorzystujesz jako wyjście na wyświetlacz przecież... nic dziwnego, że bzdury wychodzą. O co chodzi z tym mnożeniem przez 100 (i dlaczego w przerwaniu, do tego jeszcze na zmiennej globalnej)? Jeśli już to powinno być przez 2 (wtedy wystarczą liczby 8-bitowe) albo (na 16-bitowych)...
nazwisk na ta chwile jest około 600 a lista jest zmienna co dziennie
Z elementarnej matematyki wynika ze: U(T) = 0,0139T + 2,5. No więc piszesz sobie (zakłądając ze U to zmienna odpowiadająca napieciu) T=U-2,5 T=T/0,0139 i tyle jeśłi chodzi o konwersje. Oczywiście musisz zadeklarowac odpowiednio zmienne U i T ja bym proponował jako inteagery. Pozdrawiam
Dlatego, że zignorowałeś moją radę. ;) Zacznij od tego, co napisałem powyżej. Zmienna do przechowywania temperatury typu int16_t, a nie int. Byte_0 i byte_1 powinny być typu uint8_t, nie rób na tym etapie konwersji do int8_t.
Tworzysz problem na siłę. Skoro zmienna 16-bitowa nie starcza, to należy użyć 32-bitowej. Nie ma magicznego sposobu, żeby to liczyć na 8-bitach i trwało to 3 cykle... ul oznacza Unsigned Long, czyli dla AVRa pewnie to samo co uint32_t. (typ_zmiennej)jakas_zmienna to rzutowanie - sugerujesz kompilatorowi, że zmienna nie ma wcale typu A, tylko typ B....
To ja też powtórzę swoje :) Jaki jest inny (lepszy od Timera) sposób na sprawdzenie, czy konwersja danych jest skończona?
Po pierwsze zapomniałeś po ustawieniu bitu ASCC poczekać na zakończenie konwersji, czyli: [syntax=c]while(ADCSRA & (1<<ADSC)); //czeka na zakończenie konwersji [/syntax] Ustawiłeś napięcie referencyjne 2,56V. Jaki sygnał napięciowy na wyjściu daje twój czujnik? W jakim zakresie napięć? Zmienna pomiar nie musi być w Twoim przypadku volatile,...
Udało się to wykonać, jestem na etapie konwersji zmiennej string na float. I teraz po konwersji mam zmienną A=27.500, chciałbym aby zmienna A miała postać i była wyświetlana jako A=27.5, czyli bez tych dwóch zbędnych zer. Jak można je usunąć?
Char to tylko typ zmiennej, a hex forma zapisu. Jeżeli funkcja przyjmuje wartości char(8bit) to nie jest ważne czy ty to podasz binarnie, dziesiętnie czy w hexach- ważne jest żeby liczba ta mieściła się w zakresie char. Jeżeli SPI działa w trybie 8bitowy, i funkcja wysyłająca znaki przyjmuje wartości char, a ty chcesz wysłać większą zmienną, to musisz...
A masz pomysł jak w tym kodzie, wartość obliczoną z tego wzoru sqrt(1.0-(f*f)*(sin(latRad)*sin(latRad))... wyświetlało z większa dokładnością bo wynik to 0,99999 i coś tam dalej A w którym miejscu tego kodu wyświetlasz dokładnie tę wartość? Poza tym nie rozumiem, dlaczego zmienna N jest zadeklarowana jako long (liczba całkowita) - biorąc pod uwagę wyliczenia...
Zasadniczo, rzutowanie (char) i inne, podobne rzutowania, nie konwertują niczego, a jedynie mówią kompilatorowi, żeby traktował zmienną jako zmienną jakiegoś określonego typu. Tak jakby dać mu zamknięte pudełko i powiedzieć: nie widzisz co jest w pudełku, ale ja Ci mówię że jest tam dynamit, więc traktuj to pudełko jak pudełko z dynamitem. :) Konwersja...
Cytat: "( dzienne zużycie [m³n] * opłata za paliwo gazowe [zł/kWh] * współczynnik konwersji [kWh/m³n] + dzienne zużycie [m³n] * opłata dystrybucyjna zmienna [zł/kWh] * współczynnik konwersji [kWh/m³n] + opłata abonamentowa [zł/miesiąc] / 30 [dni/miesiąc] + opłata dystrybucyjna stała [zł/miesiąc] / 30 [dni/miesiąc] ) * 1,23" Rozpisz...
Z buf 6-elementowym też działa. Co prawda dochodzi do przepełnienia bufora, ale nadpisywana jest zmienna ts, która po konwersji już nie jest potrzebna. Także jest to błąd, ale niewpływający na działanie programu.
zmienna double w ARM7 ma 64bity.
Problem rozwiązany, zabrakło zerowania zmiennych: set, tys, dzies, jedn. Czekam na wartość ujemną zmiennej 'wynik'. Wynik jest zmienną typu int16_t, wydaję mi się że jest to zmienna uwzględniająca znak. Taki sposób konwersji jest mniej wydajny niż itoa()?
Rozumiem, czyli zmienna String to jakby ciąg zmiennych bajtowych stanowiący całość i w programie instrukcja: IF zmienna_string_1znak(to jakby jedna zmienna bajtowa, tylko inaczej interpretowana, bo nie mogę do stringa w programie wpisać prosto wart. liczbowej, a jedynie literę, która reprezentuje ową wartość liczbową) = "a" then... jest równoważna...
Funkcja Serial.print() z Arduino HAL przyjmuje jako argument zmienną typu int , która jest 32-bitowa w ESP8266, więc w funkcji tej następuje niejawna konwersja z typu int16_t do typu int . Dalej jest więc wyświetlana już jako wartość 32-bitowa. int16_t w formacie binarnym, to możesz użyć sekwencji funkcji: [syntax=c] Serial.print(highByte(dana), BIN);...
Chciałbym zwrócić uwagę na odczyt wyniku konwersji: [syntax=c] ... uint16_t ConversionResults[ADC_CHANNELS]; // zmienna 16bitowa ... ADMUX = 0x60; // AVCC with external capacitor at AREF pin, left adjust result; // left adjusted, czyli przesunięty o 6 bitów w lewo !!! ... static const uint8_tChannelMUX[ADC_CHANNELS] = {0x61, 0x62, 0x63}; // włączony...
Czyli, że opóźnienie w podaniu mocy jest tylko w przypadku konwersji na prąd zmienny, tak? Tak.
Witam. Trochę to mętne , ale spróbuję ci jakoś pomóc. Każda zmienna jest przechowywana w pamięci w postaci dziesiętnej. Możesz ją zadeklarować jako kod szesnastkowy np. : zmienna= &HFF00 Ale i tak w pamięci zostanie zapisana jako konkretna wartość. Nie wiem do czego potrzebujesz, ale domyślam się że chcesz to wyświetlić jako wartość szesnastkową. Wartości...
Rozumiem, że piszesz w C.Nie wiem czy to pomoże ale spróbuj zrobić konwersje typów: epprom_write_byte(adres, (unsigned char) zmienna); Nie pamiętam czy adres miał być pierwszy czy drugi ale nie w tym rzecz
"n.p. Dwa kondensatory szeregowe, ładowane przez dwa klucze." Ten pomysł wydaje się być prosty i skuteczny, ale jak to by miało wyglądać? Chodzi mi o schemat... bo wszytko co mi przychodzi do głowy to: albo ma milion przełączników, albo kończy się zwarciem baterii zasilającej.. ;( może diody pomogą? Proszę o pomoc. To się nazywa przetwornica pojemnościowa,...
[syntax=vbscript]Dim a, b As String[/syntax] W zapisie tym zmienna 'a' jest typu 'Variant' a nie 'String' ... : ) ... vba to niezupełnie VB - powinno być raczej: [syntax=vbscript]Dim a As String, b As String[/syntax] No ... i niekoniecznie o taką konstrkcję funkcji chodziło - jeśli chciałbyś się do niej odwoływać z poziomu innych pól, to raczej się...
Jeżeli używasz timera IEC (TON, TOFF, TP) to użyj zmiennej DINT na HMI. Będzie to zadawanie czasu w sekundach: L Czas_HMI // Zmienna DINT L L#1000 *D T Czas_Timer // Zmienna TIME Nie potrzebujesz żadnych konwersji.
A po rozpoczeciu konwersji czekasz iles cykli (podane w nocie) zanim wyswietlisz zmienna ?
Print potrzebny byl poto zeby wyswietlil cokolwiek bez konwersji Co to znaczy cokolwiek? przeciez tam wyswietlasz zmienna time a nie co kolwiek I co to to znaczy bez konwersji?? Wedlug mnie ten warunek if nie bedzie nigdy spelniony: if(licz==1) { printf(time); licz=0; } } aby byl kiedykolwiek spelniony zmienna licz tez musisz zadeklarowac jako volatile...
Nie powinno się podawać gotowych rozwiązań ale while ((zmienna != "tak") || (zmienna != "Tak") || (zmienna != "TAK")) Tak mnie uczono i działało ;) zależnie od sposobu zadeklarowania zmiennej "zmienna" może to działac czasami lub nie działać wcale. Skompiluje się, ale nie wykona poprawnie....
Witam, Do wejść Portu mam podłączone 5 odbiorników zbliżeniowych. Odczytują zagłębienia w tarczy kodowej. Niestety nie są one uporządkowane tzn bit0 na tarczy jest przypisany do PORTx.4 a bit1 do PORTx.2 itd Próbowałem wcisnąć do zmiennej typu string *6 odczyt z poszczególnych czujników na zasadzie I = $bit5; $bit4; $bit3.... a później przekształcić...
to znaczy że coś do czego zapisujesz ma inny format niż to co jest źródłem. np gdy do label zapisze się bezpośrednio zmienną bo label przyjmuje tylko text i czasami trzeba zrobić konwersję funkcją string: label1.text:=str(zmienna). Przy degugowaniu pokazuje dokładnie w której linijce programu jest problem.
...Czy istnieje jakiś sposób, aby ostateczną zmienną 'Ss' (string) zapisać w zmiennej typu Single (lub innej?) aby umozliwic porównanie jej z tą zapisaną w eepromie? A może ktoś zna inną metodę na rozwiązanie tego problemu? Z Twojej wypowiedzi wynika , że nie wiele masz wspólnego z programowaniem uC - ale mniejsza z tym. Zmienna string jest potrzebna...
A czy jest możliwość konwersji zwykłych stringów w wstring? Edit: Skompilowało się ale nie pokazuje tego tekstu ze zmiennej, nic nie pokazuje, oczywiście zmieniłem zmienna na tekst. Edit2: Tylko polskich nie wyświetla.
[syntax=c] int16 t16; int16 tTemp; t16 = (buf[0] | buf[1] << 8); tTemp=(t16*10)/16; [/syntax] "buf" to odczyt "scratchpad" termometru. Zmienna tTemp zawiera temperaturę w 0.1st, to znaczy np. 13.5 to będzie 135. Potem, jak chcesz to dziel przez 10 i na float albo dzielenie przez 10 z resztą i bez reszty, tylko trzeba znaku pilnować: [syntax=c]...
Moim zdaniem najbardziej miarodajne to jest podawanie zużycia za cały rok ze wszystkimi opłatami i lokalizacją. Ale wiesz że od 1.07 ceny się zmieniły więc jak chcesz cały rok porównywać? to raz, dwa u mnie średnia za zeszły rok a właściwie sezon to 3.79zł/m3, ceny poszły o 50% więc za ten rok będzie min 5.68 a to nie wszystko bo przesył rośnie o 25%...
A ile znaków może mieć zmienna a ile pod uwagę znaków początkowych musi wziąć kompilator?
Ja to bym zapisał ewentualnie tak: commandTW w wyniku wyżej opisanych operacji, zostanie promowana z typu uint8_t do uint16_t i przesunięta do starszej części zmiennej command .
Witam. Mam proble ze znakiem :/ mam w charze tak: char znak='4' to jak zrobić żeby zmienna znak zmieniła się na liczbę czyli normalne 4?. Bo jak robię konwersję z char na int to mi wyskakuje kod ASCII :/
Napotkałem pewien problem. Poniżej przedstawiam fragment kodu w c. [syntax=c]uint32_t FT_Read32() { uint32_t ftData32= 0; ftData32 = ((uint32_t)SpiReceive(0x00)); ftData32 = ((uint32_t)SpiReceive(0x00) << 8) | ftData32; ftData32 = ((uint32_t)SpiReceive(0x00) << 16) | ftData32; ftData32 = ((uint32_t)SpiReceive(0x00) << 24) | ftData32;...
Witam. Osobiscie preferuje TASM (sentymenty), ale oba kompilatory maja podobne mozliwosci. Istnieja miedzy roznice skladniowe, wlasnie: smieci times 768 db 0 dla MASM to to samo, co smieci db 768 dup 0 dla TASM i znaczy tyle, co: zmienna smieci zlozona z 768 bajtow o wartosci 0 (tablica) - id smieci wskazuje na pierwszy bajt tablicy. W necie, zdaje...
U mnie też występował taki problem- ja miałem 4 stopnie mniej, ale to zależy od termometru wzorcowego- laboratoryjnego nie mam. Musiałem to skorygować w programie dopiero podczas testów:/ Myślę, że to jest wina procedury konwersji odczytanej temperatury (nie mojego autorstwa). Zmienna, która opisuje temperaturę nastawioną jest typu BYTE, ostatnia jej...
Potrzebuję zamienić 12V (stały prąd) na 220V 50Hz (prąd zmienny). Pomóżcie
To samo dotyczy dsPIC33 i PIC24. Np. w dsPIC33EP... mogę dość swobodnie (zmienna 8 bitów) określić prędkość zegara dla ADC względem zegara systemu. A następnie mogę wybrać minimalny czas samplowania (zmienna 5 bitów), po którym rozpocznie się konwersja wyniku mimo ustawienia bitu rozpoczęcia konwersji. Takie drobne ułatwienie, która pozwala zminimalizować...
BIE wyrzuca mi jako błędny operator. Przepraszam, z rozpędu pomieszałem notacje niemiecką z angielską, oczywiście BIE to BR (binary result). Ewentualnie UBLKMOV zapisz w FBD, wtedy reset Head_exe będziesz mógł podpiąć pod ENO i zakładam, że gdzieś w programie ta zmienna jest sprawdzana na wypadek błędu w wykonaniu funkcji.
Najłątwiej to chyba tak : lcd lookupstr(kod, etykieta) a zmienna kod to zmienna z twoim kodem bcd przerobionym do dec czyli funkcją bcd2dec
A co to za strata jeśli ta zmienna będzie lokalna ? Strasznie kolego jesteś chytry :)
Cześć, Chciałbym Was podpytać o najlepsze rozwiązanie. Sterownik na stm32 otrzymuje co kilkadziesiąt godzin czas do aktualizacji RTC w formie unixowej jako zmienna 32bit. Wykorzystywana jest ona następnie do przesyłania do innych urządzeń również jako zmienna 32bit. Pytanie - czy za każdym razem muszę robić konwersję 32bit na BCD do RTC i na odwrót,...
Cześć, Znalazłem w kodzie: if ( IN_L>=0x00008000 )IN_L |= 0xffff0000; Czyli: jeśli liczba ma znak "-" to robimy OR'a tej liczby z 0xffff0000 przez co mamy tę samą liczbę, także w kodzie U2 tyle, że zapisaną na 32 bitach (jeśli jest dodatnia to starsze 16 bitów defaultowo wypełni się zerami) - czyli zmienna typu int jest w C traktowana jako zmienna zapisana...
OK ... podmieniłem pętle czasowe na te wg. "bvr". Wykrywanie OK i odczyt około 0x017A. Pytanie ... widzę w jego kodzie jakąś konwersję ... do czego ona służy? Zmienna float jaki ma zakres danych? Sorry za pytania, ale nigdy nie posługiwałem się zmiennymi z przecinkami ;) Dodano po 34 //Jeszcze parę pytań ;) Jak ze zmiennej float wyciągnąć części dziesiętne,...
Przedewszystkim zrób to inaczej... po prostu... main() { char bufor[20]; ... funkcja(bufor, ...); } funkcja(char* bufor, ...) { } I w ogóle nie ma problemu. Zmienna tmp w ogóle jest nieporozumieniem. Przecież wewnątrz funkcji możesz sobie zadeklarowac tablicę o dowolnym wymiarze... funkcja(...) { char tablica[1000]; } A pamięć możesz zwalniać gdzie...
Masz racje rpal, tylko twoje rozwiazanie nie jest zbyt szybkie. Stad specjalizowane funkcje do konwersji - jesli masz tylko 16-bitowa zmienna to po co robic operacje na zmiennych 32-bitowych. Jesli szybkosc nie jest krytyczna to mozna sie tak bawic. Chociaz funkcji z AVR libc i tak sie nie przebije bo sa napisane w assemblerze. Warto zreszta zagladnac...
zmienna3 = Mid(zmienna , 7 ,3) i teraz zmienna3 = pwm1a - czyli pwm1a będzie z wartością 123 ?? Nie. Ale może zadziała: PWM1A = VAL(zmienna3)
No normalnie: If zmienna >= 1000 Then zmienna = 999 End If
Myślę, że jest to naturalne. Zmienna typu Long zajmuje 4 bajty a Integer tylko 2. Nie da się ciężarówki zaparkować w garażu dla malucha. W helpie jest informacja, że można dokonywać konwersji typów. Oto fragment: Dim I As Integer, S As Single S = 100.1 'przypisujemy liczbę zmiennoprzecinkową I = S 'ta instrukcja zmieni liczbę typu single na Integer...
Witam... Tak można... Ale pamiętaj o sumie przy ustawianiu inaczej wyzerujesz sobie cały rejestr... Tak w tym przypadku nie musisz (ale możesz) się martwić odczytem osobnych rejestrów (H i L) i ich kolejnością... Oczywiście zmienna do której wczytujesz musi mieścić 10-bitów... Zabawa w czytanie rejestrów ADCH lub ADCL ma sens jeżeli przesówasz wynik...
Jest oczekiwanie na konwersję: while((ADC_SR & ADC_SR_EOC1)>>ADC_SR_EOC1_BIT != 1) a zmienna z jest wyzerowana po raz pierwszy na samym początku: char z=0; Problemem może być to, że jeśli używasz jakiejś optymalizacji, to kompilator na 99% wykasuje zmienną z. Do jej deklaracji dołóż słówko "volatile". 4\/3!!
mnie akurat nie chodziło o takty na konwersje potrzebne a raczej o niepotrzebnie zajmowane bajty Jak wiadomo bascom jest pamięciożerny a program pewnie ma coś więcej do zrobienia niż tylko odbiór jednej liczby Poza tym po poleceniu inputbin jakas_zmienna jest odbierane tylko tyle bajtów ile ta zmienna zajmuje Ponieważ nie trzeba robić dodatkowych zabiegów...
temp2temp jest tylko do sprawdzenia, wykluczenia tego, że to zmienna decicelsius2 jest winna wykrzaczaniu temp2, co pokazało, że nie, bowiem w temp2 i w temp2temp przy wykrzaczeniu są inne wartości. Co do zmiennej licznik, to ona się ma nie zerować, ponieważ liczę średnią temperaturę przez cały czas działania urządzenia, a więc potrzebuję sumę wszystkich...
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...
metoda kolejna to w wywołaniu lcd.print aby wyświetlić wartość zmienna jako liczbę całkowitą: A gdzie w tym kodzie masz zmienną w postaci liczbowej? Wszystko co dostaje z Thingspeak to stringi. Musi je więc najpierw skonwertować do zmiennej liczbowej aby wyświetlić używając[syntax=c] lcd.print(zmienna, 1);[/syntax]. Jak juz konwertuje, to zrobi od...
Hmm, nie wiem czy dobrze myślę. Przerwanie od adc występuje po każdej zakończonej konwersji, więc jakie ma znaczenie czy odczytuję dane ze wszystkich kanałów czy tylko z 5? Konwersja kończy się odczytuje wartość rejestru, następnie zmieniam kanał. Kiedy zmienna channel osiąga wartość 4 czyli odczyt ADC4 automatycznie jest zerowana i w następnym przerwaniu...
To nie ma znaczenia czy float czy double. Jeśli zmienna jest typu float to dodatkowo dochodzą jeszcze konwersje float->double double->float fpu_enable() jest wywoływane wcześniej - to jest Twój kod. Problem i tak jest w tym, że nie ma obsługi sprzętowego fpu - kompilator wszystkie operacje na zmiennoprzecinkowych wykonuje programowo.
Nigdzie nie podałeś (albo ja niedowidzę) jakiego typu jest zmienna temp_current ... a to pewnie jest przyczyną problemów
Napisałem programik do wagi, obsługuje przetwornik ac w AtMega8 : $regfile = "m8def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portd.3 , Db5 = Portd.2 , Db6 = Portd.1 , Db7 = Portd.0 , E = Portd.4 , Rs = Portd.5 Dim I As Byte Config Adc = Single , Prescaler = Auto , Reference = Avcc 'ustawianie przetwornika AC...
Kwestia połączeń jest raczej mniej prawdopodobna, bo błędny wynik oznaczałby błędy transmisji, a te okresowo powodowałyby "przeinaczenie" komend i brak poprawnej komunikacji z sensorem (co przy dobrze napisanej obsłudze 1wire wyrzuciłoby komunikat o błędzie). Tutaj jest kwestia tylko samego wyniku i właśnie przy samej konwersji szukałbym przyczyny....
kolega wader_669 - jak zawsze tak zakręci temat, że na końcu przez to wszystko sam już się w tym wszystkim niepotrzebnie gubi ;) poczekaj poczekaj, odpowiedz może po kolei na kilka pytań żeby dobrze zrozumieć twój cel: 1. piszesz program w końcu w C czy Bascomie ? 2. czy może masz 2 procki, które komunikują się jakoś ze sobą i na jednym masz program...
Ale co dokladnie chcesz zrobic? Przepisac zawartosc komorki tablicy do nowej zmiennej? zmienna2=zmienna[x]; Bo jesli chodzi ci o konwersje liczby 16-bitowej z tablicy na lancuch tekstowy, to nie jest to mozliwe, bo np. 65535 zajmuje az 6 bajtow (5 cyfr + NULL).
Witam. Mam takie pytania. 1. Czy maskowanie bitów roku i dnia tygodnia odbywa się tylko przy zapisie danych do RTC, a przy odczycie jest to gotowa juz zmienna do konwersji na wartość zrozumiałą do wyświetlenia Dnia i Miesiąca..?. Czyli czy dobrze rozumiem, że jak zamaskuję rok przy zapisie to nie odczytam już roku.? 2. Ustawianie maskowania odbywa się...
Troszkę monolog z mojej strony ale - zostawię rozwiązania dla potomnych. Przyczyna wyświetlania tylko 2 cyfr dość banalna jak się okazało: - zmienna Sensor1Data była zadeklarowana jako int - zmieniono na float - konwersja Sensor1Data = atoi(Sensor1CharMsg); w prawidłowej postaci powinna wyglądać Sensor1Data = atof (Sensor1CharMsg); Śmiga - trzeba rozbudowywać...
Zmienna buffer ma nie być typu char, tylko typu tablicowego, tak aby mogła pomieścić wynik konwersji. Poza tym po rozpoczeciu konwersji opóźnienie 200ms to za mało. Te układy w zależności od rozdzielczości potrzebują ponad 650ms.
A widzisz tam gdzieś procedury dla powtarzających się fragmentów kodu? A widzisz może stałą znakową dla tych samych lub bardzo podobnych napisów? Zobacz jak skomplikowano warunki (niepotrzebnie), ile razy używano rozkazu Locate zamiast "ubrać" to w procedurę, nie stosowano lcd chr(xx), stosowano wyświetlenie zmiennych w najprostszy, pamięciożerny sposób...
Na moich fakturach za gaz (podkarpacki rejon dystrybucji) od momentu wprowadzenia obliczania odpłatności za gaz wg. współczynnika konwersji, w więc od sierpnia 2014, ten współczynnik stale rośnie. Dziwne to jest, bo zawartość składników gazu jest zmienna, a więc raz metanu jest więcej, raz mniej. A tu stale coraz więcej... U mnie od sierpnia jest tak:...
Chciałem zrobić jak poniżej, ale tez dostałem puste https://obrazki.elektroda.pl/5955018300_... Tak jakby zmienna SMSik się wywalała...
zmienna float konwersja bascom konwersja zmienna zmienna string konwersja
błąd junkers parowanie telefonów szarpie sprzęgło samochód
suszarka elektrolux elektrozawór zabezpieczenie
Działa tylko lewa strona słuchawek - co robić? Piec Wolf COB-2/COB-2-TS: Niskie ciśnienie wody i brak uruchomienia