Witam, Napisałem program w BASCOM AVR, z komputera otrzymuje dane np: "14" te dane są i muszą być odbierane do zmiennej typu string. Mam problem z: chciałem tą zmienną ze zmiennej typu string przypisać do zmiennej typu BYTE. Nie wiem jak by to zrobić. Probowalem już kilu sposobów ale zawsze otrzymywałem jakieś bzdury w zmiennej typu byte. Czy istnieje...
http://www.elektroda.pl/rtvforum/topic22...
Źle definiujesz typ zmiennych. Żeby można wykonywać operacje zmiennoprzecinkowe, typ zmiennych powinien być single lub double. Dim Dawka_temp As Single, Dawka As Single
Witam, Mam pytanie czy istnieje w bascomie funkcja która pozwala na konwersje zmiennej zapisanej w systemie czwórkowym na zmienną dziesiętną? maksymalna liczba jaka bedzie zapisana to 65355.
Integer to nie jest zmienna tekstowa. Sprawdź w helpie jaki zakres ma ten typ zmiennej.
Witam serdecznie wszystkich. Walczę już od kilku dni z konwersją zmiennych i już brakuje mi pomysłów... Postaram się w miarę dobrze opisać mój problem. Mam 2 zmienne: A = &b00110000 B = &b00100000 Chciałbym je połączyć do zmiennej : C = &b0011000000100000 "tak jakby scalic je" Potem przesunąć w prawo o 5 miejsc uzyskując postać : &b00110000001 Jak na...
...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...
Nie używałem nigdy BASCOMa, ale chyba powinno się dać w nim zrobić coś takiego: wynik = round(liczba*100)/100
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...
To przycinaj zmienną LONG przed skonwertowaniem jej na text.
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...
Witam Kolego Unreal89. Pracuję pod Bascomem 8051 i nie spotkałem się z funkcją, o której wspominasz. Przejrzałem pliki help'a i tam również nic nie znalazłem. Zainteresowany jestem z jakiego powodu odpada komenda "fusing"? Dla czego pytam? Pozwolę sobie obszerniej skomentować zaprezentowany listing. 1. Termometr DS18B20 przechowuje informacje o temperaturze...
Witam. Mam zapisaną liczbę binarną w postaci "String * 14" i próbuje ją zamienić na dec. Próbowałem komendą binval, ale niestety liczba wynikowa może przyjąć wartość max 255 czyli (bajt), a moje wartości będą w granicach 10000 do 14000(dec). Ma ktoś jakiś pomysł ? Pozdrawiam.
Witam Mam dwie zmienne np: a=25 b=5 i jak to zapisać w bascomie aby: c=25,5 potem zrobić coś takiego: d=(25,5-12,3)*10 już sam nie wiem jak to zrobić :( próbowałem z instrukcją const ale nie chciała działać i cały czas miałem błąd nr. 222 Pozdrawiam
Witam. Krótko: mam zmienną string*3. Przykładowa wartość tej zmiennej to 2.7 Muszę zamienić ją na Byte o wartości 27 oraz informację, czy zmienna jest mniejsza od 10. Oczywiście nie da się pomnożyć zmiennej string (razy 10)... Co z tym zrobić? Pozdrawiam.
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...
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...
Mam taką tablicę [syntax=basic4gl]Dim Lngfreq_memory(50) As Eram Long Dim Lngstep_memory(50) As Eram Integer Dim Modulacja_memory(50)as Eram Byte Dim Vfo_memory(50)as Eram Byte Lngfreq_memory(idx + 1) = Lngfreq : Lngstep_memory(idx + 1) = Lngstep : Modulacja_memory(idx + 1) = Modulacja:Vfo_memory(idx + 1) = Vfo[/syntax] Chciałbym wyświetlić ją w ten...
Witam. Czy mógłby ktoś pokazać fragment kodu w bascomie który uśrednia wynik pomiaru np z przetwornika A/C? Pozdrawiam
W jaki sposób można w bascomie zamienić dowolny tekst na liczby aby można było go umiescić w pamięci a nastepnie odczytać te liczby i zamienić na tekst. Kombinowałem ale nie zabardzo mi to wychodzi .Prosze o jakieś wskazówki. Wielkie dzięki
Witam Mam pytanie wysyłam przez RS232 daną typu np. 255$0D lub 0$0D itd.... chodzi mi o to by , po odebraniu w BASCOM-ie ten string widzieć w formie zmiennej o wartości 255 , a nie jaki trzy pojedyncze znaki ASCI wysyłam 255$0D odbieram 2 , 5 , 5 , $0D Jak to ułożyć w 255 i zrobić z tego LICZBĘ 255 "znienną" by ją pobrać ? Proszę o Waszą pomoc 'Przykład...
Witam Potrzebuję zaokrąglić liczbę zmiennoprzecinkową do liczby całkowitej (do późniejszego wyświetlenia na wietlaczu LED (rozbijanie liczby na pojedyncze cyfry działa poprawnie). Do tego celu wykorzystałem funkcję Round. Zgodnie z instrukcją Bascoma należy zrobić to tak: [syntax=vbnet] dim A as Long, B as Long A=Round(B) [/syntax] Rozumiem, że gdyby...
W kodzie z mojego poprzedniego postu sa tylko pary klucz wartość. Proszę zamień to tak że #define zamieniamy na Const, potem nazwa stałej, za nią znak równości i wartość. Te które są zapisane z przedrostkiem 0x zamień na &H Linie komentarzy pozostaw ale poprzedź je apostrofem który je w języku Basic zakomentuje. Doskonale, teraz kiedy znamy specyfikacje,...
Witam, Mam problem z wysłaniem zmiennej Long przez RS232. Wszystkie inne zmienne 2-bajtowe (Word) pięknie przechodzą natomiast Longa już na 1 rejestrze nie wyślę. Rejestry mam 16-bitowe - chciałbym wykorzystać 2 rejestry 16 bitowe żeby wysłać zmienną 4 bajtową. Czy może mi ktoś podpowiedzieć jak rozbić liczbę np 250000 w Bascomie aby przesłać ją na...
kiedy wpisze w zakresie 0-254 oczywiście działa poprawnie ale jeżeli wartość jest inna niż podana w zakresie to również się wykonuje A w jaki sposób zmieścisz inną wartość do zmiennej typu Byte?
Cytuję: "Ustawia się to w zależności od skomplikowania programu. (...)" O co tutaj chodzi i o jakie wartości tutaj chodzi? Dokładnie chodzi o ilość bajtów jaką początkowo zajmie każdy ze stosów. Stos jest elementem rozrastającym i kurczącym się dynamicznie. Może dojść do sytuacji gdzie jeden zajdzie na drugi - stack overleap - i kłopot gotowy. Dlatego...
Zamiast używać wielu zmiennych w stylu zmienna_byte, zmienna_byte2, zmienna_byte3 załóż tablicę np. zmienna_byte(300) i wówczas na podstawie zinterpretowanego znaku wysyłasz zawartość odpowiedniego pola tablicy. No dobra, tryb tablicowy ma swoje plusy (jeśli chodzi o zapis chociażby i odwoływanie się do zmiennych). Jednak nie do końca o to chodzi....
W zasadzie można do Word odczytać Byte. Ale na zasadzie konwersji typów. A Lookup nie pozwala na konwersję typów. Typ odczytywanego parametru jest narzucany przez typ zmiennej do której się odczytuje, a więc siłą rzeczy te typy będą identyczne. Jeżeli więc odczytujesz do zmiennej typu Word, to Lookup zawsze będzie odczytywało po 2 bajty. Musiał byś...
Witam Wiem że takich tematów jest sporo ale mój problem jest trochę inny. Mam problem z DS18B20 nie wiem jak odczytać z niego dane. Umiem odczytać temperaturę z DS1820 ale z wersji B nie umiem. W wersji DS1820 jest tablica dwóch zmiennych typu byte i w tej drugiej zmiennej jak jest ujemna temperatura jest 255, a wersja DS18B20 drugą zmienną(tak jak...
Z rozpędu te sprawdzanie Err = 0 dałem w złym miejscu. Err = 1 będzie zapisane jeśli konwersja z Hextring będzie niemożliwa. Czyli, dla przykładu, jeśli zamiast literek od A do F znajda sie tam jakieś inne "dzikie" typu "Z" Dodałem dla testu literki ZZ i dlatego czwarty WOrd juz nie dostał wartości i nie został wyświetlony ;) http://obrazki.elektroda.pl/8680611600_1...
Chcę użyć przetwornika AD w Atmega8. Programuje w bascomie AVR. Jest tam funkcja GetADC i nie mam żadnego problemu z jej uzyciem, ale ma ona taka zasadncizą wadę, że dziala tylko w trybie single i po jej wywołaniu czeka aż konwersja zostanie zakończona. (Jest to dość naturalne, bo przecież musi zwrócić wynik konwersji). Zależało by mi, aby uniknąć tego...
Nie przejdzie tak łatwo. budowa generatora VGA sie kłania (hardkor wg mnie) ale gdybyś miał sam układ wyświatlania to potem łatwo. Zależy tylko co to ma być za kod( zkąd ma być brany) Kod pilota? czy jak? Ale jak nie na monitorze ,to proste dość .sam ucze sie programować w Bascom ,gdybym wiedział co to za kod, i miał go nadać ,to zapisałbym go do zmiennej...
Trochę odświeżę temat bo nie mogę sobie poradzić. Ciągle odczytuję śmieci. Pin RS steruje czy to jest instrukcja dla LCD czy dane do LCD. Wydaje mi się patrząc na wykres że gdy jest wysyłana instrukcja to idzie najpierw impuls L a potem komenda. Podłączyłem się oscyloskopem (niestety mam tylko analogowy) i widać że cały czas jest stan H i lecą impulsy...
Witam. Proc: Atmega8 IDE: Bascom Piszę dość spory kawałek kodu, a zatrzymałem się na prostej funkcji. Jej zadanie mam być konwersja liczby z jednego zakresu na inny (np. 0-1023 na 0-255). Napisałem taki kawałek kodu: Function Mapuj(byval Z As Byte , Byval In_min As Integer , Byval In_max As Integer , Byval Out_min As Integer , Byval Out_max As Integer)...
Witam ponownie Zrobiłem to przez Timer0. Jednak problem z aktualizacją wyświetlania dalej występuje. Jeszcze drugi problem to start, przez okres zdefiniowany zmienną Licznik ( teraz równą 300 ) nic się nie wyświetla - dopiero po czasie = 300. Próbowałem również z Enable/Disable Interrupts na czas pomiaru, ale nie było żadnego efektu. Mam takie pytanie...
Próbowałem coś takiego i męczę się cały czas ,ale i tak mi wychodzą głupoty. :( [syntax=basic4gl]Sub Gettime() 'pobieranie czasu z PCF8583 'początek petli I2cstart 'inicjalizacja magistrali I2C I2cwbyte 166 'podanie adresu PCF8583 dla zapisu I2cwbyte 2 'wybranie drugiego rejestru (sekund) I2cstart 'powtórna inicjalizacja magistrali I2C I2cwbyte 167...
Witam Mam płytkę Loggera GPS + SD + PCF8563. Jeśli chodzi o GPS i zapis na SD wszytko jest OK. Problemem jest ( i to pierwszy raz się z czymś takim stykam ) odczyt danych z z układu PCF8563. Otóż dla pewnych wartości sekund, odczytana wartość czasu - godziny jest większa o 40 ( czterdzieści ). Czyli jeśli czas jest 22:40:02 to jest wyświetlany poprawnie,...
Jeżeli między znakami masz jedną kolumnę odstępu, to na pierwszej stronie będą dwie, a nie jedna kolumna z drugiego znaku, no ale to szczegół ;) Nie wiem, jak masz zapisaną "czcionkę". Jak na moje oko, to może być po bajcie na każdą linię i takich linii 7, jedna po drugiej, potem następny znak itd. Nieużywane bity (te z prawej, znaki wyrównane sa do...
Nic nie jest wcześniej robione automatycznie a także ty nie musisz robić żadnych takich sztuczek cyrkowych jak to podałeś w ostatnim przykładzie. W obydwu przypadkach albo za każdym razem bez żadnych dodatkowych czynności odbędzie się ta sama prosta operacja. Zarówno do zmienna_byte jak zmienna_typu_string trafi dokładnie ta sama wartość czyli 97 czyli...
Widzę, że moderatorzy posprzątali zwyczajowy hejt na Bascoma :D Niestety przy okazji usunięto też ważną informację. Rzeczywiście potrzebujesz instrukcji VAL https://wiki.mcselec.com/bavr/VAL do zamiany reprezentacji tekstowej liczby na wartość liczbową. W drugą stronę, jeśli chcesz wysłać zmienną WORD do komputera możesz zrobić to wprost. Bascom sam...
Najprościej skorzystać z gotowych funkcji. W Bascomie 51 jest funkcja MAX. Działa ona na zmiennych typu Byte. W Bascomie AVR funkcja ta działa na zmiennych Word. Więcej info w helpie do Bascom-a. Jeśli musi to być koniecznie Integer, można zastosować jakąś konwersję typu Word na Integer lub napisanie własnej funkcji, co nie powinno być trudne.
O jakim rzutowaniu Wy tu mówicie :?: Potrzebujesz zmienną w EEPROM, to ją sobie tam zadeklaruj, a nie wymyślasz cuda :-P
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...
Znaki terminujące - czyli "\r\n", ewentualnie NULL, zazwyczaj kończą zmienne typu string. Nie sądzę, żeby były wysyłane po każdym znaku. Nie programowałem w C#, ale wydaje mi się, że kompilator dodaje Ci te znaki automatycznie. Spróbuj odbierane znaki zapisać do zmiennej innego typu, np "byte" lub "char". Jak wygląda Twoja procedura odbierająca znaki...
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
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...
A spróbuj tak: Odczyt=Temp Dim Jednostki As Byte , Dziesiatki As Byte ' cyfry do wyświetlania temperatury Dim Temp As Byte ' temperatura Dim Pompka As Bit ' sterowanie pompką Dim Odczyt As Byte Dim Cyfrybcd As Byte Dim Ktorywysw As Bit Enable Interrupts ' oblokuj przerwania Enable Timer0 'odblokuj timer0 Enable Timer1 'oblokuj timer1 Config Timer0 =...
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 Inaczej mówiąc, potrzebujesz przemapowac pojedyncze bity po ich...
Dawno w Bascomie nie pisałem. Najprymitywniej to można zrobić na zmiennych globalnych używając podprogramu. A więc masz zmienną Xp w której masz numer pinu na którym chcesz operować. Zmienna Xk to będzie już wartość skorygowana. Robisz podprogram: [syntax=basic4gl] Konwersja_pinow: Select Case Xp Case 0 Xk=5 Case 1 Xk=3 .................... Case 7 Xk=1...
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...
Super. Dokładnie o to mi chodziło. Wiedziałem kiedyś, że to się tak robi ale zupełnie z głowy mi wyleciało. Dzięki bardzo d.d za pomoc. W zasadzie to mi wystarczy ale jeśli ktoś zna jeszcze jakiś sposób konwersji to proszę o wskazówki.
skoro umiesz wysłać tekst do drugiej atmegi to jak możesz nie umieć wysłać sobie jakichś zmiennych - oj chyba przegrzało przy ubieraniu choinki więc podpowiem ;) .... można to zrobić na milion sposóbów oczywiście i wszystko zależy od tego jakie to są zmienne, ale np załóżmy że masz zmienną typu Byte. 1. dokonujesz konwersji tej zmiennej na postać String...
Dziękuję za pomoc w zrozumieniu "transmisji szeregowej" oraz podpowiedzi co do konwersji 2 bajtów w 1 liczbą Serdecznie dziękuję za pomoc - wszystko działa :)
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...
Nie wiem po co ci takie udziwnienie, zobacz tabelę ASCII. Liczby są od 48 do 57 w dziesiętnym. Zanim skonwertujesz zmienną Dana najpierw sprawdź czy nie znajduje się w tym przedziale przy pomocy np. Select case Patrząc na Twój kod w linku co podałeś to w ogóle nie wiem na co Ci ta konwersja do wartości liczbowej ? Przecież by wyświetlić jakąś liczbę...
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...
Nie wiem czy sam pisałeś program czy może wziąłeś gotowca ale z funkcją getkbd() jest taka sprawa, że: "Funkcja GETKBD() zwraca numer naciśniętego klawisza, w klawiaturze matrycowej, podłączonej do portu mikrokontrolera. Gdy nie naciśnięto żadnego z klawiszy funkcja zwraca liczbę 16." i "Ponieważ funkcja zwraca numer umowny klawisza w matrycy, można...
1) Warunek jest taki że string zawsze musi mieć taka samą długość 2) Użyj funkcji MID aby powycinać ze stringa kawałki z poszczególnymi temp 3) I tutaj uwaga - konwersje string->liczby są pamięciożerne. Jeśli nie wykonujesz żadnych obliczeń temperatury itp to odebrany string wyświetl na lcd jako string a nie jako bajty. Poprostu funkcją MID porozcinaj...
NA "setki" "dziesiatki" i "jednosci" NIE WIEM JAK ZROBIC, zeby przy malych predkosciach (ponizej 10km/h) wartosc na wyswietlaczach byla zmieniana co 1 sekunde (4xtimer1) Dim Speed As Byte ' Prędkość Dim Tmp As Byte Dim I As Byte Dim Index As Byte Dim Mmv as Byte *** Rozbicie na 3 cyfry *** Dim Cyfry(3) As Byte Speed = 147 ' W Polsce to zakazane...
Witam W jaki sposób można zmienić w Bascomie zmienną typu WORD na dwie zmienne typu BYTE... Jaki Bascom , 51 czy AVR :?: Dla 51 , to dzielenie , Shift ,High,Low , a jak AVR , to jeszcze dyrektywa Overlay . Piotrek
konwersja zmiennej single bascom konwersja bascom zmiana zmiennej bascom
iphone gubić zasięg checksum błąd popularny silnik
prostownik tyrystor biała poświata telewizor
Najlepszy Launch do diagnostyki samochodów - X431 V+ PRO, PAD VII, CR529 Jak odblokować EHR w ciągniku Case CVX 1190?