witam nie bawiłem się jeszcze 1921 ale obsługa jest standardowa tylko przy odczycie temperatury musisz dać opóźnienie na konwersje temperatury jakieś 750ms. DS1994 ma wiele funkcji i własny eeprom po za tym można zrobić całkiem dobry system kontroli dostępu zabezpieczenia wszystko zależy od pomysłowości. pamiętaj jedno jak piszesz cokolwiek do 1-wire...
Mając trochę wolnego czasu napisałem parę funkcji do obsługi układu PCF8583. Funkcja która ustawia godzinę i datę zapisuje też dane potrzebne do obliczenia pełnego roku, dzień tygodnia jest obliczany automatycznie na podstawie daty. Funkcje Pcf8583_write i Pcf8583_read można wykorzystać do zapisywania/odczytywania danych z wolnej pamięci ram. Dostępne...
Ad1. Ponieważ jest to mój drugi poważniejszy program w Bascom . Po za tym to wycinek całości, więc możliwe są braki w programie. Ad2. Chyba zrozumiałem na czym polega błąd. Powinienem skonfigurować timery i skok do podprogramu a w programie tylko stosować start/stop TIMERx. Ad3. Właśnie ten skok do podprogramu przy obsłudze przerwania też mi nie pasuje...
Zainteresuj się funkcją lookup . Pozwala ona na odczyt danych z DATA, na podstawie ich pozycji. Wszystko masz opisane w help-ie BASCOM-a.
Jezeli to jest Bascom to w helpie jest napisane ze readeeprom nie dziala w tego rodzaju petli !! Sposob realizacji odczytu/wpisu wiekszej ilosci danych jest tez tam podany. Sprawdza sie stare madre porzekadlo "Jesli nie wiesz jak cos dziala zajrzyj do instrukcji" Pozdro Dexter
Na pewno jest to Z80 i mam 2szt ale tylko 1 AY.. i jeszcze na dodatek pożyczony, 8-bitowa szyna danych i 4 linie sterujące. Wszystko odczytałem na analizatorze logicznym Sealea 8Ch i jest dokładnie jak w pdf , wszystkie impulsy sterujące pasują i chcę odczytać jakie idą dane podczas tych impulsów. (nie chce mi się ręcznie przepisywać z analizatora np....
Witam! Dziwny problem. Dlaczego? Zobaczcie. $crystal = 12000000 $regfile = "89c2051.dat" Config Scl = P3.0 Config Sda = P3.1 Reset Tcon.0 Enable Interrupts Enable Int0 On Int0 Odczyt Const Adresw = 160 'adres do zapisu układu 2404 Const Adresr = 161 Dim P As Bit , A As Byte , X As Byte , Y As Byte , I As Byte Dim Z(10) As Byte Kbdclk...
Ponownie witam Dzięki za odpowiedź ale nie chodziło mi o odczyt danych z eeprom'a i porównanie ale o zapis w jednej pętli wszystkich elementów tabeli. Odczyt ID pastylki do tabeli napisałem tak: 1wreset ' Reset magistrali 1wwrite &H33 ' Odczytaj ID For I = 1 To 8 Ar(i) = 1wread() ' Wpisz do tablicy numer ID Next Mam teraz problem z...
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...
LOOKUP nie wie jakiego typu są dane, które ma przeglądać. Równie dobrze możesz mieć tablicę słów (Word) a odczytywać ją bajt po bajcie przez LOOKUP, gdzie zmienną do której zwraca ona wartość będzie Byte. To otwiera pewne możliwości: 1. Normalnie dane są jednobajtowe. Dane dwubajtowe, są w stałych i określonych miejscach oraz jest ich bardzo mało. Zatem...
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...
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...
To chyba jest taka pseudo tablica...
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...
By odrobinę przyspieszyć zrób inaczej czytanie danych z ADC zamiast For C = 0 To 160 'zapełnianie tablicy Nap1 = Getadc(1) Nap1 = Nap1 / 5 Seg(c) = 118 - Nap1 'dopasowanie do LCD Next zrób For C = 0 To 160 'zapełnianie tablicy Seg(c) = Getadc(1) Next For C = 0 To 160 'zapełnianie tablicy Seg(c)= Seg(c)/...
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....
Proponuje użyć tablicy. Do kolejnych jej elementów zapisujesz czasy poszczególnych odcinków. Potem porównujesz zawartość tablicy z aktualnymi pomiarami i wiesz czy jest już przeszkoda czy nie.
W jaki sposób zapisać nazwę aby kompilator nie wyrzucił błędu ? sugerowana nazwa poniżej nie jest akceptowalna lds r1, {Dane(1)} lds r1, {Dane(1)} - tutaj chcesz pobrać pierwszy element tablicy. Tak się nie da. Zarówno niveasoft , jak i pawlik118 mają rację. W przypadku odpowiedzi kol. pawlik118 otrzymasz adres początku tablicy. Natomiast jeśli chodzi...
W ogóle skoro nie potrafisz odczytać tego co napisałem wyżej to znaczy że do końca nie rozumiesz co to tablica. Wyjaśnię najbardziej łopatologicznie. Wyobraź sobie, że tablica to pociąg z wagonami od 1 do 8. Każdy wagonik może przewozić daną liczbę. A cały pociąg ma swoją nazwę np. pociąg "Kopernik" Więc. Ds1(1)=9 Oznacza, że mamy tablicę o nazwie "Ds1",...
Jak czytałeś lub nie :) karta ma sekwencje "startu" , nie pamiętam teraz jaki ma format, jest to jakiś 5bit znak, ja najpierw z czytuje cały bitstream od czytnika i potem funkcją szukam startu jak nie znajdę to "przekręcam" bufor (znaczy ostatni bit staje się pierwszym w strumieniu) i jeszcze raz szukam znaku startu, potem już tylko na podstawie tablicy...
Dim Sc(9) As Byte 'w tej tablicy beda dane odczytane z czujnika Dim Temperatura As Integer 'tu obliczona temperatura Dim Blad_crc As Bit 'a ten bit bedzie ustawiany w razie bledu CRC odczytu '... program ... 1wreset 1wwrite &HCC 1wwrite &HBE Sc(1) = 1wread(9) 'odczytujemy wszystkie bajty z czujnika If Sc(9) = Crc8(sc(1)...
Mój sposób zapisu do EEPROM'u jest kompletny i nie trzeba już używać Readeeprom i Writeeeprom. Tablicy zadeklarowanej w Eram używasz jakby była zadeklarowana w RAM'ie z tą różnicą, że zmiennych w Eram nie można stosować w sposób bezpośredni w wyrażeniach, itp. Musisz daną wartość z Eram skopiować do zmiennej tymczasowej w RAM'ie, wykonać działanie i...
nono cos tego typu. moze bedzie prosciej jak napisze tak: wyobrazcie sobie ze jest maszyna do wtryskiwania goracego plastyku do formy. i jest kilka form max 5 i dla kazdej formy mam dane o temperaturze plastyku sile wtrysku i dlugosci wtrysku czyli 3-zmiene. i teraz przy zmianie formy wybieram sobie na wyswietlaczu ktora forme zakladam uprzednio ja...
To jest odczyt z UARTu. W pierwszej pętli program czeka na pojawienie się litery "R" Potem w drugiej pętli zapisuje wszystkie odebrane znaki do zmiennej K3 aż do momentu pojawienia się znaku nowej linii CR (czyli chr(13)
Można trochę bajtów zaoszczędzić :) Dodaj bibliotekę obsługującą hardwarowe TWI: [syntax=basic4gl]$lib "I2C_TWI.LBX" ...... I2cinit Config Twi = 100000[/syntax] Odczyt danych z EEPROMU, zamiast: [syntax=basic4gl] Dim Mz1 As Byte Dim Gz1 As Byte Dim Mz2 As Byte Dim Gz2 As Byte Dim Mz3 As Byte Dim Gz3 As Byte Dim Mw1 As Byte Dim Gw1 As Byte Dim Mw2 As...
tak wygląda sam kod do odczytu predkośći "trochę nie ogarnięty sorki" [syntax=basic4gl] $regfile = "m16def.dat" 'wew rezonator $crystal = 8000000 'jest włączony wew rezonator $baud = 9600 'szybkosc ibusa Config Lcd = 16 * 2 'używany wyświetlacz i piny do jakich jest podłączony Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7...
...Czy w bascomie można zadeklarować tablicę dwu wymiarową Nie :!: Dla czego przy odczycie danych muszę ponownie resetować magistralę i podawać numer seryjny układu... Bo tak są skonstruowane - patrz tabelki w PDF-ku :) Czy jest możliwe najpierw wysłanie do wszystkich czujników polecenia mierzenia temperatury ... Jasne ;) '... 1wreset If Err=0 Then...
A nie prościej będzie robić w pętli 100 odczytów, wyniki sumować w jednej zmiennej, a na końcu podzielić tą zmienną przez 100. Pozdrawiam Yakuza
Z tym że czas propagacji 93 jest 10-70 ns, 42 10-30 -razem może być 20-100 ns. Trzeba sprawdzić czas reakcji atmela na przerwanie. Jak za szybko zareaguje to da odczyt poprzedniego wyświetlacza. Przeważnie na poczatku procedury obsługi przerwania zrzucane są wszystkie rejestry - choć nie jetem pewien jak w BASCOM-ie, podejrzewam, że też. To będzie...
Pomysł z tym programikiem jest dobry ale lepiej zrobić tak aby wykorzystać przerwanie od uart'u od danych przychodzacych. W obsłudze tego przerwania robimy taki myk że gdy przyjdzie znak "$" to niech sie zeruje licznik (wskaźnik pozycji) i każda nastepna dana z portu niech będzie zapisywana do nastepnej zmiennej. Potem można z tych zmiennych wyciągnąć...
chcę zrobić tablicę z nazwami dni tygodnia do kalendarza. deklaruję dim tablica(7) as string * 12 tam powinno mi się to zmieścić, potem robię tablica: data "poniedziałek", "wtorek" ..... itd przy próbie wyświetlenia lcd tablica(x) mam tylko 11 zaciemnionych kostek . czy trzeba wpisywać do tablicy kody ASCI dla każdej literki ? jak to zrobić , żeby działało....
Są oczywiście takie moduły zespolone z pamięcią. Mozna tam zapisywać i czytac po bajcie, ale można też sekwencyjnie całe łańcuchy i tablice nawet serializatorem. Dwie pierwsze funkcje podpowiem. Wygląda na to ze działaja ;) Możnaby dodać jakieś zabezpieczenia na wypadek braku komunikacji. https://obrazki.elektroda.pl/8549538400_...
Teraz to mnie zatkałeś albo czegoś tu nie rozumiem. to w: Declare Sub E_o_slowo(byval Pag2 As Word) Declare Sub E_z_slowo(byval Pag2 As Word , Byval Adres_slowa As Word) Nie ma zawartej obsługi I2C???? chyba jest teraz to można robić tak. Call E_z_słowo 100 , _dana_word odczyt: Call E_o_slowo 100 _dana_word = licz_od Ale to nie zabardzo mi działa
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)
Witam. Sekwencja to kilkanaście sekund, odtwarzana w kilkuminutowej pętli. Proponowane wykorzystanie timera daje jedynie odmierzanie owych 1ms impulsów dla liczników i zapewni jedynie większą dokładność pomiaru niż waitms. Z tym nie ma problemu. Komenda ta zapewnia mi to czego potrzebuję i z tym nie mam problemu. Wykorzystanie tablicy to pomysł wart...
Kolega cristof_w ma po prostu złe nawyki z programowania c/bascom. W procesorze nie ma żadnego wydzielonego miejsca gdzie należy cokolwiek definiować albo umieszczać . Pamięć flash jest do twojej dowolnej dyspozycji i co chcesz gdzie chcesz umieszczasz. Musisz tylko wziąć pod uwagę że pierwsze komórki tej pamięci mają dodatkowe specyficzne zastosowanie...
No chyba, że dane generujemy w biegu (np pomiary) i ich nie modyfikujemy tak wlasnie o to chodzi atmega 8 ma tylko zapisywac na czystej karcie wyniki z pomiaru - nic nie bedzie modyffikowac tylkow puste miejsca bedzie zapisywac jeden pomiar nastepny juz w innym miejscu W pętli zapisu zamiast pobierać dane z tablicy trzeba wykonywać pomiar i w biegu...
Pomiędzy zainicjowaniem pomiaru a odczytem danych z DS'a powinien upłynąć czas 750ms lub więcej. Wczytaj dane z DS do tablicy dwuelementowej Byte, a później oba bajty wtłocz do zmiennej integer albo word np. przez Makeinit. Zsynchronizuj obsługę DS'a z multipleksowaniem wyświetlacza to nie będzie migał. Dla skrócenia czasu komunikacji z DS wysyłaj lub...
Dzięki. Spróbuję obu metod. A dlaczego w podprogramie jedynie ustawić flagę a całość operacji realizować w głównej pętli? Jaka jest zaleta tego rozwiązania a wady obsługi w podprogramie? Pytam gdyż pętla główna w docelowym programie będzie miała i tak co robić, więc nie chciał bym jej jeszcze dodatkowo blokować. Na razie problem odbiory kilku danych...
EBI ma być szybkie, to DMA ma odciążać CPU. EBI możesz taktować 2x szybciej niż CPU. Czyli dla taktowania CPU 32 MHz, EBI może działać z częstotliwością 64 MHz. Ma to duże znaczenie, o czym możesz się przekonać oglądając timingi operacji zapisu i odczytu dla EBI. Np. odczyt trwa co najmniej 2 takty EBI, czyli jeśli go taktujesz 2x szybciej niż CPU to...
jest nieżle ,program działa,ale jest jeden drobny mankament: wyzwala zawsze przekażnik jeden wyżej,czyli wpisuję 01 a wyzwala 2,wpisuję 02 a wyzwala 3. Zmieniłem operację na :numer =numer-1 wtedy jest ok,ale działają przekażniki 1-7,ósmy nie działa po wklepaniu numeru 08. Jeżeli dobrze rozumuję to działa to tak: -wpisuję np.01 ,czyli 1. -numer jest...
Zawsze będzie się to sprowadzało do przesyłania pojedynczych bajtów a w przypadku programowego I2C kolejnych bitów. Tego nie przeskoczysz. Oczywiście nie ma innej możliwości jak wysyłanie danych na szynę I2C bajt po bajcie. Mimo to większość (jesli nie wszystkie) pamięci opartych o I2C ma możliwość zapisania/odczytania danych szeregowo. Jest możliwość...
A więc coś zadziałało. Pierwszy odczyt z uart-a i dane są ok ale już drugi odczyt i wszystkie trzy zmienne to śmieci. Wygląda jakby trzeba było czyścić bufor wejściowy po każdym odczycie. Niby jest zmienna: [syntax=basic4gl]_rs232inbuf0[/syntax] ale jak dam: [syntax=basic4gl]_rs232inbuf0 = 0[/syntax] to kompilator woła: Array expected Coś mam. Dałem:...
Niestety nie działa :( Zerknijcie na screena ... wygląda na to że zamienia miejscami w tablicy dane. :cry: http://obrazki.elektroda.net/77_12347938...
arnoldziq napisał: W żadnym języku programowania nie ma możliwości określić "gdzie w tablicy" się "znajdujesz", Można to zrobić. Wystarczy dodać drugi wymiar tablicy i w tej dodatkowej komórce dla każdego wiersza tablicy zapisywać znacznik aktywnego wiersza. Napisać własne procedury odczytu i zapisu - przesuwające znacznik i funkcję zwracającą dane...
Witam kolegów, Postawiłem sobie pewne zadanie do wykonania i wygląda na to, że będę potrzebował jakiejś rady kogoś kto lepiej zna problem. Chodzi o komunikację mokrokontrolerów ATMEGA przez interfejs SPI. Programuję w BASCOM, gdzie są już gotowe instrukcje do tego. Cały problem wygląda tak: - Mamy 2 procesory ATMEGA8 - Mam tablicę 10 elementową X (elementy...
Jakaś masakra a nie kod. Gdzie niby masz zaimplementowany odbiór danych z UART? Jakim cudem chcesz wpisać do zmiennej String*1 (która nie może przechować nawet jednej litery, bo przechowuje tylko znak końca stringa) ciąg znaków? Najprościej kod transpondera zapisać jako tablicę 5-ciu bajtów. Potem masz tablicę z akceptowanymi transponderami (posortowanymi...
Raczej interesuje mnie odczyt na bieżąco i gdy napotka na przecinek, to żeby program "wiedział", że to był koniec pierwszej zmiennej, a jeśli już nie będzie przecinka na końcu podanych zmiennych, tylko znak "ENTER" to zakończenie wprowadzania ;) Tylko prosiłbym o konkretniejsze info, gdyż dopiero rozpocząłem edukację bascomową ;) Czy te dane odebrane...
Przykładowy programik, ale dla DS18B20: Dim Bd(9) As Byte 'tablica Dim T As Integer 'zmienne Dim T1 As Integer Dim T2 As Integer Declare Sub Read18b20 'deklaracja procedury Cls 'inicjacja wyświetlacza Deflcdchar 0 , 6 , 9 , 9 , 6 , 32 , 32 , 32 , 32 'def. znaku stopnia Cls Lcd "Temp:" Do 1wwrite &HCC 'rozkaz SKIP ROM 1wwrite...
Wiem wiem, pamięć wewnętrzna - ogólnie chodzi tu o naukę. W docelowym układzie będzie zewnętrzna, choć zapisy będą realizowane 1 dziennie. a swoja drogą jaka jest żywotność eepromu wewnętrzengo? Co do kodu, posiedziałem i pogłówkowalem i powstało coś takiego. oczywiście to przykład który teoretycznie można rozbudować do spokojnie 8-10 WY '8 MHz/256/31250...
bascom odczyt danych odczyt danych eeprom tablicy odczyt tablicy
schemat światła ducato efekty mikrofonu grzałka pralka hoover
naprawa kabla lodówki suszarka samsung
Rezystancja czujnika NTC w ekspresach Saeco Czujnik temperatury NTC Amica DWAC712DC – oporność, wartości, diagnostyka