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...
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.
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.
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.
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
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...
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 ?
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ę.
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.
Powinno być: [syntax=basic4gl]Printbin Send(1) ; 3 ' wyślij 3 elementy tablicy Send(), zaczynając od pierwszego elementu tablicy.[/syntax]
Ściagnij sobie jeden z tych plików pomocy, uruchom, wybierz indeks wpisz "dim" klinij wyświetl i tyle, prościej sie nie da :) Dodano po 5 Sorry kolego, dim to nie tablica tylko deklaracja zmiennej, przepraszam za wprowadzenie w błąd Dodano po 6 teraz się temu przyjrzałem i okazuje się że dobrze pamietam. Dim moze być deklaracja singlowej zmiennej bądź...
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)
' 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)...
to powinno pomóc - zwraca adres początku tablicy https://avrhelp.mcselec.com/index.html?l...
Witajcie ! Wiem, że temat był wałkowany na Elektrodzie wielokrotnie, czytałem chyba wszystkie, nie znalazłem jednak rozwiązania mojego problemu. Może na początek schemat : (tablica ma faktycznie 5 rejestrów i 40 kolumn, nie chciało mi sie jednak całości rysować.) http://obrazki.elektroda.net/42_12344199... teraz banalny kod : $regfile = "m8def.dat"...
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...
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)
Miło by było jak byś napisał "co zadziałało". Na Elektrodzie zbieramy doswiadczenia.
Zmienione liczby były tylko do moich testów ;)
Źle przekazujesz Id do funkcji, mały przykład do uruchomienia w symulatorze: [syntax=basic4gl]$regfile = "m88pdef.dat" $crystal = 20000000 $baud = 19200 $hwstack = 64 $swstack = 64 $framesize = 64 Dim Tablica(4) As Byte , Tekst As String * 12 Declare Function Test_funkcji(byref Osa As Byte) As String * 6 Tablica(1) = 10 Tablica(2) = 20 Tablica(3) =...
(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...
Sam sobie odpowiedziałeś na pytanie. Jest jeszcze jedna możliwość ale jest nieco niebezpieczna i wymaga aktualnej wersji BASCOMa: funkcja MEMCOPY.
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...
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...
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...
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...
Nie musisz, ta tablica będzie umieszczona w pamięci sram. Stos używany będzie w przypadku skoków do przerwań, podprocedur itp.
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....
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...
Jeżeli to ma być coś bardziej profesjonalnego, jak tytułowa tablica informacyjna, to może warto by pomyśleć o zastosowaniu układów specjalnie przeznaczonych do tego celu, czyli TLC5940 lub A6276. Sam powoli przymierzam się do zbudowania takie tablicy na TLC5940, bo zabawa z tranzystorami i rejestrami trochę mija się z celem przy budowie jakiegoś poważniejszego...
Witam, Niestety nie udało mi się znaleźć przyczyny problemu. Zatrzymałem się na tym etapie i czekam na pomoc… ale wciąż nic :(
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
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...
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
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.
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...
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.
Zainteresuj się funkcją lookup . Pozwala ona na odczyt danych z DATA, na podstawie ich pozycji. Wszystko masz opisane w help-ie BASCOM-a.
BASCOM obsługuje tablice z indexem Integer 6553x sztuk:>
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...
Konwersje byte->string otrzymuje się przy użyciu funkcji Str. W drugą stronę działa funkcja Val.
Z tego powodu ze raz uzywaz "Tablica" a drugi raz "Tabela" Zmien na to samo i bedze oki
Poczytaj w pomocy o instrukcjach: DATA , RESTORE, READ. Kiedyś robiąc skomplikowane menu używałem tego do przechowywania stałych tekstów/opisów. Wszystkie były tej samej długości. Aby nie używać SELECT CASE zrobiłem wstawkę asemblerową. O ile dobrze pamiętam rejestry R8 i R9 są używane jako wskaźnik dla funkcji READ. Możesz też wszystkie swoje dane...
Witam. Napisałem sobie poniższy kod w BASCOMIE. Ma on za zadanie przemieszać wartości w zmiennej tablicowej tablica. Np. mam zmienną Tablica: Data 1,2,3,4,5,6,7,8 i po kilkukrotnym naciśnięciu przycisków (napisałem kilkukrotnym bo kod jest tak napisany że jedno naciśnięcie powoduje zamianę tylko jednej pary liczb ,a więc żeby dobrze przemieszać wartości...
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?
Ludzie.... Nie sprzeczajcie się może ile co będzie zajmowało, tylko napiszcie jak to zrobić na tablicach.
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?
Polecam przeczytać: http://avrhelp.mcselec.com/index.html?la... Jest też o tablicach.
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:
Nie znam wogole bascoma ale jak mi podeslesz na pw szkielet tablicy w bascom to dorobie w programie zakladke z tablica dla bascoma.
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 ...............
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...
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
No więc ? Tablica: DIM Odczyt(2) składa się z dwóch zmiennych typu Byte. Więc ile masz bitów razem ?
Myślałem raczej o czymś takim: [syntax=basic4gl]Do Readeeprom Tablica(licznik) , Licznik Incr Licznik Loop Until licznik >12 [/syntax] :)
No do tablicy "Znaki" się wstawia. W zwykłym ASCII.
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...
Dobrze by było podac w czym programujesz asembler, C++, bascom??
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]
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....
Tak, rozwiązałem problem za pomocą tablicy.
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
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....
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]
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...
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 ??
Za punkty - nie, przynajmniej nie ja. Ale cos pomóc mogę. Zrealizowałem już parę projektów uC + vb6 i jakoś one działają. Może zacznijmy od samego uC. Jeżeli był by to asm (bascom + zaawansowany bascomowiec) to zrobiłby to na dwuch tablicach które wyrażały by bufor odbioru i nadawania np rs_tx_bufor(12) as byte i rs_rx_bufor(12) as byte Można by to...
[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.
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.
Niestety zapomnieliście o jednej małej drobnostce. Forma zapisu zmiennych dword i long w Bascomi'e to little endian :). Więc wynikiem będzie: A(1) = &HDD A(2) = &HCC A(3) = &HBB A(4) = &HAA
Odebrane znaki zapisz do tablicy a potem wybierz te które są ci potrzebne i prześlij je do PC.
A mógłbyś mi podpowiedzieć jak to zrobić na tablicach ?
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.
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
nie przyjmie. Trzeba zapisywać po charze. A coś takiego jak string tak na prawde nie istnieje - jest to tablica charów.
Nie. Dodawanie do ZH jest potrzebne, gdy górny bajt adresu jest inny w pierwszej a inny w ostatniej komórce tabeli.. jeśli tablica ma 2 elementy o adresach 0x8FF oraz 0x900, to bez tego dodawania uzyskasz adresy 0x8FF i 0x800 (brak dodania przeniesienia).
Prawdopodobnie tabele będę miał z exela max 1024x1024B min256x256B. Nie wyobrażam sobie w jaki sposób przepiszę to do Basoma. Macie jakieś pomysły? Jak to zautomatyzować (ctrl+c ctrl+v) ? Może prościej zapisać to w pamięci zewnętrznej i jakoś odczytywać w Bascomie.
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".
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.
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
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....
W typowym LCD alfanumerycznym tego nie zrobisz, bo tablica znaków jest zapisana w pamięci wyświetlacza na stałe. Możesz wykorzystać pamięć znaków użytkownika ale ma ona małą pojemność i nie zapiszesz w niej całego alfabetu.
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....
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)
tak, stosuj tablice. Ulatwi ci to robote.... ALE pamietaj zeby NIE ZAPISYWAC DANYCH W KOMORCE EEPROMA O ADRESIE 0. Jesli zaczniesz deklarowac zmienne w bascomie to : ...jakies zmienne... .... .... .... 'EEPROM dim foo as eram byte 'to ci zalatwia komorke 0, bo tu bascom umiesci tą zmienną, i z niej niekorzystasz dim tablica1(3) as eram byte dim tablica2(3)...
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ę...
Witam szukam po internecie i nie mogę znaleźć jak z ciągłego tekstu typu string wydzielić poszczególne wyrazy oddzielone przecinkami i wpisać je od danego elementu tablicy np: , poniedziałek,wtorek,środa,czwartek, tablica1 poniedziałek tablica2 wtorek itd, Z góry dziękuję za pomoc.
bascom zapis tablica tablica bascom tablica bitowa bascom tablica zmienna
zamiennik rozrusznika 65535 internal moduł memory error zmywarka whirlpool wirnik pompa
czemu zalewa swiece czemu zalewa swiece
Wymiana wirnika w krajalnicy Blaupunkt FMS 501 - krok po kroku Zamienniki dla ULN2001D: ULN2003, ULN2004 i inne