Odwrotnie: 0101-0000. A przelicz na piechotę albo w kalkulatorze obsługującym system binarny (czyli na przykład w kalkulatorze z Windowsa). Dodano po 2 A w sumie to nie musisz przeliczać. Możesz napisać: LCD Chr(&B01010000)
chcę zrobić tablicę z nazwami dni tygodnia do kalendarza. deklaruję dim tablica(7) as string * 12 Po co Ci aż 7 12-bajtowych stringów :?: Wystarczy: Dim Dzientygodnia As String *12 , Nrdnia As Byte ... Dzientygodnia=Lookupstr(Nrdnia,Tabli... '0=Pon, 1=Wtor, ... Lcd Dzientygodnia; ... Tablica: Data "poniedziałek", "wtorek"...
Specjalnej funkcji to nie ma, ale nic nie stoi na przeszkodzie napisać kilka linijek które to zrobią. Np. w pętli for next z użyciem mid()
... BASCOM nie obsluguje tablic bitow... Bascom-AVR obsługuje tablice bitów , jednak z pewnymi ograniczeniami a)Tablica nie większa niż 256 bitów. b)index/numer bitu , MUSI być zmienną , choć właściwie niekoniecznie MUSI :D Piotrek
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.
To jest tak oczywista informacja że nie ma tego w Helpie. Tak samo jak całego alfabetu czy tabliczki mnożenia ;p Skąd Lookup miał by wiedzieć jaką długość mają kolejne elementy? Owszem mógł by, ale taka tablica musiała by dodatkowo zawierać pola określające długość elementów czyli też była by dłuższa. Po drugie to trafia do pamięci programu a nie do...
By funkcja PRINT nie wysyłała samoczynnie znaków CR i LF , użyj średnika. Print "Ala"; Print "ma"; Print "kota" Piotrek
Witam. if a() = b() then jakieś tam instrukcje end if Taki warunek porówna tylko pierwsze elementy tablicy.
Witam, Na własne potrzeby chciałem zbudować monitor temperatury z 4 dallasami 18B20. Dane są odczytywane z czujników po RS485 i wysyłane do mastera. Kiedy odpytuję czujniki po kolei, muszę czekać standardowe 750ms na odpowiedź każdego z nich, co nie zadowala mnie. Zależy mi na tym, aby po wysłaniu komendy odpytującej, każdy z czujników bezzwłocznie...
W Bascomie tylko tablice jednowymiarowe, ale możesz przeszukiwać je z przesunięciem. Pamiętaj o dostępnej pamięci, bo tablica 10000 pozycji pewnie nie wejdzie w up... Pocztaj jeszcze o strukturze DATA.
Pytanie: czy da się te aliasy zrobić w formie tablicy? Tak, żeby odwołanie do konkretnego wyjścia mogło mieć postać "Wyjscie(x)"? Co stoi na przeszkodzie (skoro piny nie są po kolei) aby nie tworzyć sobie sztucznych problemów i zamiast używać tablicy - użyć funkcji ?
Może jednak zjarzyj na tą stronkę, najmniejszy plik pomocy ma 300 parę kb, jesli mnie pamięć nie myli to dyskietka ma 1,44 Mb, tylko pdf ma prawie 2 mega. Reszta to pliki html zatem łatwo będzie wyszukać i ctrl+c , no i od czego jest winrar?
Nadeszła chyba pora zapoznać się , z Bascom-owym helpem :D Dim Adres As Word Dim Pozycja As Byte Do For Pozycja = 0 To 5 Adres = Lookup(pozycja , Tablica) Next Loop Tablica: Data 1% , 10% , 100% , 1000% , 10000% , 65535% Teraz będzie dobrze :?: Piotrek
Tak jak napisałem. W funkcji pobierasz składowe koloru r, g i b, i wpisujesz do kanałów: "Kana(numer_leda+1)=r. Na pewno można to zrobić lepiej.
W zasadzie nie znam Bascom-a, ale podejrzanie wygląda mi to, że argument Segment tej funkcji nie jest zadeklarowany jako tablica, a jednak odwołujesz się do niego jako tablicy.
Powinno być: [syntax=basic4gl]Printbin Send(1) ; 3 ' wyślij 3 elementy tablicy Send(), zaczynając od pierwszego elementu tablicy.[/syntax]
Zatem masz 32 komórki po 32 bajty, dajmy na to tablica(a, b) . Pomnożyć to daje 1024. Teraz definiujesz tablicę tablica(1024) i jak chcesz wyliczyć położenie danej komórki - wykonujesz obliczenia: 32*(b-1) + a i masz jakby dwuwymiarową tablicę.
' Na początku kodu Index_tab=0 ...... ...... If Licznik = 1200 Then IF Index_tab=3 Then ' przesuniecie w tył jeżeli pozyskano co najmniej 3 pomiary Pomiar(1)=Pomiar(2) Pomiar(2)=Pomiar(3) Else ' Fragment kodu wykonywany dla Index_tab=0,1 i 2 Incr Index_tab IF Index_tab>3 Then Index_tab=3 End If Pomiar(index_tab)...
Wartość w poleceniu lookup to jest właśnie adres wiec nie kumam w czym problem. przeskaluj adc z 0-1023 na 0-90 i potem wywołuj zmienna=lookup(adc,tablica)
to powinno pomóc - zwraca adres początku tablicy https://avrhelp.mcselec.com/index.html?l...
"aż taki potwór" ? 5 A, 60 V !! Przeca to nie spawarka ;-) A jak Cię najdzie ochota rozbudować(wydłużyć) tablicę :?: ;) Jeśli masz zamiar produkować takie tablice przemysłowo, to każdy grosz się liczy , ale nie podejrzewam Cię o to ;) Przy okazji spytam, Darlingtron czy zwykły bipolarny ? Dawaj co chcesz , byle proc potrafił go wysterować, a on wytrzymał...
Typ BYTE - zakres od 0 ... 255 ale Bascom pozwala zadeklarować dim tablica(256) as byte i zaadresować tablica(256) = 12 Prawdopodobnie element 256 ma adres 0 ale to tylko moje przypuszczenie Bascom gdy pozna się i pogodzi z jego ułomnościami ( czyli ten typ tak ma ) Pozwala dość szybko pisać proste i nie tylko takie programy. Tak, tak, wiem C jest lepsze...
Miło by było jak byś napisał "co zadziałało". Na Elektrodzie zbieramy doswiadczenia.
tablica jest odpowiedni zadeklarowana, a bascom automatycznie inkrementuje wzkaźnik w tablicy, więc polecenie: Bd(1) = 1wread(9) powoduje, ze pierwszy odczytany bajt ląduje w Bd(1), kolejny w Bd(2), aż ostatni (dziewiąty) w Bd(9)
Zmienione liczby były tylko do moich testów ;)
Próbowałem przekazywać tablice po pierwszej zmiennej, tak jak wyżej, ale cały czas przekazywałem przez wartość. Zadziałało dopiero jak przekazałem przez referencje (zresztą tak jak wyżej :) ). I tutaj mam kilka pytań. 1. Dlaczego?? Przecież chodziło jedynie o identyfikatory (wartości) poszczególnych czujników. 2. Po co przekazywać przez referencje zmienne...
Sam sobie odpowiedziałeś na pytanie. Jest jeszcze jedna możliwość ale jest nieco niebezpieczna i wymaga aktualnej wersji BASCOMa: funkcja MEMCOPY.
Czy jeśli to samo chcę mieć dla zmiennej slowo3 muszę zakładać nową tablicę (pamięciożerne) czy też mogę załadować slowo3 do istniejącej już tablicy Slowo2_array(10)? Nie do końca chyba rozumiesz jak działa OVERLAY , tak stworzona zmienna nie jest "pamięciożerna". S lowo2 (string *10) i Slowo2_array(10) As Byte At Slowo2 Overlay zaczynają się od tego...
Wielkie dzięki e marcus, naprawdę mi pomogłeś. Mój program jest już niemalże na ukończeniu jednakże mam jeszcze jeden kłopot... Trudno tu "zgadnąc" przyczynę nie widząc całego programu. Wielokrotne zaliczenie akcji przycisku może byc w pierwszym rzędzie spowodowane fenomenem "Switch bounce". Zapobieganie temu zjawisku zwane jest 'DEBOUNCE'. Patrz odpowiednia...
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...
(at)zumek Dzięki za kod, ale nie do końca wiem jak on działa. Szkoda :( W1 to tablica wskaźników na W, przesunięta o dwa miejsca? Mylisz się :( W1 , to jakby wskaźnik na W powiększony o 1 element tablicy W , czyli 2 bajty . Natomiast tablica wskaźników , to ... nie z tej bajki ;) A dokładnie rzecz ujmując , to Bascom definiuje tablicę W1 , w obszarze...
No no nooo, z iście ułańską fantazją podchodzicie panowie do Bascoma i procków AVR, tablice już nie mówię że dwywymiarowe ale po tysiąc elementów ;) .... Nie trzeba wielce znać Bascoma, wystarczy zajrzeć do helpa żeby tam zobaczyć iż tablice mogą być tylko jedno-wymiarowe. Więc o czymś takim jak w Delphi zapomnij nie tylko z tego względu ale i ze względu...
Nie musisz, ta tablica będzie umieszczona w pamięci sram. Stos używany będzie w przypadku skoków do przerwań, podprocedur itp.
mov DPTR, .Tablica_instrukcji mov A,{instrukcja} jmp (at)A+DPTR Pomijając fakt, że nie mam pewności czy ten kawałek kodu jest poprawny to mam problem ze zbudowaniem tablicy adresów. Pomysł jest dobry, ale wykonanie złe ;), albo zrobisz pomnożysz A przez 2 albo 3 i pod adresem tablica instrukcji zrobisz serie skoków (bliski ma 2 bajty, daleki...
Możesz podać gdzie przeczytałeś że ta liczba po przecinku oznacza liczbę wysłanych bajtów? Help nic nie mówi na ten temat. Sprawdzałem w symulatorze że ta liczba nic nie zmienia. Jest taka informacja w helpie "When you use Printbin ar(1) , the whole array will be printed." A kto powiedział że ja wpisuje dane? Ja je wysyłam. Ale twoja tablica jest pusta....
Atmega2560 posiada 256kB pamięci. Załóżmy, że program zajmie 25k, zostaje jeszcze 225kB. Zatem, Twoich "plików" wejdzie 225 / 0,72 = 312 plików po 720 bajtów. Dostęp do danych przez funkcję lookup https://avrhelp.mcselec.com/index.html?l...
Źle podpięty RESET atmegi no i brak przy pinie 2 złącza programatora +5V..
Tablice najlatwiej porównać bezpośrednio. Z tego co mi wiadomo to to nie można liczyć wyznacznika z tablicy do tego potrzebna jest macierz kwadratowa a tablica na pewno nią nie jest. Jeśli sprecyzujesz problem dokładnie to mogę Ci napisać funkcje ale w C przerobienie jej na BASCOM'a nie powinno być trudne
Witam, Niestety nie udało mi się znaleźć przyczyny problemu. Zatrzymałem się na tym etapie i czekam na pomoc… ale wciąż nic :(
Z tego swojego kodu usuwasz "Odczyt numerów ID czujników temperatury" A w to miejsce wpisujesz odczytane adresy do tablicy z adresem danego czujnika. np. tak będzie to wyglądało dla pierwszego czujnika: Dsid1(1)=&H28 Dsid1(2)=&H65 Dsid1(3)=&HC3 Dsid1(4)=&H89 Dsid1(5)=&H05 Dsid1(6)=&H00 Dsid1(7)=&H00 Dsid1(8)=&H25
Tak, ale chodzi o: X( I ) = I Czyli nam chodzi o to I , a nie o to I. I ono właśnie idzie co 100. Jedno i drugie I (skoro to jest to samo I :D). A to pierwsze (pogrubione I ) nie powinno. Bo tablica ma 40 elementów indexowanych co 1. Więc poinny iść co 1. Czyli powinieneś mieć dwie zmienne. Jedną do indexowania co idzie co 1. A drugą do wpisywania do...
tak ale zrobiłem to ręcznie ... nie wiem jak to wrzucić do tablicy
Wywal opóźnienie z przerwania. Po za tym wygaszaj kolumny za każdym razem jak wchodzisz w przerwanie.
Patrzę i patrzę na Twój kod i na opis tego co chcesz i nic nie rozumiem. Nie wiem co chcesz osiągnąć i za nic nie rozumiem tego kodu.
To: 1. Rozbij sekwencję na kody ASCII i umieść je w tablicy 2. Wyślij tablicę za pomocą Printbin Tablica(1) ; ilość_elementów_tablicy
BASCOM obsługuje tablice z indexem Integer 6553x sztuk:>
Zainteresuj się funkcją lookup . Pozwala ona na odczyt danych z DATA, na podstawie ich pozycji. Wszystko masz opisane w help-ie BASCOM-a.
Konwersje byte->string otrzymuje się przy użyciu funkcji Str. W drugą stronę działa funkcja Val.
Zapisać -> Nie wiem w jakim stanie go masz, ale pewnie jako 8 bajtów:) Wytnij z tego bajty rodziny etc, zostaw sam SN właściwy, i jak pisał chyba JmL masz "tablice" w eepromie, no to siup zapisujesz pod ta i ta komórkę, co potrzeba. - tyle apropo zapisu Odczyt -> odczytujesz co któryś bajt(same SNy) do jakiejś innej tablicy w ramie i szukasz w niej...
Projektuje uklad w ktorym PC (VB6) bedzie wysylalo tablice do atmegi 32. Tablice wysle z VB6 w nastepujacy sposob: Dim tArray(1 To 5) As Byte Dim vntBuffer As Variant tArray(1) = 100 tArray(2) = 101 tArray(3) = 102 tArray(4) = 103 tArray(5) = 104 vntBuffer = tArray msComm.Output = vntBuffer moje pytanie jest jak to wrzucic do tablicy spowrotem w bascom?
Panowie, ekspresowe pytanie: czy w bascomie jest jakiś sposób, żeby zapisać danymi całą tablicę naraz? Chodzi mi o coś takiego: [syntax=basic4gl] Dim Tablica(5) as Byte Tablica(1) = 1 'tak można Tablica(2) = 2 . . Tablica(5) = 5 Tablica = 1,2,3,4,5 'a tak już nie można Dim A as Byte For A = 1 To 5 Tablica(A) = A 'tak też można, ale nie o to mi chodzi...
Jakiej funkcji losującej? jeśli myślisz o RND to zapomnij bo znacznie lepiej jest inkrementować (dekrementować) zmienne z częstotliwością pracy kwarcu i "zatrzaskiwać wynik".
Tak jak wprowadza się dane do tablicy...
zrobiłem klawiature matrycową działa można wprowadzac dane zapisałem dane do tablicy np. dim a(3) as bit a(1)=4 a(2)=3 a(3)=6 pytanie brzmi jak dane z tablicy przekształcić na jedną zmienną x =436 :cry:
Poczytaj w pomocy o instrukcjach: DATA , RESTORE, READ... To się nie nadaje , ponieważ Restore potrzebuje etykiety , a Read to odczyt sekwencyjny i nie da sie wybrać konkretnego elementu tablicy , tylko trzeba odczytywać kolejno , począwszy od pierwszego elementu. Ale ... Bascom AVR posiada funkcje , za pomocą których można naśladować mechanizm wskaźników...
No to jesteśmy w kropce . W ksiązce z której kozystasz jest dokładnie opisane jak tworzyć takie tabele. Poszukaj tez programu który ułatwi Tobie napisanie tablic .Podobny program masz w Bascomie , LCD Designer
Nie znam wogole bascoma ale jak mi podeslesz na pw szkielet tablicy w bascom to dorobie w programie zakladke z tablica dla bascoma.
Ludzie.... Nie sprzeczajcie się może ile co będzie zajmowało, tylko napiszcie jak to zrobić na tablicach.
No do tablicy "Znaki" się wstawia. W zwykłym ASCII.
Polecam przeczytać: http://avrhelp.mcselec.com/index.html?la... Jest też o tablicach.
Dobrze by było podac w czym programujesz asembler, C++, bascom??
Tak, rozwiązałem problem za pomocą tablicy.
Mam problem jak szybko wpisac dane do zmiennej tablicowej na stale Zalozmy ze mam tablice A cztero elementową, chce w nią wpisać wartości [syntax=basic4gl] Dim A(4) As Byte A(1) = &HAA A(2) = &HBB A(3) = &HCC A(4) = &HDD [/syntax] Jedak zamiast wpisywac po kolei chciałbym wpisac dane w tym stylu: Zmienna A = &HAABBCCDD Chodzi o to zeby nie pisac za...
jak sie robi tabele danych w bascomie, bo musze w nim napisac progeam. chodzi o to, zeby np dla zminnej 1 odczytywał pierwsza cyfre z tabeli dla 2 druga itp czyli np jest data 15,20,18,17 i ma byc wynik f(1)=15 f(2)=20 f(3)=18 f(4)=17 jak sie wogole uzywa tutaj tablic?
Coś takiego zrobiłem [syntax=basic4gl] Index = Idx + 1 Freq = Lngfreq_memory(index) Fstep = Lngstep_memory(index) 'Menu(idx) = Str(freq) + " " + Str(fstep) For Index = 1 To 10 Menu(idx) = Str(freq) + " " + Str(fstep) Next Index [/syntax] ale nie działa to dobrze , po prostu pętla nie przechodzi po tablicy
Czy jest jakaś możliwość dodania kolejnych znaków do istniejącej tablicy fontów w Bascom (czyli pliku FONT) , tak aby nie trzeba było tworzyć nowej większej tablicy, i ręcznie "rysować" każdego znaku od początku ? Mam tabelę fontów, zawierającą specjalne mini-grafiki, więc jeżeli trzeba robić nową tabelę, musiałby wszystkie narysować od początku...
Tak trudno sprawdzić w manualu wciskając w Bascom F1? Sprawdziłbyś hasło "Printbin" i dowiedział się że domyślnie wysyłana jest cała tablica a kiedy nie chcesz to po średniku wpisujesz ile bajtów wysłać [syntax=vbnet]Printbin ar(1) ; 3 ' will send 3 bytes from array ar() starting at index element 1[/syntax]
[syntax=c]TWI_write(pgm_read_byte( &cyferki[cy4] ));[/syntax] Mam tablicę znaków wyświetlacza "cyferki" a zmienną "cy1" - "cy4" wskazuje odpowiedni znak z tablicy. W buforze z RFM12 mam stringi a potrzebuje int aby wyświetlić znaki z tablicy.
Odebrane znaki zapisz do tablicy a potem wybierz te które są ci potrzebne i prześlij je do PC.
Kwarc wstaw w obu przypadkach nawet 16MHz. Baudrate jest zależna w zasadzie od jego dzielnika niż od kwarcu. Nie szalej też z dużą szybkością bo błędy mogą wyskoczyć, zacznij od 4800 bps. Połączenie po UART masz zrobić sprzętowo! Timer niech ci obsługuje multiplexing, główna pętla programu sprawdzanie czy w UART coś przyszło i przepisywanie do tablicy....
Myślałem raczej o czymś takim: [syntax=basic4gl]Do Readeeprom Tablica(licznik) , Licznik Incr Licznik Loop Until licznik >12 [/syntax] :)
No więc ? Tablica: DIM Odczyt(2) składa się z dwóch zmiennych typu Byte. Więc ile masz bitów razem ?
Bascom jest tak beznadziejny, że adresuje tablice od 1 a nie od zera. To by jednak dawało przesunięcie o jeden a nie 2.
Dołącz do ramki np znak nowej linii '\n' i odbieraj znaki aż do jego napotkania zapisując ramkę do tablicy potem zostaje tylko ją zinterpretować określając wielkość tablicy.
Musisz niestety pokombinowac ii sam napisac taka procedure :-/
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
Przed Tobą długie i wnikliwe czytanie pomocy jak definiowane, i jak obsługiwane są tablice w BASCOM.
Sam czasami żałuje, ale od czegoś trzeba zaczynać. Zapewne w BASCOMIE należy dać tablice 8 elementową, no ale co dalej? :d
Tworzysz zmienną sting * 20 i tworzysz tablice byte(20) adresujesz je tak samo i poleceniem lcd chr(byte(a)) stawiasz znak z wybranego miejsca ze stinga.
Witam Mam dwa pytania. Ja utworzyć CRC dla tablicy zawierającej 1024 bajty. Powinno się ją podzielić na mniejsze bliki i obliczać CRC32 czy istnieje jakiś inny sposób. Jaką maksymalną wielkość może osiągnąć tablica aby można było liczyć bezpiecznie CRC32.
A widzisz, pojawia się wreszcie jakiś konkret. Skoro pojawia się komenda "300" to rozumiem, że pojawi się też "120", "1", "55" itp. Więc zamieniasz otrzymany string na word i masz już wskaźnik tablicy. W odpowiedzi wysyłasz wartość zmiennej o numerze "300".
Nie znam BASCOMa, ale zapewne jest. Najprosciej brac z tablicy dwie sasiednie wartosci i interpolowac. Problem jest z indeksem - wiec kolejna tablica w ktorej masz strukture typu zakres[min,max], wartosc indeksu do wlasciwej tablicy.
No dobrze mniej wiencej rozumiem jak to trzeba zrobić ale nie bardzo umiem sobie poradzić z tym kawałkiem : zsh = znaksh[kol_z AND 3] ; indeksem jest pozycja x znaku modulo 4 Jak zrobić modulo 4 w bascomie ??
nie przyjmie. Trzeba zapisywać po charze. A coś takiego jak string tak na prawde nie istnieje - jest to tablica charów.
Może ktoś wie jak założyć tablicę 66 elementową ( każdy element to bit) w obszarze adresowanym bitowo, tak by można było odwoływać się do poszczególnych bitów poprzez współżędne w tablicy np. bit22=Tablica(22). Bascom co prawda przyjmuje deklarację Tablica(66) as bit, ale traktuje to jak zmienną 1 bitową tzn. zapis Tablica(22) = 1 ustawia na 1 wszystkie...
Nie wpiszesz worda do bajtu ktoś o tym pisał i nie wiem czy zmieniłeś to. Rozmiar wartości 250 to nadal 16b a nie 8b Pozdrawiam Ps. hmmmm to jest właśnie wspaniały BASKOM ...............
Za końcem programu: Nazwatablicy: data 'wartości kolejnych kolumn oddzielone przecinkami Odczytujesz poleceniem lookup. Np.: For X = 0 To 4 cyfra z 5 kolumn Portb = Lookup(x , Cyfra) Waitms Czaskol Next Portb = 0 'kolumna odstępu Waitms Czaskol Zauważ, że tu zmienna "cyfra" decyduje z ktorej tablicy odczytamy dane. ;)
No ładnie odczyt działa perfect. Niech mi ktoś jeszcze powie jak się w bascomie AVR robi tablice z danymi zapisywaną w pamięci programu bo jak robię tak jak w pomocy pokazano lub tak jak w 51 to nie chodzi :(
Zrobić jedną tablicę jednowymiarową i zapisywać kolejno po sobie po 7 tych zmiennych, następnie odczytywać z "offsetem" tablica(x + y*offset) daje to pseudo 2 wymiarową tablicę. tablica(0 + 0*7) = tablica(0) tablica(1 + 0*7) = tablica(1) tablica(2 + 0*7) = tablica(2) .... tablica(0 + 1*7) = tablica(7) tablica(1 + 1*7) = tablica(8) itd....
dim urx_bufor(5) as byte dim urx_licznik as byte dim urx_odebrano as bit ... urx_licznik=1 'to jest potrzebne dla bascom'a bo tablice zaczynaja sie od 1 a nie 0 enable interrupts ... przerwanie_urx: if urx_licznik<5 then urx_bufor(urx_licznik)=udr incr urx_licznik end if if udr=13 then set urx_odebrano 'odebano ENTER if udr='T'...
Do sortowania użyj instrukcji Sort : [syntax=basic4gl]Dim A(3) As Byte ' trzy elementowa tablica A(1)= 86 A(2)= 42 A(3)= 230 Sort A(1) , 3 ' sortuj trzy elementy w tablicy zaczynając od A(1) Print A(2) ' wyświetl drugą wartość[/syntax]
Co to znaczy ilość jest zmienna? W Bascomie rozmiar tablicy jest stały. Rozumiem, że pozostałe po prostu są pustymi stringami. Może polecenie SORT się nada, Ale do zmiennych STRING go nie próbowałem używać więc....
Acha. To zrób w assemblerze. Albo na tablicach. Nie ma takiej operacji w BASCOMie ani w assemblerze AVR, '51 i innych. Taka operacja to tak zwany "motylek" ale naprawdę nie słyszałem o prcesorze który by miał taki rozkaz. Może jakieś procesory DSP. Albo assembler albo tablicowanie. Wiesz o co mi chodzi z tymi tablicami?
Wyszukujesz początek ramki, czyli pewnie "$GPRMC," Potem ładujesz znaki do zmiennej textowej aż natrafisz an przecinek. Jak natrafisz na przecinek to zatrzymujesz ładowanie znaków (a przecinka nie ładujesz). Konwertujesz Text na liczbę Integer (chyba że chcesz tablicę Stringów). Potem masz przecinek. Omijasz. Zbierasz kolejne dane aż do kolejnego separatora....
Czy kolega wie, że w BASCOM Basic są tablice? Deklarujesz mnóstwo zmiennych Aa i potem jeszcze robisz ciągi operacji Bb = Bb + Aa jak można to łatwo ztablicować i robić w pętli. Tak samo SELECT CASE zamieniłoby się w prostą pętlę. Pomyśl nad tym, bo pamięć Flash nie jest rozciągliwa.
To teraz 2 testy: 1. Przypisz dane z tablicy najpierw do zmiennej tymczasowej a potem wyślij zmienną tymczasową na portd 2. Poprzez Select Case Nr_Wysw na sztywno wyślij na port odpowiednią wartość dla konkretnego wyświetlacza (bez odczytu z tablicy)
Basic ( Bascom)
Nie da rady w ten sposób... Ale... Załóż zmienną typu "byte". W programie możesz odwoływać się do pojedyńczych bitów tejże (np.: set zmienna.1 , reset zmienna.5 ) Właśnie tu jest pewien problem. Zawsze jest sterowane tylko jedno wyjście przez specyficzny cykliczny układ zmiennych czasowo przerwań. INT0 przełącza na kolejny pin czyli next x Zawsze mogę...
4. Wkradl sie sie return do sub maxtemp. Wiec jednak troche dalej sprawdzilem. Co do 1 sugesti bym musial pomyslec, czy sie oplaca tak kombinowac, Dodano po 2 Szkoda, ze durny bascom nie posiada tablic 2 wymiarowych !!!!!!! Moze kiedys wpadna na to zeby to dodac.
Witam. czy ktoś może mi powiedzieć jak zrobić tablicę zapisywaną w pamięci programu pozwalającą na ładowanie więcej niż 256 bajtów. Chodzi mi o tablicę tego typu: B = Lookup(adres , dane) Dane: Data 0,1,2,3 .... potrzebuję taką tablice dość sporej długości ( kilka kilobajtów) dopóki zmienna adres zadeklarowana jest jako byte wszystko działa jak tylko...
tablice bascom tablice ascii bascom tablice zmiennych bascom
internet komórka laptop restart lenovo czujnik przepływ arduino
panele fotowoltaiczne opłacalność panele fotowoltaiczne opłacalność
Objawy uszkodzenia sterownika LPG: diagnostyka i naprawa Raspberry Pi 5 nie wykrywa dysku NVMe - przyczyny i rozwiązania