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...
Jeśli dalej używasz choćby jednej zmiennej typu Bit to nadal pomysł jest aktualny bo bitów zawsze jest osiem. Jeśli nie, to mozna wygospodarować jedną zmienną typu Byte, ale że Tiny13 to bardzo wymagający uC i mozesz już nie mieć więcej miejsca na Byte to możesz pojechac po bandzie i do przechowywania wartości wykorzystać jakiś nieużywany rejestr :D...
Chwile mnie nie było :D Napisałbym to inaczej, ale wracając do pytania z pierwszego postu . Jeśli chcesz by procesor zawsze był tak samo zajęty to każ mu w tych innych Case`ach także nadawać Pulseout tylko na pin Reset. Bascom to przełknie bo ten pin może pracować jako normalny I/O ale jak jest resetem to nic mu się nie stanie jak napiszesz Pulseout...
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
Do komunikacji z układem można wykorzystać instrukcje I2csend i I2creceive , po wykonaniu w zmiennej Err jest kod błędu: [syntax=basic4gl]I2csend 112 , &B00010000 ' I2csend adres układu, wartość I2creceive 113 , Zmienna ' I2creceive adres układu, zmienna[/syntax]
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...
Nie typ SINGLE a LONG ! Dodatkowo nie definiuj sztywno adresu bo to może być źródłem późniejszych problemów. Tak będzie poprawnie i najbardziej optymalnie ze wszystkich możliwych sposobów: Dim Zmienna As Long Dim Zm1 As Byte At Zmienna Overlay Dim Zm2 As Byte At Zmienna + 1 Overlay Dim Zm3 As Byte At Zmienna + 2 Overlay Który bajt to który i dlaczego...
To wiele wyjaśnia. Spróbuj tak ;) [syntax=vbnet]$regfile = "m8def.dat" $crystal = 8000000 $hwstack = 64 $swstack = 16 $framesize = 64 $baud = 9600 Config Lcd = 16x2 Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.6 , Db7 = Portb.0 , E = Portb.4 , Rs = Portb.5 Cursor Off : Cls Dim K1 As Byte Dim K2 As String * 20 Dim Id As String *...
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.
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...
Można to zrobić w bardzo prosty sposób: Komenda GETRC Przeznaczenie: Określa wartość zmiany rezystancji lub pojemności. Składnia: zmienna = GETRC( port , numer ) gdzie: zmiennazmienna typu Word w której znajdzie się wynik pomiaru, portnazwa portu procesora, np.: PIND, numernumer końcówki do której podpięty został obwód RC. Schemat: pinx ----[fotorezystor]------|...
Albo z drugiej strony: wprowadzasz dodatkową zmienną przechowującą wartość aktualnego czasu w minutach (niestety potrzebna będzie zmienna typu word), podobnie czas załączenia - oczywiście przeliczanie to tylko x = Godz * 60 x = x + Min Pozostaje jedynie porównać obie zmienne.
Wystarczy sprawdzić czy funkcja Getatkbd() zwraca 0 wtedy żaden klawisz nie jest naciśnięty. Warunek można więc skonstruować tak, że gdy zmienna do której zwracana jest wartość funkcji Getatkbd() jest większa od zera to robimy obsługę klawiatury, a jeśli nie program normalnie kręci się w pętli. Wciąż nie rozumiem czemu tak uparcie chcesz do tego wykorzystywać...
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...
...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...
Przetwonnik zlicza napięcia tylko do 2047, pokazując ujemne napięcie nie ma znaku minus i wartość, tylko np 65320. Czyli przetwornik zwraca wyniki w kodzie U2. Tam nie ma znaku minus. Jest za to przesunięcie poziomu. Najprościej mówiąc, zastosowanie takiej funkcji do konwersji: Napiecie = Zmierz1 * 256 Napiecie = Napiecie + Zmierz2 da Ci złe wyniki....
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...
Witam. Na początek napiszę że to ma być mój pierwszy program napisany w tym języku i pierwszy kontakt z mikrokontrolerami. Nie mam pomysłu jak się zabrać za uruchomienie jakiegoś "zegara". Wydaje mi się że wtrącenie w pytaniu „jakiegoś zegara” wprowadza ludzi w błąd. Z dalszej części wynika że raczej potrzebujesz obsługi TIMERA wbudowanego...
1. Bascom jest bardzo dobrym językiem, znacznie lepszym niż Arduino. 2. "a:10.0" "a:10.0 " ":10" "10 " Ten temat jest zamknięty, dostałeś 2 przykłady. Pierwszy napisałem do składni ramki jaką podałeś w pierwszym poście, później zmieniłeś konstrukcję rami to napisałem kolejny przykład, można jak dobrze naliczyłem jeszcze 9 innych metod zastosować by...
Witam Sprawa prosta. Rozwiązać problem można na kilka sposobów. Ja robiłem tablicę 16-to elementową i w pętli z każdym zboczem sygnału zegarowego wpisywałem wartość do tablicy. Po odczytaniu 16 bitów czytałem te komórki, które mnie interesowały i sumowałem wynik z odpowiednimi wagami bitów. Poglądowy program poniżej. Config Pinx.x : Clk alias Portx.x...
Pozwolę sobie umieścić post pod postem żeby wiadomość dotarła do zainteresowanego. Jeszcze lepszym wyjściem dla takiego zegara będzie zastosowanie dedykowanego rezonatorka 32768Hz (32,768KHz) Wartość 32768 to w zapisie binarnym dokładnie piętnaście bitów. Jeśli więc Timer będzie zliczał generowane impulsy to po 32768 uzna że mineła sekunda :D Bascom...
Zrobiłem jak pisał Driver, odłączyłem wejście sygnału do LM7001 i podłączyłem sterowanie nap. warikapów przez potencjometr. Przy ok.2,2V miałem f=132MHz a przy ok.7,2 f=136MHz to by było z zapasem dla odbioru i ok.11,5 f=146. Ponownie podłączyłem zgodnie ze schematem, nie zaskoczyła... Myślę że podanie częstotliwości ze skanera nie ma co sprawdzać,...
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)=...
(...) żdy zasilany z osobnego źródła i odseparowany transoptorami PC817. Ze względu na ich szybkość oraz niską wartość prądów je sterujących 1mA zegar musi być obniżony do 10KHz ma. Chcę zrezygnować z polecenia: waitus 100 w zamian zrealizować to w obsłudze timer0 a w główną pętle przeznaczyć na inne cele. Rozumiem, że chcesz optymalizować swoje oprogramowanie...
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 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 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
Dziwna sprawa w Bascomie: konfiguruję PORTB jako Output i deklaruję dwie zmienne Bajt typu Byte i MBit jako bit i...: To NIE działa - nie zmienia 3-ciego bitu w porcie B - dioda cały czas świeci Bajt.3 = Mbit POTRB = Bajt A to DZIAŁA if MBit = 1 then Set Bajt.3 else Reset Bajt.3 POTRB = Bajt DZIWNE..... robiw
Witajcie. Niestety przeszukałem już całe forum nie znalazłem podpowiedzi jak rozwiązać mój problem. Panowie mam taki kod [syntax=basic4gl]$regfile = "m128def.dat" ' specify the used micro $crystal = 16000000 ' used crystal frequency $hwstack = 32 $swstack = 32 $framesize = 32 $sim Dim Z_rs_str As String * 64 Dim Kolor_temp As Byte Dim Kolor_hex As String...
witam napisałem taki banalny program: [syntax=basic4gl]Do If Up = 0 Then Waitms 50 If Up = 1 Then A = A + 5 End If End If If Down = 0 Then Waitms 50 If Up = 1 Then A = A - 5 End If End If Pwm1a = A Locate 1 , 1 Lcd ; A; Loop End [/syntax] zmienna A wyświetlana jest na lcd jako podgląd. up i down to przyciski. już na wiele sposobów próbowałem jak zrobić...
Cześć, Przedstawiam problem: w poniższym programie, gdy nastąpi 2razy przerwanie INT0, to zmienna limit bedzie wynosić 400. Jeżeli zmienna minuty dojdzie do 400 powinno się zatrzymać. Jednak zmienna Minuty dochodzi tylko do 255 tak jakby była zadeklarowana jako Byte, a nie jako Long. Dlaczego? Zmienna Sekundy jeżeli się przestawi z 2 na mp 400 liczy...
Witam, mam do Państwa pytanie czy w bascomie jest może jakiś rodzaj funkcji zwracający wartość tekstową liczby do prezentacji na wyświetlaczu w postaci naukowej np. 0,0025 jako 2,5 E-3
Witam wszystkich. Mam pytanie do bascomowców a może nie tylko. Chodzi o to w jaki możliwie najprostszy sposób wpisać do zmiennej wartość wprowadzaną z klawiatury numerycznej. Chodzi o to aby można było wprowadzić do zmiennej w programie wartość z przedziału np.0-9999, tak aby wpisując cyfry po kolei np.1,2,3 zmienna przyjmuje wartość 123 itd. Jesli...
BASCOM, mam taki warunek: [syntax=basic4gl] If V > Prog(1) And V <= Prog(2) Then Gosub Aku_0 ; End If [/syntax] chciałem w ten warunek wstawić dodatkowe dodawanie bo taka jest potrzeba [syntax=basic4gl] If V > (Prog(1)+5) And V <= Prog(2) Then Gosub Aku_0 ; End If [/syntax] ale wywala błąd ERROR 35 3 parameters expected..... jak można temu...
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??
1Hz to raz na sekundę. 8MHz to osiem milionów razy na sekundę. Sekunda jest tu kluczowa. W ciągu sekundy procesor taktowany 8MHz przetworzy około 8mln instrukcji (pomijam te które wymagają dwóch taktow) no a jak podłączysz do procesora taktowanie 16MHz to odwali dwa razy tyle roboty w ciągu sekundy . Zerknąłem na twoje kody i mam kilka rad. W Bascom...
Witam. Jest jakiś prosty sposób na odwrócenie wartości zmiennej typu byte? Czyli jeśli zmienna ma wartość 255 to dostajemy 0, jeśli 254 to 1, 253, to 2 itd. Chodzi o odwrócenie działania jednego z kanałów DMX512 w urządzeniu.
A jakiego typu jest ta zmienna "Zmienna" ?
Rozumiem ze 9 to kolejna cyfra od której zaczyna sprawdzać a 2 to ilość znaków. Jeżeli informacje lecą w HEX to muszę przerobić na wersje bitową ? Nie wiem jak to opisać..... Jak bascom poda zmienna z TTL "string_uart" HEX, BYTE ?
Witam Buduję sobie zasilacz regulowany na moje potrzeby do zabawy elektroniką. Wymyśliłem sobie, że nastawę napięcia wyjściowego zrobię za pomocą enkodera. Na wyświetlaczu mam pokazane napięcie początkowe np.: 0,000V Czyli w kodzie będzie to zmienna String Teraz chcę każdą z tych cyfr z osobna zmienić, tzn ich wartość od 0 do 9. Chodzi mi o ustawianie...
Zacznijmy od tego, że zmienna A jest typu byte, więc przyjmuje w Bascomie wartość 0..255. Odpowiedzi C, D, E możesz z góry wykluczyć.
Wykorzystaj funkcję Toggle. Jeśli zmienna nazywa się np. A to zapis Toggle A.3 zmieni na wartość przeciwną tylko bit 4 tej zmiennej
W tym miejscu należy podać zmienną i wartość do jakiej ma startować na nie przypisać zmienna do tej samej zmiennej.
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...
Czołem! Zmotałam sobie na szybko czujnik, który "uczy" się pierwotnego poziomu oświetlenia, a później pilnuje przekroczenia progu i niby wszystko OK. (LCD jest do testów, nie będzie go tam) [syntax=vbnet] $regfile = "m328pdef.dat" $crystal = 8000000 $hwstack=32 $swstack = 16 $framesize = 40 Set Portc.0 Declare Sub Kalibracja Config Portb.0 = Output...
no ok, ale jeżeli zmienna Mnożnik_vład_2 ma wartość 0,01760 to po przypisaniu Mnożnik_vład = Val(mnożnik_vład_2) , zmienna Mnożnik_vład ma wartość 0,017599937 a żeby ją skrócić trzeba użyć instrukcji fusing nie może być jako single i koło się zamyka.
Wszystkie próby oprócz tej teraz ostatniej były z wynikiem 255. Próby robię w symulatorze Proteus. Poniżej przebieg na oscyloskopie. MISO jest ciągle na poziomie 5V, natomiast master nadaje rzeczywiście zmienną. Tu może tego nie widać, bo zmienna = 0, ale jak dam jakąś inną wartość to przebieg się ładnie zmienia na MOSI. MASTER: http://obrazki.elektroda.pl/8697078900_1...
Witam, da się jakoś sprawdzić czas trwania wartości zmiennej? Chodzi mi konkretnie o to że mamy jakąś zmienną powiedzmy I=8 jeśli zmienna ta nie przekroczy wartości 8 przez 3 sekundy wykonuje się podprogram poprzez polecenie Gosub hamować
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...
...Dlatego zastanawiam się dlaczego aplikacja nie odbiera danej wysłanej z urządznia, i ewentualnie co się dzieje po drodze. Bascomowa Print , zamienia wartość binarną zmiennej , na ciąg znaków w kodzie ASCII , reprezentujących tę liczbę. Np. Bascom -> zmienna=1002 -> Print zmienna po RS-sie "leci" kolejno 49,48,48,50,10,13 Jeśli korzystasz z jakiegoś...
Coś enigmatycznie i mało przejrzyście to tłumaczysz napisz jakio rozmiar ma zmienna i co ma zrobić . Jeśli chcesz żeby robiła operacje na porcie możesz to osiągnąć przez wybór typu"case" lub zmienna tablicową czyli w zależności od pobranej zmiennej wybierasz wartość z tablicy i wysyłasz ją na port
czy tak trudno zerknąć do helpa PWM1A = wartość zmienna = PWM1Aalias rejestru Compare 1A licznika TIMER1 (Word) używany gdy licznik pracuje w trybie PWM PWM1B = wartość zmienna = PWM1Balias rejestru Compare 1B licznika TIMER1 (Word) używany gdy licznik pracuje w trybie PWM PWM2 = wartość zmienna = PWM2rejestr Compare 2 licznika TIMER2...
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 ;)
Nie zmienia, bo masz błąd w innym miejscu. Dokładnie to miałem na myśli-że błąd jest gdzieś indziej. Zastanów się, co oznacza nazwa trybu CTC (?) – w ang. jest to ‘Clear Timer on Compare’ (pol. - wyzeruj zawartość licznika/timera, gdy jego zawartość jest równa wyznaczonej z góry i ustalonej, bądź to wyliczonej jakiejś wartości w zmiennej...
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
Ok no to powiedzmy że jest zmienna która ma wartość np.4401250 jak ją przekształcić w hex &H34 &H34 &H30 &H31 &H32 &H35 &H30 bo takie coś musze wysłać na wyświetlacz.
Hmm. Głośno myśląc kombinowałbym tak: Zadeklarowałbym zmienną Double (osiem bajtów) pod określonym adresem w pamięci za pomocą Dim...As...At... Zmiennej tej nadałbym jednym ruchem wartość odpowiadającą poszczególnym bajtom "teoretycznej tablicy" - Zmienna = &HABCDE Dostęp do poszczególnych elementów uzyskałbym przez zmienna bitowa = INP(adres). Nigdy...
Problem migania powoduje to, że dwa razy po rząd używasz LOCATE 1,1 – najpierw wysyłasz na tą pozycję spację, potem zmienną, a potem kolejny cykl: spacja, zmienna itd. – to jest właśnie mruganie ;-) Co to znaczy "znacznie ciemniej jest wyświetlane" :?:
W programie masz coś takiego: [syntax=basic4gl]If Licznik >= 5 Then If I < 255 Then Incr J If J = 2 Then Incr I J = 0 End If Else I = 255 End If End If[/syntax] a teraz zastanów się co ma biedny procesor zrobić jak zmienna I osiągnie wartość 255? Wtedy będziesz ciągle wpisywać w tą zmienną wartość 255 - i tak w nieskonczoność.
http://obrazki.elektroda.net/7_123635472... Prawie rok temu, zainspirowany konstrukcją pana Kamila Przychodzenia http://obrazki.elektroda.net/18_12363549... http://obrazki.elektroda.net/82_12363551... Płytka sterownika oraz płytka organizacji połączeń http://obrazki.elektroda.net/62_12363543... http://obrazki.elektroda.net/80_12363591...
Może mały przykład $baud=9600 Open "COM1:" For Binary As #1 Open "comd.1:19200,8,n,1" For Output As #2 Open "comd.2:19200,8,n,1" For Input As #3 Print #1, "ABC"'literki ABC powędrują na pierwszy kanał, czyli na sprzętowy uart działający z prędkością 9600 Intput #1, zmienna 'zostanie pobrana wartość...
resetować wartość zmienna bascom zmienna bascom bascom zmienna
słabo ciągnie odkurzacz alternator xsara odblokowanie oglądanie filmów
pompa ciepła daikin pompa ciepla
Program C++: Tablica 50 liczb i liczby parzyste Jak zmniejszyć emisję CO w Daewoo Lanos?