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.
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()
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
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?
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.
Witam. if a() = b() then jakieś tam instrukcje end if Taki warunek porówna tylko pierwsze elementy tablicy.
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)
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ę.
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)
... 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
Powinno być: [syntax=basic4gl]Printbin Send(1) ; 3 ' wyślij 3 elementy tablicy Send(), zaczynając od pierwszego elementu tablicy.[/syntax]
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.
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"...
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 ?
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...
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...
to powinno pomóc - zwraca adres początku tablicy https://avrhelp.mcselec.com/index.html?l...
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...
By funkcja PRINT nie wysyłała samoczynnie znaków CR i LF , użyj średnika. Print "Ala"; Print "ma"; Print "kota" Piotrek
Witam, A nie znam bascoma, ale może można napisać własną funkcję typu "ustaw_kolor(numer_leda, kolor)", gdzie kolor jest etykietą dla tablicy "Data"? Dalej "r = lookup(0, kolor)" itd.
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...
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)
hiv_sick , powinieneć mieć 1 kondensator 100nF na parę VCC-GND każdego układu cyfrowego - czyli 3 szt. na 3 rejestry + 1 sztukę na procesor. U Ciebie te kondensatory są między 9V a GND, a powinny być między 5V a GND. Jesteś pewien, że jako IC10 nie użyłeś stabilizatora dla napięć ujemnych?? Bo tak wygląda z ułożenia wyprowadzeń. Powinieneś użyć LM7809......
(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...
' 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)...
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...
tak ale zrobiłem to ręcznie ... nie wiem jak to wrzucić do tablicy
Miło by było jak byś napisał "co zadziałało". Na Elektrodzie zbieramy doswiadczenia.
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
Tak jak wprowadza się dane do tablicy...
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".
Zmienione liczby były tylko do moich testów ;)
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...
Ludzie.... Nie sprzeczajcie się może ile co będzie zajmowało, tylko napiszcie jak to zrobić na tablicach.
Polecam przeczytać: http://avrhelp.mcselec.com/index.html?la... Jest też o tablicach.
[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.
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...
Wywal opóźnienie z przerwania. Po za tym wygaszaj kolumny za każdym razem jak wchodzisz w przerwanie.
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...
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
Sam sobie odpowiedziałeś na pytanie. Jest jeszcze jedna możliwość ale jest nieco niebezpieczna i wymaga aktualnej wersji BASCOMa: funkcja MEMCOPY.
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...
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.
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...
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....
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
Zamiast używać wielu zmiennych w stylu zmienna_byte, zmienna_byte2, zmienna_byte3 załóż tablicę np. zmienna_byte(300) i wówczas na podstawie zinterpretowanego znaku wysyłasz zawartość odpowiedniego pola tablicy.
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.
Tak, rozwiązałem problem za pomocą tablicy.
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)
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
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...
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.
Nie znam wogole bascoma ale jak mi podeslesz na pw szkielet tablicy w bascom to dorobie w programie zakladke z tablica dla bascoma.
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...
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....
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
Przed Tobą długie i wnikliwe czytanie pomocy jak definiowane, i jak obsługiwane są tablice w BASCOM.
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?
Witam, dopiero zaczynam przygodę z bascom`em i mam problem: chcę wysłać z komputera do atmegi id czujnika ds18b20, jedyne co przychodzi mi do głowy to wysłać to w postaci xx;xxx;xx;xxx;xx;xx;xx;xxx; ale odczytanie tego polegało by na rozbiciu tej wartości względem ";". Może są jakieś prostsze metody przesłania takiej tablicy ??
Bez podania treści programu przed i po zmianie oraz podaniu, która zmienna jest naruszan to będzie "trochę" ciężko ! Jedyne co mi przychodzi do głowy to takie przypadki jak - stos programowy może włazić w obszar zmiennych przy wywołaniu podprogramu (teoretycznie powinno być to niemożliwe) - zmienna adresująca tablicę np. w pętli sięga "o jeden most...
nie przyjmie. Trzeba zapisywać po charze. A coś takiego jak string tak na prawde nie istnieje - jest to tablica charów.
"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ł...
Witajcie! Gryze wlasnie swoj maly projekt (sterowanie swiatlami z pwm za pomoca pc) i natrafilem na problem. Up dostaje na com taki string: HELLO,255,11,23,45,0,END Na tej podstawie ustawia 5 zmiennych kolejnymi wartosciami (pomijajac pierwsza i ostatnia). I tutaj utkwilem - jak rozdzilic to co dostanie na pojedyncze wartosci (np. w tablicy)?
Nie musisz, ta tablica będzie umieszczona w pamięci sram. Stos używany będzie w przypadku skoków do przerwań, podprocedur itp.
Konwersje byte->string otrzymuje się przy użyciu funkcji Str. W drugą stronę działa funkcja Val.
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.
Mam problem polegający na tym, że na trzy elementowej tablicy BGR(3) as byte muszę wykonać przesunięcie o 12 w lewo czyli wykonać rotate na tych trzech zmiennych tak jakby to była jedna zmienna np: przed przesunięciem: BGR(1) BGR(2) BGR(3) 01000010 01100100 11111010 po przesunięciu o 12 w lewo: BGR(1) BGR(2) BGR(3) 01001111 10100100 00100110 W jaki...
No do tablicy "Znaki" się wstawia. W zwykłym ASCII.
A mógłbyś mi podpowiedzieć jak to zrobić na tablicach ?
I to jest główny problem użytkowników bascom:/ NIE MACIE POJĘCIA O SPRZĘCIE:> Poczytaj kolego o UART poczytaj o znakach sterujących, pomyśl! Nie ma wszystkiego na wyciągnięcie ręki.. (10 i 13 patrz do tablicy ascii).
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...
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...
Udało się znaleźć przyczynę problemu?? Ponieważ mam taką samą sytuację, pierwszy program działa bez problemu, natomiast drugi (Tablica LED) mimo usilnych starań nie działa.
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...
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.
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...
Witam, bardzo interesuje mnie poruszony tutaj temat. Wlaśnie jestem na etapie zdobywania wiedzy na temat sterowania tego typu tablic. Podłaczenie 2 kolejnych wyświetlaczy led to jedno, wystarczy protów w procesorze, ale co gdyby trzeba było zrobić tablicę led np z 20 takich tablic?
Myślałem raczej o czymś takim: [syntax=basic4gl]Do Readeeprom Tablica(licznik) , Licznik Incr Licznik Loop Until licznik >12 [/syntax] :)
Odebrane znaki zapisz do tablicy a potem wybierz te które są ci potrzebne i prześlij je do PC.
No więc ? Tablica: DIM Odczyt(2) składa się z dwóch zmiennych typu Byte. Więc ile masz bitów razem ?
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...
Adresy są ośmio BAJTOWE, a ty je wrzucasz na pierwszy i drugi index tablicy ??
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
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.
Przy małych tablicach (cyfry plus kilka znaków) działa bezbłędnie. ZH jest chyba potrzebne dopiero gdy chcemy wskazać jakiś odległy element tablicy (powyżej 255?).
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?
Witam, Nie chesz chyba powiedzieć, że nie potrafisz zrobic tablicy w bascomie do sterowania siedmiosegmentowym wyświetlaczem ? Jak już chcesz pisać w bascomie to zorganizuj sobie np. artykuły z Bascom College.
To zamiast robić jedna wielką tablice zrób kilka mniejszych :d
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:
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]
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....
witam mam taki maly problemik chcialbym przeslac zdeklarowana tablice zmiennych typu string do pamieci seregowej eeprom z transmisja pojedynczych bajtow nie ma problemu ale sie zastanawiam jak przeslac ja cala tablice na raz licze ze ktos z sznownych kolegow podsunie mi pomysl a moze gotowe rozwiazanie pozdrawiam
Jak wywale opóźnienie to niestety jest lipa, jak już pisałem wyżej. Problem nie tkwi chyba w 51 tylko w oprogramowaniu w Delphi. Dlatego pytałem czy ktoś używał komponentu ComPort? (pewnie coś zwaliłem) A co do tablicy w Bascom to po co ona? Przecież dane idą prosto z EEPROM, nie ma sensu ich jeszcze ładować do RAM-u. To strata czasu i pamięci.
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.
Sam czasami żałuje, ale od czegoś trzeba zaczynać. Zapewne w BASCOMIE należy dać tablice 8 elementową, no ale co dalej? :d
Witam a nie lepiej do tej pracy zastosować kalendarz :) z zegarkiem RTC przecież wiadomo gdzie będzie słońce i kiedy wystarczy wpisać odpowiednie tablice :)
Jaką masz wartość w tablicy "F" z indeksem "k" ?
bascom tablice tablice ascii bascom tablice zmiennych bascom
rozrusznik sterowanie yamaha amplituner tuner stereo ustawianie zbieżności
płyta główna klimatyzator płyta główna klimatyzator
Whirlpool zmywarka błąd F1 – resetowanie, kasowanie kodu, modele ADG, WIO, Evo3, PowerClean Makita EM4351UH gaśnie po dodaniu gazu – przyczyny, czyszczenie gaźnika, regulacja, filtr paliwa