Integer to nie jest zmienna tekstowa. Sprawdź w helpie jaki zakres ma ten typ zmiennej.
Użyj funkcji VAL. var = VAL( s). s to string, a var to liczba.
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...
Dlaczego pokazuje -1 na wyświetlaczu a nie np 255 jak jest dla zmiennej typu Byte. Bo Integer to zmienna ze znakiem, FFFF to właśnie -1. Byte jest zmienną bez znaku (zawsze dodatnią). Dwubajtowa zmienna bez znaku to w Baskomie "Word". Na wyświetlaczu po resecie będzie wówczas 65535. 2. Czy taki zapis eeprom będzie poprawny przy pierwszym sprawdzeniu...
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...
W sumie można, lecz autor chciał mieć format byte, domyślam się że potrzebne to mu było do wyświetlania liczby na wyświetlaczach siedmiosegmentowych. Jeżeli tak, to Ciekawy jestem czy autor korzysta z lini Data i instrukcji lookup(), czy może z select case?
jeśli nasz zmienną typu integer to zmienne obliczjące cyfry też zmień na integer
MUSISZ zmienić na: [syntax=vbnet]Dim R As Byte Dim G As Byte Dim B As Byte[/syntax] Przepraszam bardzo, praktycznie już zapomniałem języka Bascom :(. Lecz jeśli tylko będę mógł udzielić pomocy, postaram się to zrobić.
wszystkie zmienne (te do wyświetlacza[setki,dziesiatki,jednosci] i ta wyświetlana liczba) powinny być tego samego typu np word lub integer Dim Setki As word Dim Dziesiatki As word Dim Jednosci As word Dim Wart As Word
Kolego mikroprocesor jest na tyle szybki że jak ty naciśniesz przycisk to on zdąży kilka razy zwiększyć zmienną A. Spróbuj w pętli ustawień wstawić jakieś opóźnienie np. 1 sekundę. Zobacz jak się zmieni działanie programu. Nie masz tez ograniczonej zmiennej A. Trzymając przycisk możesz sobie zmieną A zwiększyć lub zmiejszac że może przyjąć wartości...
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.
Mozna to zrobic tak : Wszystkie zmienne musza byc tego samego typu czyli integer zmienna początkowa to "liczba" tysiac= liczba/1000' wyswietlanie tysiecy sto = liczba Mod 1000 sto = sto / 100' wyswietlanie setek dziesiec = liczba Mod 100 dziesiec = dziesiec / 10' wyswietlanie dziesiatek jeden = liczba Mod 10 ' wyswietlanie jednosci
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...
nie wiem po co ci takie cos.... ja bym zrobil tablice dim tablica(16) as integer tablica(1)=11 'to co ma sie pojawic zamiast 1 tablica(2)=22 tablica(3)=33 B = Getkbd() a wywolywac np.tablica(B) i przypisywac do C. no nie wiem,chyba tak ... pozdrawiam
Config Timer1 = Pwm , Pwm = 10 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Up 'Config Timer0 = Pwm , Prescale = 1 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down Start Timer1 Dim I As Integer Config Portb = 8 Do for i = 0 to 1023 pwm1a = i waitms 10 next for i = 1023 to 0 step -1 pwm1a = i waitms 10 next Loop End Pozdrawiam
Poprawiłem trochę składnię $crystal = 1000000 $regfile "attiny2313.dat" Dim Bylo As Integer If Portd.6 = 1 And Bylo = 0 Then Bylo = Portd.6 Wait 5 Set Portd.7 Else If Portd.6 = 0 And Bylo = 1 Then Bylo = Portd.6 Wait 5 Reset Portd.7 End If End If Zalecam jednak poczytać help od Bascoma, za nim zaczniesz pisać programy. Pzdr.
Moja mowa będzie krótka ... Dim Zm As String * 10 , X As Integer X = 2000 'dec X=2000 , hex X=7D0 Zm = Str(x) ' Zm="2000" X = Hexval(zm) 'dec X=8192 hex X=2000 Czy o to Ci chodzi :?: Piotrek PS Ale uważaj , bo dla dec X>7999 wyjdą cuda :D
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....
co do delphi nie mam pojęcia jak to zrobić co do bascoma jeżeli to ma odbierac zmienną typu integer to po prostu baud =9600 'DIM B1 as Byte zmienne b1-b4 będą niepotrzebnie zajmować pamięć 'DIM B2 as Byte 'DIM B3 as Byte 'DIM B4 as Byte dim Licz as long Jeżeli to ma odbierać zmienną LONG to po prostu inputbin licz co do delphi to radze zajrzeć tutaj...
Może być np tak: $regfile = "m8def.dat" Config Portd = Output Portd = &B00000000 Dim D As Integer , D1 As Byte D = 0 D1 = 0 Do If D = 0 Then Portd = &B00000000 If D = 1 Then Portd = &B00000001 If D = 2 Then Portd = &B00000011 If D = 3 Then Portd = &B00000111 If D = 4 Then Portd = &B00001111 If D = 5 Then Portd = &B00011111 If D = 6 Then Portd...
Proponuje dodać dodatkową zmienną pomocniczą której zadaniem będzie pamiętanie że program zaczął działać nie jestem pewien tego rozwiązania z bascomem miałem doczynienia dość dawno temu ale możesz spróbować tego $regfile = "attiny25.dat" $crystal = 4000000 Config Portb.3 = Output 'przekażnik Config Portb.2 = Input 'włącznik typu microswitch...
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...
Ja bym wyszukiwanie zrobił tak Dim Ids(64) as Byte 'Maksymalna liczba czujników * 8 Dim I as Byte Dim J as Byte Dim L as Byte Dim Count as Byte Dim TempCount as Byte ' Wyszukiwanie Count = 0 TempCount = 1wirecount() If TempCount > 0 Then I = 1 J = I + 7 Ids(1) = 1wsearchfirst() Do If Ids(J) = Crc8(Ids(i),...
Napisane na szybko nie sprawdzałem ale chyba powinno działać. [syntax=basic4gl] $regfile = "m8def.DAT" 'deklaracja procesora, w tym wypadku Atmega8 $crystal = 1000000 'deklaracja cześtotlwiości pracy (wew oscylator 1MHz w zupełności wystarcza) '*************************************WA... 'Pamiętać o podłączeniu...
Toż Ci piszę, że tablice wielowymiarowe to abstrakcja - i tak są mapowane do tablic 1W (wektorów). Wektor o długości 16 elementów, możesz równie dobrze traktować jako tablicę 2W o wymiarach 4 x 4 - wzór na przeliczenie indeksów 2W na 1W podałem w poprzednim poście. Dim Tablica(16) As Byte Dim X As Byte Dim Y As Byte Dim N As Byte Dim I As Integer...
Musisz wiedzieć że ADC Atmegi ma 10Bit czyli w uproszczeniu skalę do 1023 Kiedy jako napięcie odniesienia dla ADC użyjesz napięcia zasilania procesora (AVCC) to dokładność pomiaru wynosi : 5V/1024 czyli -> 5000mV/1024 = 4,88mV na jedna podziałkę ADC. Nie napisałeś jaki masz ACS a wystepują w wersjach 5A, 20A i 30A Zakładając że masz ten najczulszy 5A...
Witam, Mam pytanie... Jak zamienić zmienną Integer na Single w Bascom AVR?? Pytam, ponieważ muszę użyć funkcji: X = Fusing(ds1 , "#.##") a zmienna ds1 mam typu integer. Pozdrawiam A.
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...
Jeżeli przycisk miałby podciąganie to zawsze byłby w trybie gaszenia a po wciśnięciu i zwarciu do masy 0 czyli tryb rozjaśniania tu mi już coś nie pasuje! Dodano po 20 [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 16000000 Config Pinb.1 = Output Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Disconnect , Prescale =...
' Trzy przyciski kolejno .... (TSA ;) ' wersja bez przerwań i Timera czas_a as integer ' zmienna czasowa A czas_b as integer czas_c as integer we_a alias pinx.1 ' wejście A we_b alias pinx.2 we_c alias pinx.3 wy_a alias Py.1 ' wyjście A wy_b alias Py.2 wy_c alias Py.3 stan_a as bit ' stan układu monostabilnego A: 0 - czeka, 1- liczy stan_b...
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)=...
Pomyśl trochę nad "sprytem" kodu :D Chodzi mi o to że kiedy widzisz powtarzające się linijki kodu to powinieneś pomyśleć "czym one się różnią" i tylko te różnice napisać osobno a wszystkie powtarzające się sprawy napisać tylko raz. Po co tyle tych Locate 1,1 . Przeciez i tak i tak będziesz tę linijkę rysował od 1,1 zawsze, chyba że inaczej podejdziesz...
Z dwoma bajtami uC i Dallas w 5ms wyrobią się spokojnie. Problemem jest brak synchronizacji pomiędzy przerwaniami generowanymi przez Timer a funkcją Waitms. Ponieważ przerwanie występuje teraz co 5ms to można w nim ustawić flagę że własnie się zakończyło. Wtedy w pętli głównej możesz sobie spokojnie liczyć te flagi. 50x 5ms = 250ms co bardzo tu pasuje....
tak wygląda sam kod do odczytu predkośći "trochę nie ogarnięty sorki" [syntax=basic4gl] $regfile = "m16def.dat" 'wew rezonator $crystal = 8000000 'jest włączony wew rezonator $baud = 9600 'szybkosc ibusa Config Lcd = 16 * 2 'używany wyświetlacz i piny do jakich jest podłączony Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7...
Do konwersji łańcucha na zmienną numeryczną wykorzystaj funkcje VAL lub HEXVAL . Mając już adres zmiennej, możesz użyć instrukcje INP do pobrania wartości. [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 $hwstack = 80 $swstack = 80 $framesize = 80 Declare Sub Show_byte(byref Adres As String) Declare Sub Show_word(byref Adres As String) Declare...
Witam Jak wielu spotkałem się z problemem problemem kłopotliwej obsługi pilota z RC5. Po poszperaniu w necie wpadłem na http://www.elektroda.pl/rtvforum/topic20... ten temat. Jak się okazało wszystko na tym programie pracowało, ale nie zawsze. Kłopotem było napisanie programu "pod pilota". Oczywiście pochwała dla Sabotaz'a który problem "ruszył"...
a to program Dodano po 11 Mam problem z załącznikiem może teraz.:) Dodano po 6 plik się nie dodaje ?? wyślę tak : $regfile = "m8def.dat" $crystal = 11059200 '$baud = 9600 '$baud = 19200 $baud = 38400 Echo On '******** KONFIGURACJA WYŚWIETLACZA LCD ****************************************... Config Lcd = 20 * 4 ' Deklaracja...
Podejrzewam że problem jest z odbiorem danych z pilota. BASCOM i GETRC5 nie za bardzo sobie z tym radzi. No i czy masz na pewno pilota RC5? Dodano po 1 Zobacz to: [syntax=basic4gl] $regfile "m8def.dat" 'konfiguracja mikroprocesora $crystal = 4000000 'konfiguracja kwarcu Config Portb = &B11111111 Portb = &B11111111 Config Portc = &B1111101...
Prześledź to: (co zbyteczne, wyrzuć. Mega 8 daje radę) '-----------LCD for Nokia 3310 and Mega AVR-------------------------------------... ' 'Based on Louis Frigon program in C: "Nokia LCD Library" at www.microsyl.com 'and 'Darek Dobrowolski program in Bascom: "Wysterowanie wyświetlacza LCD LPH7779(Nokia 3310) przez ATmega128L...
Może nie umie wstawiać? $regfile = "m88def.dat" $crystal = 1000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.5 , Rs = Portb.4 Config Portd = &B00001111 'portd 0 1 2 3 jako wyjscia portd 4 jako 1wire 5 6 7 jako wejscia Portd.5 = 1 Portd.6 = 1 Portd.7 = 1 Portd.3 =...
Jest! Word nie, ale integer rozwiązał sprawę.
http://obrazki.elektroda.pl/3089511800_1... Witam, dziś prezentuje swój bezprzewodowy termometr pracujący na częstotliwości 433 MHz. Urządzenie składa się z nadajnika i odbiornika. Nadajnik odczytuje temperaturę pieca C.O. i wysyła ją do odbiornika. W odbiorniku mamy możliwość ustalenia górnego i dolnego progu załączenia alarmu, który...
https://obrazki.elektroda.pl/4706372500_... W poprzednich częściach pokazałem zasadę działania oraz uruchamianie pozyskanych wyświetlaczy (modułów) VFD. Teraz przyszła pora na zbudowanie własnego sterownika wraz z potrzebnym zasilaczem. • Zasilacz Ze względu na dość złożony sposób zasilania samego wyświetlacza postanowiłem zacząć...
http://obrazki.elektroda.pl/7139682100_1... Witajcie Wlasciwie jest to moj pierwszy temat na forum wiec prosze z gory o wyrozumialosc. Przepraszam rowniez, za brak polskich fontow, ale pomimo prob wielu nie ogarniam wiekszosci ogonkow z racji lokalizacji :/ Przyszly swieta, czas urlopu i odpoczynku... Niestety wraz ze swietami przybyla...
Lepiej zmień deklarację T As Word na T As Integer - zmieniono zobacz czy bit całkiem po lewej to jedynka. - Jest 1 Zmieniłem na bit 16 i error w tej linijce. Dim Tempw1 As Integer Dim Tempstr As String * 20
Ciekawe czy AI dało sobie radę; [syntax=vbnet]' === SSD1322 BASCOM mini-driver: Pixel, Line (ATmega, 4-wire SPI) === ' Pins (edit to your wiring) Config Portb.2 = Output ' CS# Config Portb.1 = Output ' D/C# Config Portb.0 = Output ' RES# Ssd1322_cs Alias Portb.2 Ssd1322_dc Alias Portb.1 Ssd1322_res Alias Portb.0 ' SPI (hardware SPI on ATmega328/128/1284...
Program napisany w BASCOM AVR i wyskakujące 3 błędy , mogę wiedzieć dlaczego one wyskakują podczas kompilacji , poniżej zamieszczam kodzik. 'podwójny woltomierz i amperomierz (dwa kanały pomiaru napięcia i dwa kanały pomiaru prądu 'UWAGA _ PONOWNE WGRANIE PROGRAMU SKASUJE WARTOŚCI WSP KOREKCJI Z PAMIECI EPROM '---------------------------------------...
Walczę pół dnia i niestety bez efektów - testowałem kilka programików z netu i nic cały czas wyrzuca mi na rs dane jak x:-1, y:-1, z:-1, Angle: 45.0, ale wygląda na to ze ten układ w ogóle się nie komunikuje z prockiem odpięcie linii komunikacyjnch z prockiem nie wpływa na zmianę doczytu czy jego zatrzyma nie, Może ktoś zerknie w kod poniżej choć jak...
...czy ktoś z Was ruszał te pastylki? A czy Ty , zaglądałeś do dokumentacji tej "pastylki" :?: Wątpię :| Przecież jedyne co potrafi DS1990A , to podanie swojego numeru seryjnego(ID) , natomiast Ty , nakazujesz mu zmierzyć i podać temperaturę. Poza tym , na zmienną typu INTEGER , Bascom rezerwuje 2B , a Ty na siłę chcesz wepchnąć 8B.A więc poczytaj...
Witam mam następujący problem. Napisałem program w bascom pod Atmegę8 termometru 4-punktowego z mozliwościa włączenie alarmu, dla zadanych wartości z klawiszy. 3 zadane temperatury zmieniają sie co 1 więc tu nie ma problemu. Natomiast mam problem z porównaniem w instrukcji If temperatury z jednego czujnika zainicjalizowanej jako Integer z temperatura...
bascom zmienna integer integer bascom ujemne integer bascom ujemny
denso toyota grzałka mniejszej vectra przekaznik pompy paliwa
vaillant atmomag serwomotor vaillant atmomag serwomotor
Medion LIFE S64007 (MD 44007) - Funkcje i Specyfikacja Uniwersalny pilot do Medion LIFE S64007 MD44007