Możesz, to zrobić tak: Dim zmienna as single Dim part1 as byte at zmienna overlay Dim part2 as byte at zmienna+1 overlay Dim part3 as byte at zmienna+2 overlay Dim part4 as byte at zmienna+3 overlay Odebrane dane uartem wrzucasz kolejno do zmiennych 'part' w efekcie zapełniając 4bajty zmiennej 'zmienna' typu single.
Zmienna = -Zmienna ?
Siemka! Musisz wziąść pod uwagę fakt, iż zmienna single przechowuje wartości zmiennoprzecinkowe ze skończoną dokładnością i to może być zauważalne przy niektórych operacjach na tego typu zmiennych. Poszukaj w helpie od Bascoma i poczytaj o kodowaniu liczb zmiennoprzecinkowych i wszystko Ci się wyjaśni:) Pozdrawiam!! Widzę że dałeś kod.:) Mi się wydaje...
Można też zdefinować zmienna np tak: Zmienna As Single At &H80 i podstawić LDS r27, {b1} LDS r28, {b2} LDS r29, {b3} STS $80, r27 STS $81, r28 STS $82, r29
Witam!!! Mam problem z dodawaniem zmiennej single a mianowicie Dim test as single test = 0 do locate 1,1 lcd test Debounce Pinc.5 , 0 , A , Sub loop A: test = test + 0.1 i jak nacisnę przycisk raz to zamiast być 0.1 wyświetla 0.09999996 Dlaczego tak się dzieje??
Integer to nie jest zmienna tekstowa. Sprawdź w helpie jaki zakres ma ten typ zmiennej.
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...
Można zadeklarować prawidłowo zmienną eeram W ten sposób Dim Adres_er(size_t_mac) As Eram Byte At Adres_p_mac Poprzez komende AT znam adres, po jaki będzie się odwoływać zmienna eeram w pamięci. Niestety, ale z Eepromem ten numer nie przejdzie , ponieważ Bascom ignoruje etykiety w Eepromie. Deklaruje, jakie wartości powinny być zapisane w eeram...
wprowadzasz zmienną temperatura2 as single wyswietlanie: if temparatura<>temperatura2 then temperatura2=temperatura LCD .... end if return
Zajrzałem do skompilowanego pliku i widzę że kompilator w ogóle nie używa tu R2 i R3 więc mi je zostawił ;) Od pewnego czasu w Bascom do rejestrów można się odwoływać prosto z kodu. Ciekawe którą wersję Bascom masz. Pewnie znowu schody... U mnie program się kompiluje na 96% [syntax=vbnet] $regfile = "attiny13.dat" $crystal = 9600000 $hwstack = 16 $swstack...
pokombinuj z instrukcjami high i low
Temperaturę odczytaną z ds'a formatuję i wrzucam do zmiennej string poleceniem FUSING, np: Temp = Fusing(t1 , "#.#") gdzie Temp to string, a t1 to zmienna single z odczytaną temperaturą. Następnie mam kilka warunków if..then gdzie zmienna Temp jest uzupełniana znakami (np. spacji), tak aby fragment łańcuch z pojedynczą temperaturą miał zawsze tą samą...
Nawet nie tyle nie jest liczbą binarną, co zmienne o typie zmiennopozycyjnym są zapisywane w postaci mantysy i wykładnika. A że mantysa ma skończoną długość to pewnych wartości nie da się dokładnie przechować. Typowo taka zmienna ma 32 bity, stąd można przechowywać 2^32 różnych liczb, jako, że single ma pewnie coś koło +/-10^38 to dostrzegasz problem?
:) witam Po pierwsze nie mozesz do PWM do dac 2.55 poniewaz PWM dziala na liczbach typu integer, czyli calkowitych :) i nie wiem czemu sie dziwisz ze Ci wyswietla 85, prosta operacja matematyczna :) 255/2.55, procesor robi zaokraglenie 2.55 do 3, 255/3 daje Ci 85... Tak samo dodawanie wartosci 2.55 zakonczy sie rezultatem dodawania 3-ki. mozesz to sobie...
(...) osobnym PinX i oczekuj na stan niski ADCx2 aż do spełnienia tego warunku. Jeśli na ADCx2 napięcia równe 0 mrugnij diodą Led1 jeden raz przez 300ms, wyłącz Przekaźnik1 na PinX Po czym wróć do góry procedury, do oczekiwania na napięcie na ADCx1 To właściwie tyle. Dziękuję za uwagę i wszelaką pomoc. Witam serdecznie na forum! Chętnie pomogę Ci przygotować...
Moze zmien algorytm tych obliczen. Wydaje mi ze ze jak po "Do" zrobisz od razu: [syntax=basic4gl]For Cykl = 1 To Y Z = ( Cykl * X ) \ Y Prc = ( 100* Cykl ) \ Y Call Oblicz Next Cykl[/syntax] to bedziesz mial co potrzebujesz i to bez uzywania single Nie znam dobrze Bascom, wiec jak nie mozna robic tylu operacji w jednej linii to dodaj zmienna pomocnicza...
zapis writeeeprom zmienna , adres odczyt readeeprom zmienna , adres Musisz pamiętać ile bajtów zajmuje zmienna którą zapisujesz i o taką wartość zwiększyć adres przy zapisie / odczycie następnej zmiennej Jeśli zmienne typu Byte , adres zwiększasz o 1 Jeśli zmienne typu Word , adres zwiększasz o 2 Jeśli zmienne typu Integer , adres zwiększasz o 2 Jeśli...
Ja bym zrobił to tak mam zmienną "a" typu single np potem dziele ją przez 10 a = a / 10 potem przepisuje ją do zmiennej typu np integer np "b" , ktora to automatycznie odcina, zostawia mi tylko liczby całkowite a potem znów mogę ją przepisać do a lub innej a = b zienną typu single można by potraktować tylko jako pomocniczą do obliczeń ale są zapewne...
Jest to kod z Pana Wiązani być może nieudolnie przerobiony. Oryginał ma tak: Dim licz_8ms As Byte Incr Licz_8ms If Licz_8ms = 125 Then ............. I to działa, czyli ja nie mogę używać liczby stałoprzecinkowej . No dokładnie. To działa tylko dla Byte (i podobnych). Chociaż typ danych Single mówi, iz może przyjmować wartości stało i zmiennoprzcinkowe....
'Działa od 30rpm do 300000rpm $regfile = "m8def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5 Config Timer1 = Timer , Prescale = 64 Config Int0 = Rising Dim Flaga As Byte Dim Text As String * 10 Dim Wynik As Single Dim Zmienna As...
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...
...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...
Jeżeli to ma nic nie robić tylko generować impulsy, to po prostu może użyj Waitms. A jeżeli nie, zmieniaj wartość porównania w zależności od dodatkowej zmiennej. Np: $regfile = "m16def.dat" $crystal = 16000000 Dim A As Word 'Zmienna zwiększana i porównywana. Dim B As Byte 'Zmienna decydująca z jaką wartością będzie porównywana zmienna A. Config...
Działa elegancko. Żeby było wiarygodnie to nawet wygrzebałem Ardu Leonardo z m32u4 na pokładzie. Na jedną rzecz bym jeszcze uważał. Twój kod nie jest w żaden sposób synchronizowany. Może się kiedyś zdarzyć, że jedna z wiadomości nie dojdzie. Z nie będzie miało wartości 3 i przy nastepnej wiadomości procesor zacznie przypisywać wartości innych zmiennych...
...Gdy z terminala wysyłam 2 to procek zwraca mi 50 gdy 1 to 49 gdy 3 to 51 itd Pewnie gdyby a była single to by było O.K. "Kłaniają się" typy zmiennych. Kiedy do terminala wpiszesz 2 , to po łączu szeregowym do uC , jest wysyłany kod ASCII cyfry 2 , czyli dziesiętnie 50.Instrukcja print , "przetwarza" owe 50 na ciąg znaków ASCII reprezentujących liczbę...
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"...
Przetestuj ten. Tak go poopisywałem, że aż mi się nie podoba :D [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 $hwstack = 40 $swstack = 16 $framesize = 32 '# wyświetlacz Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5 Cls '# timer ' 8000000Hz(8MHz)/256(Prescaler)=...
Po pierwsze, jest zmienna o nazwie "swr" oraz próba deklaracji podprogramu o tej samej nazwie. Najprościej zmienić nazwę podprogramu na inną. Taki kod mi się skompilował: [syntax=vbnet] '---------------------------------------... ' SWR-Meter DL8UA '---------------------------------------... $regfile = "m8def.dat" $crystal...
Policzyłem dla AVCC, to jednak nieważne. Zobacz jak korzystać z symulatora w takich sytuacjach. Zmieniłem trochę Twój kod (miał też błąd w obsłudze przerwania bo zaraz pod Select case miałeś ustawianie portów bez żadnego Case. Przeniosłem więc tę linię powyżej Select Case) Wracając do symulatora to każdy ruch suwaka w symulatorze powoduje teraz printowanie...
[syntax=basic4gl] $crystal = 4000000 Config Portb = &B11111111 Portb = &B11111111 Config Portd = &B1111100 Portd = &B1111111 Config Timer0 = Timer , Prescale = 64 Enable Timer0 Enable Interrupts On Timer0 Co1ms Dim Liczba As Single Dim Ktorywysw As Bit Dim Lol As Byte Dim Jednostki As Byte Dim Dziesiatki As Byte Dim Pomoc As Bit Dim Aaa As Word Dim...
"DataChart" Jeszcze nie zaglądałem do załącznika, ale dlaczego właściwie w "Sheets("DataChart")" usuwasz dane tylko z jednej kolumny ".Columns(1)" skoro końcówka kodu sugeruje, że może ich być więcej (?) - zmienna "counter": Dodano po 1 Dane kopiuję z pliku sam do arkusza, zapisywane są w pliku tekstowym na karcie SD na mierniku. Nie importuje calego...
Witam. .............. Program testowy ma działać tak, na początku na sekundę wyświetla 36 na wyświetlaczach (i to zawsze się dzieje), później ma liczyć od 00 do 99, i tak w kółko. Pozdrawiam Zmieniłem trochę twój code. -Nie testowany.... (tylko symulator)........ [code][syntax=basic4gl] ' Example for 2 digit LCD display (Common Anode) ' Anodes are...
(at)majsterxxl A próbowałeś konfiguracje wysłać tak jak to jest w instrukcji czyli pierwszy bajt z D/C=0 a kolejne z DC=1. Napisz z palca taka inicjalizacje bez funkcji. (D/C# = 0, R/W#(WR#)= 0, E(RD#) = 1) unless specific setting is stated Single byte command (D/C# = 0), Multiple byte command (D/C# = 0 for first byte, D/C# = 1 for other bytes) Obecnie...
Eksperymenty związane z EKG Od dawna uważałem za interesujące rozważania o własnych systemach EKG. Szczególnie interesują mnie rozwiązania niedrogie i łatwe w konfiguracji. W tym artykule przedstawiono kilka sposobów wykorzystania tej techniki. Ale najpierw coś podstawowego: Ze względu na bezpośredni kontakt elektrod EKG z ciałem, wszystkie elementy...
Main data Parameter Value Title Clio IV BHMG Flame red VIN VF15R0G0H50936437 Model Clio IV Model type BHMG Date of manufacture 06 2014 Vehicle fabrication number R358587 Equipment level EA2 Additional to equipment level SAN913 Additional to Limited Edition SAN513 Paint code OV460 Seat trim Velour Interior trim HARM01 Country of application of technical...
... Czyli zmienna single będzie wygladać tak: 0001 1001 0001 = 191H nieznaczące zera pominąłem Nie kolego , zmienna SINGLE będzie wyglądała tak ;) 0 10000111 10010001000000000000000 Cały Twój wywód miałby rację bytu , gdyby zmienna była INTEGER lub WORD , ale jeśli chodzi o SINGLE , to po szczegóły odsyłam tu: http://pl.wikipedia.org/wiki/Liczba_zmie...
Witam, Proszę o podpowiedź jak zapisać zmienną typu single, konkretnie wartość np. 1.23458 do komórek pamięci eeprom. Chodzi o zapis w Bascomie. Jeżeli wpiszę dim zmienna as single zmienna= 1.23458 Writeeeprom zmienna , 1 to przy odczycie Readeeprom zmienna , 1 na lcd ukazuje się 1.234580037
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.
Witam ! Mam problem z wyswietleniem zmiennej single na wyswietlaczu LCD 2*16. Wszystkie inne wyswietlają sie bez problemu a jak wstawie zmienna single zeby wyswietlil to wyswietlacz przestaje wyswietlac, czyli ni widu nic :( Mial ktos taki problem ??? Pozdrawiam
to tak jak byś chciał włożyć słonia do pudełka pa zapałkach. zmienna single to 4 bajty a byte to 1 bajt czyli 8 bitów wiec jeżeli wartosc zawarta w single jest nie wieksza niż 255 to da się to zrobić ale jeżeli jest w niej np. 100000 to nie da rady
Czy tak jest poprawnie : [syntax=basic4gl] ' pulses zmienna word Vol = Pulses ' vol zmienna single Shift Vol , Left , 8 Vol = Vol + Counter0 Vol = Vol / Przep ' zmienna przepływówki zczutana z eeprom 250 i mozliwosć zmiany przez menu B = Vol ' b zmienna single C = B * Cena 'cena 1.36 zmiana przez menu W = B * Waga 'waga 1.36 zmiana przez menu ' wiem...
W takim razie... Zadeklarowalem zmienna single jako ERAM i druga jako zwykly single Dim a As Eram Single Dim b As Single Odpalam pierwszy program a=5 Potem drugi b=a I nic... Dostaje zero
http://obrazki.elektroda.pl/6151182100_1... Witam wszystkich, zapewne większość forumowiczów ceni sobie prywatność, a może nawet ma młodsze rodzeństwo które niczym siostra Dextera sieje spustoszenie w jego wynalazkach i za nic ma wszelkie zakazy grzebania w nie swoich rzeczach. Tak właśnie zrodził się pomysł stworzenia prostego zabezpieczenia...
Zmienna typu SINGLE i komenda FUSING.
w przerwaniu operuje na zmiennych typu byte ktore są kolejnymi wskaźnikami do adresu zmiennej typu single czyli odbieram 4 bajty i zapisuje je odpowiednio do 4 zmiennych typu byte: Bajt1=odbior Bajt2=odbior bajt3=odbior bajt4=odbior i w ten sposób Zmienna single juz ma wartosc taka jaka powinna ;) wczesniej mają one odpowiednie deklaracje
To wiemy Ty i ja, oraz inni, ale czy wie o tym tomaszdko ? Ta informacja jest umieszczona w pomocy do programu i łatwo ją znaleźć. Niestety jeżeli nie zna choćby podstaw Asemblera nie będzie wiedział do jakich rejestrów została zapisana zmienna Single. Przykład z modyfikacją zmiennej typu Single w przerwaniu to akurat bardzo zły przykład. I to nie...
Nie wystarczy po prostu zadeklarować zmienna jako single ? Z mojego doświadczenia wynika że można i ze to bez problemu działa i że wystarczy polecenie zmienna = wartość żeby zapisać i tak samo odczytać przez proste wskazanie zmiennej - nie ma potrzeby zawracania sobie głowy adresem - to tylko bascom ;)
https://obrazki.elektroda.pl/3452723900_... Witajcie, dzisiaj przedstawię tu już drugą frytkownicę z WiFi na Elektrodzie. Rok temu pokazywałem Zakup BW-AF1 Produkt kupowałem już jakoś rok temu, więc nie pamiętam dokładnie jak to z tym było, ale kupiłem go w promocji z kuponem, nie zapłaciłem więcej niż 300 zł. Teraz jest on znacznie...
Kolego o czym ty piszesz ADC jest 10bit , zwraca liczbę od 0 do 1023 , można go taktować częstotliwością od 50 do 200khz Następny problem to : czas przetwarzania nie jest stały (od 125 do 520 ms) i zależy od przetwarzanej wielkości analogowej. Następny problem to prąd po wyprostowaniu są moment gdy przechodzi przez zero i to jest na dodatek zmienna...
Wygląda na to że któraś zmienna String jest za krótka i nadpisuje String Pwej. Uruchom w symulatorze ten programik to zrozumiesz o co mi chodzi :). [syntax=basic4gl]$regfile = "m88pdef.dat" $crystal = 20000000 $baud = 19200 $hwstack = 32 $swstack = 32 $framesize = 32 Dim Wynik As Single , S As String * 2 , D As String * 5 Wynik = 10.123456 S = Fusing(wynik...
bascom zmienna single zmienna single eeprom single bascom
moduł komfortu mazda silnik mahle slican systemowy
Co to jest zariad? Wyjaśnienie terminu w elektronice Brak ikony odbioru sygnału na telefonie Motorola