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)
Wczoraj jakaś pomroczność mnie dopadła :D ..ale spróbujmy dzisiaj. Zobacz czy tak nie zadziała ;) Varptr to skrót od variable pointer Const Zmienna = Varptr(Dane(_base)) i potem LDS R1, {Zmienna}
Nie wiem dokładnie czy bascom dokonuje konwersji typu string na byte w tym może być problem. Spróbuj zmienna nm zadeklarować jako 'byte' może pomoże.
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. ;)
Tablice wielowymiarowe to albo albo tablice tablic, albo specyficznie numerowany wektor... tablic tablic w BASCOMie nie zrobisz, ale wektor jak najbardziej. zamiast: int tablica[n][n]; tablica[x][y] = zmienna; możesz pisać: int[n*n] tablica; tablica[x*n+y] = zmienna; To jest oczywiście zapis w składni C++, w BASCOMie tablicę deklarujesz tak: Dim tablica...
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....
tak, interface wyjściowy to UART TTL ale to w niczym nie przeszkadza i można go podłączyć bezpośrednio do portów uC. Aby Komputer skomunikował się z uC należy: po stronie kompa: -podłączyć moduł radiowy USB(po podłączeniu modułu powinien zamigotać diodkami) -skorzystać z terminala i otworzyć port COM z numerem dla jakiego zainstalował się moduł -prędkość...
Stwórz tablicę za pomocą: Dim Zmienna(5) As Byte 'lub Word, Integer, Long, Single, Double... Przed zapisem aktualnej wartości do Zmienna(1), przesuń wartości z 1, 2, 3, 4 o jeden indeks (na 2, 3, 4, 5). Pamiętaj aby zrobić to tak, by nie "zamazać" wartości przy przesuwaniu. Potem zapisujesz aktualną wartość do Zmienna(1) i masz komplet, który...
Taa, bo mialem tę linijke napisaną a potem się okazało, że zmienna Alarm już jest i tablicy z niej nie chciałem robić żeby nie było zamieszania. Stworzyłem więc Alarm_nr(5) (zamiast Alarm1,Alarm2,Alarm3..) a o tej linijce zapomniałem ;) Widzę czujność jest :D
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...
Wiec tak... zamiast pisac Sub'a ktory oblicza numer wolnej komorki mozesz zrobic to w funkcji. Funkcja wykona otrzebne obliczenia i zwroci numer wolnej komorki pamieci. Choc nie wiem czy do tego jest potrzebne pisanie Sub'a lub funkcji ale jesli chcesz... Function wolna_komorka() As Byte 'tutaj wykonujesz potrzebne obliczenia wolna_komorka =...
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...
Kombinuje tak: bajt = 10000000 zmienna = bajt.1 zmienna = 1 ... i tak osiem razy rozkładając bajt na bity i później tylko je poskładać w odwrotnej kolejności. Oczywiście prosto nie jest. O tablicach myślałem ale musiałbym je ręcznie rozpisać na kartce 256 i zrobić obok lustrzane odbicie i przeliczać :D Można tak: [syntax=basic4gl]$regfile = "m8adef.dat"...
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...
...czyli jak mam to zrobić proszę o jakiś przykład Użyj tablicy i adresowania bitowego. Np. [syntax=basic4gl]Dim Tablica(10) As Byte Dim I As Byte For I = 0 To 79 Tablica(1).i = Pind.0 Waitus 200 Next[/syntax]
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 )
Witam Ogólnie zmienna Zx jest większa od 255, ale nie większa od 350, i po to odejmuje od niej 100, aby "zmieściła" się w Byte. Nawet jak Zx jest mniejsza od 255, to i tak dzieje się to samo. Pozdro
Czy deklarując w bascomie globalna zmienna tablicowa byte o wielkośći 224 Dim Tablica(224) as byte Muszę jakość ją uwzględnić przy parametrach $hwstack = 250 $swstack = 250 $framesize = 25 Procesor to atmega64
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...
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...
Źle podchodzisz do problemu - zmienna i (czyli numer wyświetlanej cyfry) powinna być zmienną globalną, którą w przerwaniu od timera zwiększasz, a następnie wykonujesz blok switch (i) { ... }. Oczywiście delay w przerwaniu to "bluźnierstwo" :) Preskaler ustaw sobie na 64, wtedy przerwanie od timera dostniesz ok. 400x na sekundę, czyli odświeżanie całego...
W ten sposób to ci się nie uda. Restore to przywołanie całego bloku data o jakiejś nazwie. Funkcja read czyta kolejne znaki - jak w tablicy. Aby kod zadziałał powinieneś użyć funkcji lookupstr: do numer_opisu=0 tekst = Lookupstr(numer_opisu , Menu_opisy) lcd tekst loop end Menu_opisy: data "1-opis", "2-opis", "3-opis"...
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
Więc wiadomo już jaki to język, oczywiście bascom. Jest wykorzystywana taka sama zmienna ponieważ dane typu byte, zmienna startuje od 1 i index w tablicy pokrywa się z adresem eepromu. Bez problemu odczytuję dane z eepromu (oczywiście poza pętlą) więc eeprom na pewno jest :). Racja jest coś o tym w helpie, ale jakoś nie bardzo rozumiem dlaczego działa...
wyświetlanie cyfr na dowolnej liczbie wyświetlaczy podłączonych do procesora jest znacznie łatwiejsze niż obsługa LCD chyba, ze korzystasz z gotowych procedur. Teoretycznie jest tak jak piszesz ale... w Bascom... Obsługa LCD ogranicza sie do zadeklarowania pinów LCD procesora i podania komendy LCD "zmienna" a w przypadku wyświetlaczy LED dochodzi konfiguracja...
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...
Jeśli masz zmienną w eepromie to nie zawali ci to flasha. a potrafisz wstawic zmienna do flasha?? i ja jescze modyfikowac podczas dzialania programu?? :) - zmienna to albo RAM albo EEPROM, o flashu wogole nie ma mowy. co najwyzej tablice STAŁYCH.
nie zapomnij że można wybierać zmienną z tabeli inną zmienną np portd = kolumny(k) a nawet bity portd = kolumny(k).b gdzie k i b to zmienne typu byte Możesz więc stworzony tekst umieścić w tablicy a potem np zmieniając początkową wartość zmiennej k robić przesuwanie tekstu. Ogólnie żeby nie smużyło to tak: portb = zmienna(1) stan na 1 kolumnie czas...
Z tym, że tablice musiałbym wcześniej wpisać w program, a mi chodzi o to, by "uczyć" tego robota danego zadania. Jeśli zmieniłbym odległośc punktu A od B i znowu postawił przeszkode, w którą by robot uderzył, to wtedy ponownie musiałby zapamiętać nową trase. Przy czym jeśli działałbym w obrębie pamięci RAM, kasowałbym ją po prostu resetem zasilania....
EDIT: Dobra wszystko sobie dopracowałem, ale nie wiem jak to ująć w jednej tablicy?? Jakbyś mógł wyjaśnij mi mniej więcej jak działają te tablice ;] Ile miałeś czasu na ten wąż w BASCOM 8051 ? Tablice działają bardzo prosto, masz zbiór zmienny o zadeklaarowanym typie w przypadku BASCOM od 1 do n i możesz się odwołać do konkretnego elementu np tab(1)=x...
jezeli rzeczywiscie to bedzie dzialac.. (przyznam sie ,nie wnikalem ;) to to from..zrob normalnie w petli for albo odrazu wyswietlaj albo umieszczaj zmienna nie w 'C' tylko w jakiejs tablicy i potem wyswietlaj for i=A to B Read eeprom C , i next i
oczywiście, że wystarczy $asm ... kod twojej wstawki $end asm ale oczywiście przydałoby się jeszcze wiedzieć jak można uzyskiwać w asemblerze dostęp do zmiennych itp, otóż: Dim Zmienna1 as Byte $asm lds R16, {Zmienna1} ... coś tam robimy sobie w asm ze zmienną i chcemy ją uaktualnić, więc: sts {Zmienna1}, R16 $end asm powyżej...
Znalazłem specjalnie dla Ciebie jeszcze kilka bajtów :D ahahahahaha Bascom stara się być "ignorantoodpornym" czyli jak ktoś może czegoś nie wiedzieć to on to, na wszelki wypadek, robi za niego. W języku C każdą zadeklarowaną zmienną najczęściej inicjuje się jakąś wartością ponieważ po reset nie można być pewnym, że w niej znajduje sie zero lub potrzebna...
Co do tekstu to nie wiem, ale co do zmiennych to np w jakimś rejestrze masz zmienna niech będzie to "x" i jeśli chcesz wyświetlić na wyświetlaczach to ja robie to tak: jeśli interesuje cie wartość od 0 do 99 to po prostu dzielisz x przez 10 i na pierwszy wyświetlacz ( x/10 ) później reszta z dzielenia i na drugi ( x%10 ), a jeśli chcesz na trzy wyświetlacze...
Kolego tera nie działa mi ustawianie godzin a zrobiłem to tak deklaracja:[syntax=vbnet] Declare Function Ustaw(byref Godziny As Byte , Byref Minuty As Byte , Sekundy As Byte) As Integer Declare Sub Znak(cyfra As Byte) 'deklaracja tablicy stałej do wyświetlania cyfr i znaków na wyświetlaczu 7 seg Declare Sub Czytaj 'deklaracja funkcji bez parametru do...
Witam Jakoś nie widzę problemu. Po pierwsze można sobie zadeklarować zmienną tekstową, która może przechować do bodajże 255 znaków. Można sobie też zadeklarować tablicę z takimi zmiennymi i odpowiednio operować tymi danymi. Na przykład każdy nowy SMS będziesz wpisywał do pierwszej komórki w tablicy po tym jak poprzednie SMSy przesuniesz o jedną pozycję....
Sposobów pewnie jest więcej. Poniżej masz dwa. [syntax=basic4gl]Dim Zmienna_string As String * 15 Dim Tablica_danych(16) As Byte At Zmienna_string Overlay 'jesli w stringu masz takie wartości 'A|B|E|C|A|D|L|O|_|Z|P|I|E|C|A|NULL '1|2|3|4|5|6|7|8|9|10|11|12|13|14|15| 'to interesująca Cię wartość jest w Interesujace_dane = Tablica_danych(5) 'Możesz też...
Zrób tablice 1x4, tak abyś zapamiętał/przyporządkował że 1 komórka to alarm1_L, druga - alarm1_H itd. Masz zmienna "menu" więc niech ona pokazuje indeks w tabeli jakie jest aktualne to menu. Np. Menu=2 to wiadomo że chodzi o alarm1_H. W nastawach edytujesz tylko te komórki tablicy na które wskazuje ci "menu". Np. tablica "parametry" - a to co chcesz...
Witam. Zadeklarowałem 10 elementową zmienną tablicową typu Integer. Do każdego wiersza w tablicy, zostaje przypisana odpowiednia wartość: np. zmienna(1) = 321 zmienna(2) = 692 itd... W jaki sposób mogę wskazać, który element tablicy ma największą wartość? Dla tablicy 10 elementów można rozpisać warunki If...Then, jednak dla tablicy zawierającej np....
Małe pytanko do jakiego to jest scalaka? Jesli do ds1822 to strona 3 manuala LSB 62(dec)=3e(hex) MSB 2(dec)=02(hex) cała liczba 023e(hex) cztery najmlodsze bity to wartosc po przecinku temp= 023,e (hex)= 35.... e=1110 0,e=(1/2+1/4+1/8)=0,875 zatem masz za niska temp ciała 35.875 *C :) kod przykladowy dla delphi: temp:=(buf[1] and 7)*16+((buf[0] and...
Standard 5V, czytnik wysyła kod ciągle po zbliżeniu transpondera i przestaje wysyłać po oddaleniu go, "wpisać na sztywno" miałem na myśli spisać w program jeden transponder (zmienna, może jakaś tablica) i porównywać to z odczytem, o do zamieszczenia kodu lub schematu to wolał bym napisać na nowo cały program, atmega działa na 100%, Kwarc mi nie robi...
Cały program do odczytu i wyświuetlenia ID dowolnej pastylki DSxx Dim Reg_no(8) As Byte 'tablica do przechowywania ID pastylki Dim I As Byte 'zmienna pomonicza Do 1wreset 1wwrite &H33 Reg_no(1) = 1wread(8) 'Odczytaj ID pastylki i wpisz do tablicy Cls For I = 1 To 8 Lcd Hex(reg_no(i)) 'Wyświetl w postaci hex zawartość tablicy Next Waitms 500 Loop
Po pojawieniu się PINB.0 = 1 zwiększaj indeks tablicy Idx. Idx to zmienna którą będziesz indeksował tablicę w poleceniu: Lcd Tablica(idx). Ponieważ program może być na tyle szybki, że mógłby przesunąć indeks tablicy o parę kroków naprzód jeśli na PINB.0 utrzymuje się stan wysoki, to musisz też zapamiętać czy zwiększenie zostało już wykonane i pozwolić...
Zrob to po swojemu, bez kozystania z procedur Bascoma. ustaw odpowiednie rejestry, wlacz przerwanie i w jego obsludze wpisz byte=udr i tyle. W zmiennej byte bedziesz mial odebrana dana. Zmienna najprosciej zadeklarowac jako tablice czteroelementowa i do tego wskaznik zliczajacy do 4. Kazde przerwanie bedzie zwiekszalo dodatkowo wskaznik i sprawdzalo...
Calego kodu nie ma sensu wklejac bo to duuuzy program :) tutaj fragemnt dotyczacy tego zapisu Dim T1 As Byte , T2 As Byte , T3 As Byte , T4 As Byte Dim Temp As Integer '--- DZIEN --- '-IN- Dim Tin_zapis_dzien(7) As Eram Integer Dim Tinu_zapis_dzien(7) As Eram Byte Dim Tinmax_zapis_dzien(7) As Eram Byte Dim Tinumax_zapis_dzien(7)...
Coś w tym stylu: zmienna i - integer zmienna lampy - tablica bool ze stanem lamp for i od 1 do 8: if lampy[i] == true: wyświetl "lampa nr i włączona" czekaj 2s Jeśli masz oczekiwanie zrobione na przerwaniach, to trzeba by coś takiego: przerwanie co 2s: do: i = i+1 while (lampy[i] != true) and (i<=8)...
Przetestuję i zobaczę, ale dla częstotliwości zegara taktującego atmegę równej 16MHz to powinno dość krótko chyba trwać. Zobaczę i zmierzę w praktyce. Szczerze mówiąc nie wiem, ile będzie trwało. Nie wiem też, jak to skompiluje Bascom. Najlepiej sprawdź. Tablicę można zrobić, tylko do tablicy nie mogę wpisywać wartości Single, a zmienna całkowita Integer...
Witam, chcialbym sie podlaczyc po ten topic gdyz mam pewien problem z obsluga DS1820 i DS18B20 z ATMega128 Mianowicie, po podlaczeniu w trybie 2wire (1 - GND, 2 - PinB.7/PinE.7 itp., 3 - Vcc 5V) do ATMega128 z kwarcem zewnetrznym 10MHz (innego uzyc nie moge) po wykonaniu komend w Bascom AVR: config 1wire= portb.7 dim rgn(8) as byte 1wreset wait...
Witam. Wysyłam już zmienną tablicową i ją obieram ale jest problem. Otóż urządzenie nadawcze wysyła zmienną co minutę a odbiornik w pętli głównej czeka na tą zmienną poleceniem: [syntax=basic4gl]Inputbin send(1) , 6[/syntax] No i właśnie program zatrzymuje się na tym inputbin i czeka aż odbierze zmienną. Jak sobie z tym poradzić aby program nie czekał...
Można wyświetlać temperaturę w podmenu "wybór_Ds" ale trzeba zmienić cały program. Chyba nie jest tak trudno zapisać sobie cztery ID czujników i wiedzieć później który gdzie przypisać. Najlepiej osobno podłączać każdy czujnik i na naklejce na kablu przy czujniki zapisać jego ID. Wiedząc gdzie jakie jest ID czujnika można już mu w podmenu przypisać odpowiednią...
Wysyłasz poleceniem: Printbin Bascom automatycznie wyśle 4 bajty z których składa się zmienna Long. A odebrać może poleceniem Inputbin Ale ta metoda nie jest zalecana bo program zatrzymuje i czeka do momentu aż odbierze 4bajty (jeśli odbieramy zmienna Long) Lepiej odbierać dane w przerwaniu i zapisywać je w tablicy a następnie użyć polecenia memcopy....
Witam! chyba koledze o co innego chodzi. A tu się tak nieda. To nie C. Kolega chciałby zrobić tak jak możemy robić w C czyli np. tak: const unsigned char zmienna[3] = {1,2,3,4}; Niestety, też w BASCOMIE nie znalazłem takiego czegoś, i miałem dosyć wpisywania po kolei zaciemniając kod. Pamiętaj, że w C pierwszym elementem tablicy jest...
' 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...
Bo BASCOM indexuje tablice od 1 a nie od 0. Co jest najgłupszą rzeczą w BASCOMie. Normalnie dał bym zmienną Byte i sama by się ona przewijała od 255 do 0. A tak musiałem dać zmienną Word i zrobić tak: Zwiększ Zmienną o 1. Odczytaj Tablicę Dodano po 11 Danie bufora o wielkości 512B nie pozwoli na odczyt całych sektorów. Gdyż odczyt mógł by zachodzić...
Teraz układ działa poprawnie, z ping'owałem go i ruszyło. Udało mi się uruchomić stronę internetową na tym układzie jednak pojawił się problem z odczytem temperatury. ********* ZMIENNE ********* Dim Nr_ukladu(8) As Byte 'tablica w której przechowamy nr seryjny układu Dim Zmienna As Byte 'zmienna pomocnicza wykorzystywana jako licznik Dim Temp...
Witaj :D Według mnie tablica jest niezbedna poniewaz to w niej sa zapisane wlasciwe znaki , i wydaje mi sie ze nauczuciel sie myli bo samo polecenie getatkeyb() zwrocilo by numer wcisnietego klawisza a nie konkretna literke , liczbe czy znak . Przykladem moze byc fragment polskiego helpa do bascom-a w ktorym jest opisane dzialanie tego polecenia Funkcja...
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...
Mam problem. Wydaje mi się że PRAWIE wiem o co chodzi, ale PRAWIE robi wielką różnicę:) Kompiluję Program i wyskakuje mi błąd OUT OFF INTERNAL MEMORY jeśli dobrze myślę to oznacza to poza zakresem wewnętrznej pamięci RAM. I w tym sęk. Jeśli dobrze kombinuję to ram powinien być zajmowany tylko przez zmienne??? A jeśli tak, to dla czego przy ilości zmiennych...
Niestety nie potrafię tego przełożyć na Bascom więc , może przedstawię Ci koncepcje jak to pisałem ok ? Aktualnie dla jednej napisane bo nie mam jak dołaczyć drugiego ( jestem niestety po za miastem ) , ale nie ważne . Więc jesli patrzyc z perspektywy jednego 8x8 : Ustawiłem Timer na f = 50 Hz * 8 ( kolumn ) . W obsłudze przerwania wpycham do rejestru...
Witam, W programie zapisuje kilka zmiennych String w eepromie potrzebuje uzyskać z nich taką tablicę do po prawnej działania pętli for [syntax=basic4gl] Memory(1)="zmienna a zmienna b zmienna c" Memory(2)="zmienna a zmienna b zmienna c" Memory(3)="zmienna a zmienna b zmienna c" Memory(4)="zmienna a zmienna b zmienna c" Memory(5)="zmienna a zmienna b...
Tak jak wcześniej pisałem sprawdź deklarację zwłaszcza tablic, może masz tablicę np temperatura 8 elementową a wpisujesz do niej 9 elementów...? 9ty element zostaje wpisany w miejscu gdzie może być zadeklarowana np zmienna G.... ale bez kodu to tylko gdybanie, zadeklaruj G na samym początku wtedy nic jej nie nadpisze, ale to nie rozwiąże problemu do...
witam ponownie,niestety procedura nie działa jesli dobrze rozumiem to uwarunkowanie 'if tmp2=1' oznacza :jesli zmienna tmp2 na pierwszym miejscu a 'tmp2=2' oznacza :zmienna tmp2 na drugim miejscu ,tak masz na myśli ? przepraszam moderatora ale niebardzo wiem ja to zrobić zeby listing wyświetlał sie w tych białych oknach ,bo to sie chyba niektórym niepodoba,także...
Witam Jestem młodym elektronikiem. I nie potrafię wykorzystać mojej pamięci eeprom. Piszę w Bascomie. Mam polską wersję, helpu z Bascoma, ale tej nie rozumie. Skoro nie rozumiesz po polsku ;) , to w jakim języku mam Ci to wytłumaczyć :?: Spróbuję jednak po ... polsku ;) Oto próbka kodu, który mi nie działa. $lib "mcsbyte.lbx" $regfile = "2313def.dat"...
Witam, mam taki problem... ostatnio zacząłem uczyć się bascoma i teraz probuje go zmusic do tego, by z cyfr odczytanych z klawiatury matrycowej (zalozmy, ze przechowuje je np zmienna Cyfra typu Byte) stworzyc liczbe (np. Liczba typu Integer)... W C bym ja zapisal do tablicy i w odwrotnej kolejnosci pomnozyl przez kolejne potegi 10-ki a potem dodal......
hm.. przy i2cwbyte niewidze delay'a 10ms na to aby eeprom mógł zapisac dane, z tego 'loadera' do eeproma wywnioskowałem że ten 'obrazek' (tablica bajtów) jest ładowany pod adresy od 0 do 255. kolejny błąd jaki widze to 'to' że tablica ta ma 504 bajty i w żaden sposób niezostanie cała zapisana do eeproma przez ten pierwszy kod. kolejny problem jest taki...
pixel7 -> mam ten programik i próbowałem działać wg niego ale hmmm jakieś dziwolągi mi wychodzą. z tym, że muszę się przyznać, że teraz próbuję to zrobić w Bascomie. W sumie te operacje typu załadowanie wartości do timera, w jego przerwaniu włączenie triaka i wyłączenie timera nie powinny zajmować aż tyle czasu w Bascomie żeby takie proste sterowanie...
Z tego co stwierdziłem, to czy odbieram: Inputbin Rx_data(1) Inputbin Rx_data(2) Czy Inputbin Rx_data(1),2 To zawsze odbiera mi tylko wysłany pierwszy bajt. Dodano po 31 Kolejna dziwna sprawa: Jak wysyłam : Send_data = 6 Printbin Send_data ; 8;<----------wysyłam daną send_data i jakąś liczbę to w odbiorniku obie są poprawnie odbierane i sprawdzane....
(...) ' 5 Data 250 ' 6 Data 131 ' 7 Data 251 ' 8 Data 219 ' 9 Wstępna ocena dostępnych informacji W kodzie widzimy dwa liczniki (Liczba_ok i Liczba_nok) zadeklarowane jako zmienne typu Word, a także tablice na cyfry (Cyfra_ok i Cyfra_nok) jako typ Byte. Z punktu widzenia zakresu wartości samych liczników (od 0 do 999) nie powinno to powodować błędów...
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...
Zgadza się, pod tym względem Bascom jest nieco ułomny. Wystarczy na przykład zadeklarować tablicę jednowymiarową (mogliby wreszcie zrobić obsługę przynajmniej 2-wymiarowych) i zapełniać ją wartościami od zera - będą się dziać dziwne i nieprzewidywalne rzeczy. A wracając do tematu: czy ktoś wie, co dopisać w obsłudze przerwania? Rozumiem, że brakujący...
Witam wszystkich może zwracam sie z banalnym pytaniem lecz nie mogę sobie poradzić a mianowicie mam pętle for(i=0,buffer buffer[5]=0; >> tak jak jeden z moich przedmówców napisał (Freddie Chopin) 6 element 0,1,2,3,4,5 = 6 elementów . C to nie bascom ;) zakładam ze gdześ w programie masz : unsigned char buffer [14] = {11,33,...8} oczywiscie to tylko...
szkoda, myślałem, że może firma Philips coś "zaszyła"> Ale skoro nie to pewnie nie ma znaczenia co się podłączy ( byle poprawnie ) tylko jak to się "obsłuży", czyli adres układu i odpowiednia składnia. Co do kodu to spory, bo nie za bardzo mi to na początku wychodziło, tzn. np. program cały czas "biegł" pokazując wszystkie adresy po kolei w jednej pozycji...
może napisz Sobie jednak prostą funkcję? poiedzmy że możesz mieć tych zmiennych 24 *3 byte* No to siup powiedzmy, że masz zmienna tab(3) as byte no i jazda... masz funkcje która zwraca przez ciało 0/1 (nie wiem czy może zwracać bool, więc najwyżej niech zwraca byte) w ciele funkcji dzielisz adres_bit przez 8 całość to numer byteu w tablicy, reszta to...
Znalazłem kod tablicy świetlnej, 8x8 sterowanej przez rejestr 74164, niestetypo załadowaniu programu na tablicy świecą się tylko trzy kolumny diód :(. Czy ktoś mi pomorze to rozgryść? 'Program tablicy świetlnej 'Sterowania multipleksowe wyświetlaczem matrycowym 7x5 LED 'Częstotliwość sterowania kolumn wyświetlacza wynosi ok. 333 Hz 'czyli częstotliwość...
Witam, przepraszam że dopiero teraz odpisuje ale dopiero teraz znalazłem troche czasu na wznowienie projektu. Dziękuje za pomoc. Wcześniej miałem zrobione tak: Select Case Text Case 0 : Pion = Lookup(linia_zmian , Dig_0 ) ...itd... Case 104 : Pion = Lookup(linia_zmian , Big_pz2 ) End Select A tablice znaków wyglądały tak: Dig_0:...
Witam ponownie,ma ktoś może jakiś sprawdzony software'owy patent na odczytywanie znaków z eepromu?Cały problem leży w tym aby zamienić znaki string"abcd..." na ascii i odnaleźć w tablicy znaków w eepromie. Napisałem taki kod: Sub Strlcd(byval Chstr As String) 'wpisanie stringa Local A As Word 'zmienna pomocnicza dopasowujaca wartosc znaku ascii...
Witam ! Skopiowalem sobie z Helpa bascomu taki oto kod... chce to skompilowac ale wywala blad najpierw przy: W = 1wirecount(ar(1)) pozniej: Ar(1) = 1wsearchfirst() Ar(1) = 1wsearchnext() Posiadam taki procesor jak jest zadeklarowany w kodzie...ale za Chiny nie chce to ruszyc :( '---------------------------------------... ' 1wirecount.bas...
Witam.mam taki male pytanko. NA poczatku zalaczam kawalek przykładowego kodu w C " int main(void) { DDRD=0xff; uint8_t seg Dodano po 13 ups.. to juz zsotalo jedno tylko pytanko..o skok do drugiego elementu tablicy. co do resetu to : Reset zeruje tylko zmienna globalna a zmienna lokalna pozostaje nie ruszona :) Ze tez tego nie moglem sie nigdzie doczytac...
Witam, Mam problem. Chodzi o listingi z książki Marcin Wiązania - Programowanie mikrokontrolerów AVR w języku Bascom W książce są dwa przykłady sterowania matryca Led 5X7 Pierwszy przykład z książki ma za zadanie wyświetlać znaki po kolei i to działa. Natomiast drugi listing ma za zadanie przesuwać znaki z lewej do prawej. I to już nie działa. Schemat...
przeanalizuj sobie dobrze ten kdzik poniżej bo on jest dobrze napisany - naprawdę ;) ja wprawdzie kiedyś przy okazju swojej wytrawiarki też zrobiłem sterowanie w Bascomie 2 odbiorników przy 75 krokach ale dałoby radę więcej kroków i jeszcze kilka odbiorników. Z tym, że już nie pamiętam dokładnie zagadnienia więc trudno mi się teraz znowu w to wgryzać....
Atom, ok, jesli to PlasmaColors to adres tablicy to wporzadku, z tym, ze po co stosowac tyle rzutowan, skoro mozna potraktowac calosc jako tablice? I tak też było do tej pory. Na wskaźniku zrobiłem to tylko na potrzeby tego tematu :D Takie wielokrotne rzutowania to nic dobrego, co jesli wykorzystasz to w systemie w ktorym adres nie jest 32-bitowy?...
Witam. Przypuszczam że znalazłem błąd w funkcji MemCopy , ale chciałbym sprawdzić czy nie występuje on tylko u mnie. :). Funkcja zwraca do zmiennej WORD lub INTEGER ilość skopiowanych bajtów. Jeżeli wynik ma być zwrócony, do zmiennej globalnej jest wszystko w porządku. Kłopot zaczyna się jeżeli wynik ma być zwrócony do zmiennej lokalnej, po zakończeniu...
Witam , pisze prosty programik sterujący PWM 3 ledy RGB przez androida po BT. Zatrzymałem się na rozbiciu składni wysyłanej przez androida np. wysyłam apką "serial bluetooth terminal" G128 czyli zielona o poziomie 128 PWM (50% jasniści) w odbioeniku: IF dane = "G128" then... , oczywiście odbiera lecz tylko konkretny rozkaz i steruje PWM , można stworzyć...
Reg_no(i) = 1wsearchfirst() For I = 1 To 8 Writeeeprom Reg_no(i) , 10 Next tego całkowicie nierozumiem, najpierw zapisujesz dane do tablicy pod indexem którego nawet nieznasz (zmienna 'i' niejest zainicjalizowana) oraz nierozumiem zapisu 8 bajtów, wszystkie pod ten sam adres w pamięci eeprom, pierwsze 7 bajtów zostanie nadpisane i ich nieodzyskasz....
No to mam juz jakis podstawowy kod do pomiaru predkosci :) mam multipleksa NIE WIEM CZY DOBRZE ZADEKLAROWALEM PORTY - prosze o sprawdzenie czy ilosc cyferek sie zgadza i czy prawidlowo "pominalem" bity kwarcu (portB) resetu (PortC) i timer'a (portD) - wystarczy tam dac zera (wejscia) i juz?? no i potem jak deklaruje ktore maja byc w jakich stanach to...
Program działa, chociaż wydaje mi się, że temperatura jest ciut zawyżona, no ale może i faktycznie taka jest. Mam jeszcze inny problem, a właściwie póki co za małą wiedze w temacie, żeby wiedzieć jak ten temat ugryź, a mianowicie: Mam tak zdefiniowane zmienne: ( or ) missing [IF(CHR(S2(1)) = 4 THEN] Assigment error...
Może być i zmienna tablicowa w pamięci ram jeżeli masz 10 wolnych bajtów. A może być i coś takiego: na końcu programu deklaruję taką tablice (kolejne liczby są wartościami wpisywanymi do portu, które zapalają odpowiednie segmenty): Tabela: Data 192 , 249 , 164 , 176 , 153 , 146 , 130 , 248 , 128 , 144 np. wyświetlacz podłączony do portu B, cyfra...
Moim zdaniem schemat niczego nie wnosi gdyż jest podłączona klawiatura matrycowa do portu d wyświetlacz do portu c a dioda do inu 0 portu b. Ma ona się zapalić kiedy zostanie wciśnięty klawisz w celu zwiększenia wartości zmiennej, która ma odpowiadać za ustalanie cyfr jedności dziesiątek itd. aby wprowadzać liczby kilku cyfrowe z klawiatury. Ok mam...
Otóż pisząc program obsługi tablicy reklamowej (na Atmega32 )zupełnie przypadkiem stwierdziłem, że na zmienną typu string np 10 znakową można zapisać np 20 znaków instrukcją Restore i Read. Co więcej to działa w normalnym programie tak jakby ta zmienna miała faktycznie 20 znaków ! Oto przykład sprawdzony na symulatorze: Dim Tekst As String * 10 Dim...
Np. tak 1wverify Dsid4(1) jeżeli urządzenie o podanym adresie ID odpowiada to zmienna err zwraca 0 jeżeli nie to 1. A wszystko w helpie opisane... Zgadza się z tym że ja już nie chę korzystać z każdorazowego odczytu adresów czujników tylko wpisac je na stałe np do tablicy w programie i nie korzystać już z komend Dsid1(1) = 1wsearchfirst()...
Jeżeli przerwy mają wynosić max 3 sek. to zmienna typu word jest wystarczająca. Zmienna tablicowa jest chyba najbardziej odpowiednia, np. tak: t 1 = t1 - 1 lub decr t1 t2 = .... . t4 = t4-1 . . . . if t 1 = 0 then portx.x = 1 waitms 2 port x.x = 0 index1 = index1 + 1 t = sekwencja1 (index1) endif if t 2 = 0 then portx.x = 1 waitms 2 port x.x = 0 index2...
Witam Zmontowałem sobie układ Atmega32 z pojedynczym wyświetlaczem 5x7 i wszystko działa tak jak należy ale problem zaczyna się w innym miejscu. Potrzebuję połączyć 3 takie wyświetlacze, lecz nie mam pojęcia w jaki sposób to zrobić. Proszę o pomoc Tutaj podaję listing programu http://obrazki.elektroda.pl/2811327600_1...
Acha, czyli chcesz zapisywać to jako różne stacje? No ale czy potrzebujesz do tego znać te adresy? Czy w radiu użytkownik zna adresy? Albo czy ta znajomość była by dla nie go wygodna? Nie zna i nie była by wygodna. On to zna jako numery stacji. 1, 2, 3... I to samo proponuję Tobie. Wystarczy Ci 1 zmienna Index. Zmieniasz ją 2 przyciskami góra/dół. Przy...
Zmniejszyłem prędkość na 57600bps, dopisałem aby wysyłał zawartość 10 elementów z tablicy Ubuf(), oraz aby ponownie wysłał zawartość tej tablicy pod koniec procedury transmit, czyli tuż przed wysłaniem danych do magistrali RS485. W terminalu dostaję: TARGET 7 3 2 10 0 26 0 37 0 0 SENDING 7 2 3 10 0 22 0 37 0 0 Piwerwsza liczba zaraz po słowie "TARGET"...
Tworzę sterownik który będzie operował na 4szt DS18b20 Program jest pisany w bascom Czy w bascomie można zadeklarować tablicę dwu wymiarową Tablica (4)(8) Dla czego przy odczycie danych muszę ponownie resetować magistralę i podawać numer seryjny układu. Podobno po wysłaniu za pierwszym razem numeru układu inne milczą a wskazany nadsłuchuję 1wreset 1wwrite...
Dave, w sumie masz racje :-) pierwsza podana przez ciebie opcja jest lepsza. Jedyne co mi pozostaje to jak skladowac ( przechowywac ) zapisane nastawy? nie mam ( nie znalazlem w Bascomie ) mozliwosci stworzenia takiej tablicy. najchetniej zrobilbym to tak: zegar - podaje czas z zegara start(6) przekaznik(6) czas(6) status(6)...
Witam! Mam problem z przerobieniem kodu tablicy świetlnej z wyświetlaczem matrycowym led. Posiadam kod z książki Marcina Wiązani - Programowanie mikrokontrolerów AVR w języku Bascom przerobiony według instrukcji użytkowników w temacie: 'Program tablicy świetlnej 'Sterowania multipleksowe wyświetlaczem matrycowym 7x5 LED 'Częstotliwość sterowania kolumn...
Jeszcze jedno... Ma ktos jakies przykladowe menu w bascomie? obsluge guziczkow sobie zrobie - nie problem,... problemem bardziej czy to robic na ifach wszystko? Czy sa jakies typowe aplikacje z takimi menusami?moze jakis link znacie? Pozdro Dodano po 1 I jeszcze jedno pytanko mam :D Czy da się coś zapisać (z poziomu uruchomionego układu) do tej megi?...
Jeżeli między znakami masz jedną kolumnę odstępu, to na pierwszej stronie będą dwie, a nie jedna kolumna z drugiego znaku, no ale to szczegół ;) Nie wiem, jak masz zapisaną "czcionkę". Jak na moje oko, to może być po bajcie na każdą linię i takich linii 7, jedna po drugiej, potem następny znak itd. Nieużywane bity (te z prawej, znaki wyrównane sa do...
http://obrazki.elektroda.pl/1523592300_1... W schemacie pominąłem zasilanie i podłączenie LCD. Kod: (został wzięty z książki M. Wiązania - "Programowanie mikrokontrolerow AVR w jezyku Bascom", usunąłem kod od obsługi LCD bo mam go ustawionego w bascomie) $regfile = "m8def.dat" $crystal = 8000000 Config 1wire = Portc.5 'konfiguracja...
zmienna bascom bascom zmienna bascom tablica
stabilizator zwiekszyc przebarwi kolor fronius licznik energii
elektroniczny licznik przepływu usterki bramy garażowej
Lokalizacja wyłącznika wstrząsowego w Volvo S60 2001 Renault immobilizer: Key code registered, validate, inserted