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...
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...
To chyba jest taka pseudo tablica...
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...
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.
Zainteresuj się funkcją lookup . Pozwala ona na odczyt danych z DATA, na podstawie ich pozycji. Wszystko masz opisane w help-ie BASCOM-a.
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)/...
Załaczam kod, który działa. odbiera dane z portu szeregowego i wyswietla je w MsgBox(). Zwróć jedynie uwagę na zdarzenieSerialPort1_DataReceived. Zmień w nim ilośc bajtów po której mają zostać odczytane dane z BUFORA portu szeregowego. Początkowo bowiem dane trafiają do bufora (każdy bajt oddzielnie wywołuje przerwanie i trafia do bufora) a stamtąd...
Ar(100) - rezerwuje tablicę o długości 100 bajtów do przechowywania danych odczytanych z karty. Jeżeli miałeś błąd o braku pamięci to amień sobie w opcjach kompilatora wartość rezerwującą ilość miejsca na zmienne. 'Options' -> 'Compiler' -> 'Chip' pole 'Framesize' (zwiększyć wartość - tylko bez przesady ;-) ) Dla potrzeb odczytu kart wystarczy Ci Ar(40)...
I2crbyte Z(i) , Nack Wcześniej masz for i=0 to 5 Nie wyrzuci ci takiego błedu ale zapis jest zly. W bascomie adresowanie tablicy zaczyna się od 1 (z(1) - to jest pierwszy element tablicy) Błąd wyświetla dopiero chyba bascom avr. Daj pętle przesuniętą o 1 i będzie dobrze. Ale uważaj - to przesuniecie (for i=1 to 6) może ci też pogmatwać inne...
Witam w bascomie to wygląda tak: Dim Rejestr_1 As Long At &H500 Dim C1 As Byte At &H500 Overlay '0 Dim C2 As Byte At &H501 Overlay '1 Dim C3 As Byte At &H502 Overlay '2 Dim C4 As Byte At &H503 Overlay '4 nie wiem jak w c mam nadzieje że ci to coś pomoże. potem robisz zapis w eepromie i odczyt
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...
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)
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
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 =...
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ąć...
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...
Witam, "Zumek" dzięki jednak pytanie nie dotyczyło odczytu danych z tablicy :) (odczyd dokładnie tak wykonywałem) "ASMnauka" Dzięki super działa !! :) a wystarczyło też dopisać wykrzyknik wcześniej !.org $2000 (aż się dziwię że tego nie sprawdziłem) Ten temat uważam za zamknięty Mam jeszcze jedno drobne estetyczne pytanie. Jak wpisać poprawnie adres...
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...
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ść...
Kolego coś takiego wymyśliłem :[syntax=vbnet] $regfile = "m16adef.dat" $crystal = 80000000 $hwstack = 40 $swstack = 16 $framesize = 32 Config Porta = Input 'port A jako wejścia Config Portb = Output 'port B jako wyjścia ' Config Portd = Input 'Port D Jako Wejścia Config Portc = Output 'port C jako wyjścia Config Sda = Portc.1 'konfiguracja pinu magistrali...
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_...
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...
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...
Sypie błądami przy kompilacji. Jak zaremuję odczyt to błędów już nie ma, ale nie zapisuje danych do EEPROM. Z eepromu fajnie korzysta się w połączeniu ze strukturami, ale to dla większej ilości danych. Jak potrzeba 2-3 zmienne to robię coś takiego: [syntax=c] #include <avr/eeprom.h> uint16_t x1, x2; //zmienne które należy zapamiętać w eeprom...
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...
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...
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...
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...
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...
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....
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...
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...
Cześć, witajcie. uruchomiłem komunikację dwóch atmeg po spi. w bascomie z pominięciem wbudowanych komend, tylko na rejestrach procesora. hardwarowo wszystko chodzi, dane sie przesyłają w obie strony z jednym dużym problemem. drugi dzień nad tym siedzę i mam już kwadratowy łeb. potrzebuję przesyłać tabele, których specyfika jest taka, że nigdy nie wystąpią...
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...
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...
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...
BlueDraco - gołym okiem widać że ten projekt spokojnie zadziała na AVR. A jeśli AVR nie daje rady to wkładasz drugiego. Szybciej i wygodniej niż siedzieć 6 lat nad nauką nowego procesora. elektronic - na czas odczytu z SD robisz disable interrupts, no więc nic dziwnego że wyświetlanie ci się sypie bo przecież je wyłączasz. Czy do obsługi SD musisz wyłączać...
Teraz przykład prosty, też uniwersalny niema znaczenia ilość zmiennych i ich długość, ale do ESP musisz wysłać same zmienne przedzielone spacją, według wzoru" Bascom: Kod: vbnet Próbuję zrobić tym sposobem i klapa... Jeżeli poślę z AVR siedem zmiennych to jest OK, ale jeżeli będzie ich więcej to już nic z tego ;( ESP w konsoli się drze: [syntax=bash]...
Tak, programuje procesor bezpośrednio w Bascomie używając stk200/300. Problem rozwiązałem usuwając zmienne Dim Etab_czas1(40) As Eram Long At 1 'tablica zawiera wszystkie kolejne czasy operacji na zaworach Dim Etab_czas2(40) As Eram Long At 161 wtedy odczytuje z pamięci właśnie za pomocą Readeeprom Z, adres_bajtu Jest to dla mnie trochę...
Witam Wiem że takich tematów jest sporo ale mój problem jest trochę inny. Mam problem z DS18B20 nie wiem jak odczytać z niego dane. Umiem odczytać temperaturę z DS1820 ale z wersji B nie umiem. W wersji DS1820 jest tablica dwóch zmiennych typu byte i w tej drugiej zmiennej jak jest ujemna temperatura jest 255, a wersja DS18B20 drugą zmienną(tak jak...
Podobny problem poruszony już dziś: http://www.elektroda.pl/rtvforum/topic72... I2Csend wysyła w twoim wypadku najpierw wartość Addl1 do urządzenia o adresie &h40, potem wysyłasz znów do tego urządzenia bajt (Addh1)... (to nie jest wysłanie 2 bajtów do urządzenia, tylko wysłanie dwa razy po jednym bajcie). A przecież to polecenie może wyglądać...
Declare Sub Read1820 'deklaracja podprogramu Declare Sub Temperature 'deklaracja podprogramu Dim Bd(9) As Byte 'deklaracja tablicy zmiennych Dim I As Byte , Tmp As Byte 'deklaracja zmiennych używanych przez program Dim T As Integer , T1 As Integer 'deklaracja zmiennych używanych przez program 'Dim X As Byte 'deklaracja zmiennych używanych przez program...
"- a nie mówiłem :), pulling to pulling". czytaj dokładniej bo o tym na samym początku mówiłem i ja i inni i sam Osamu Tamura - tak więc z tego typu twoich wypowiedzi wynika tylko to co w skrócie zamieściłem w kilku linijkach poniżej: ... a nie mówiłem, że mówiłeś iż mówiłem o tym, że mówiłeś - to ty nie wiedziałeś że mówiłem o tym, że mówiłem ...................
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...
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...
No niezłe... na to sam na razie bym nie wpadł. Złudzenie wielowymiarowej spełnia - a praktycznie z offsetem jest dwuwymiarowa. W tym momencie nawet rozwiązuje mi problem zbędnego odczytu eeprom gdyż na końcu zrzuce sobie ilość wpisów i bede wiadział ile tam jest czasów ustawionych. Dziękuje za ukierunkowanie. P.s Awarii zasilanie też nie bedzie wiele...
Udało mi się trochę odchudzić program. Wykorzystałem tablice + inkrementacja numeru komórki w tablicy. Chciałem wykorzystać FOR - NEXT, ale coś nie działa jak trzeba Do Locate 1 , 1 Lcd A Locate 1 , 7 Lcd B Locate 2 , 1 Lcd C Locate 2 , 7 Lcd D Locate 1 , 13 Lcd E Locate 1 , 19 Lcd F 'If Szukaj = 0 Then Call Przeszukaj_i2c 'End If Loop End '***********************...
Witam potrzebuję wykonać obliczenia CRC do modbasu w bascomie, ale chciałbym zrobić to za pomocą tablicy. znalazłem przykład na elektrodzie: http://www.elektroda.pl/rtvforum/topic99... ale niestety jest w języku C a ja go nie znam. Sięgnąłem po książke do C ale pomimo to nie jest dla mnie wszystko wiadome. czy mógłby mi kotoś pomóc w analizie kodu??...
Dzisiaj wypróbuje układ z większym transformatorem, żeby nie przysiadało napięcie. Inicjalizacje powtórną już zrobiłem. Rzecz w tym, że po jak to nazwaliście zresetowaniu LCD powinien być efekt taki jak po jego odpięciu od procesora i ponownym podłączeniu. Wtedy wyświetla bzdury, ale z zakresu zdefiniowanych znaków. W moim przypadku wyświetla wręcz...
Co może być grane. Wszystko poskładane zgodnie z prawidłami, rezystor podciągający na linii danych jest, zasilanie filtrowane odpowiednio, wszystkie połączenia miliard razy sprawdzone, a sytuacja jak w temacie. Jakikolwiek program wgrywam temperatura na wyświetlaczu -0 lub -1. Jako że to moje pierwsze podejście do tematu i nie mam bladego pojęcia o...
Masz 2 opcje: 1) użyj poradnika gdzie krok po kroku opisano komunikację i napisz własny program 2) skopiuj gotowca w asm i jakoś połącz ze swoim programem. Gotowiec nie obsługuje kart SDHC i umożliwia tylko najprostszy zapis i odczyt danych na karty SD i MMC (zapis/odczyt 1 bloku). Gotowiec jest w pełni samodzielny, nic więcej nie potrzeba --------...
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 Testuje termometr na dwóch Ds18b20 i żeby wynik wyświetlany był trzech wyświetlaczach 7seg. LED. Ma działać tak że najpierw pokazuje na 3 sekundy 1 temperaturę a po tym czasie na kolejne 3 sekundy pokazuje 2 temperaturę. Linie 1 wire podciągnąłem z rezystorem 3,3K do +5V. Wszystko działa temperatury się zmieniają i wyświetlają ale co jakiś czas...
Witam. Ze względu na warującą ostatnio na dworze temperaturę chciałem zrobić prosty termometr oparty na 89s52 i czujniku 18b20. Napisałem program i o ile pomiar temperatury działa należycie z dokładnością 0.5*C to mam spory kłopot z porównaniem i zapamiętaniem tej minimalnej- aby rano wiedzieć do jakiej spadła temp w nocy. Układ sprawuje się dobrze...
Alez jest komentarz, ze liczby sa nieprawidlowe. Wklepalem byle co, zeby pozniej sobie dokladne wartosci obliczyc, a nie zawracac sobie glowy duperelami w tamtym czasie. Co masz na mysli piszac "chlapniesz"? Chlapanie tutaj na forum czy w swoim kodzie? :) Hm skoro widzisz jeszce jakies kwiatki, to bede wdzieczny, jesli sie nimi podzielisz ze mna. :)...
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...
Witam. Chciałem zrobić sterownik wzmacniacza audio na bazie kitu AVT2829. Szczególnie zależy mi na uczeniu się dowolnego pilota. Zrobiłem płytkę przystosowałem do niej program, użyłem większego procesora (atmega8) no i program działa ale strasznie ułomnie. Procedura zapamiętania kodów z pilota przebiega jak należy ale już samo działanie jest strasznie...
A jak zrobisz długi i krótki impuls? (no bo z takich imp. skałada sie każdy znak) ja bym odczytał każdy klawisz i każdemu przypisał komendę : If znak (np. A) then Set Portb.0 Reset portb.0 waitms 50 (krótki) Set Portb.0 waitms 8 (przerwa dla odczytu A) Reset Portb.0 waitms 90 (długi) Set Portb.0 End If Tak czy inaczej...
Witam! Od pewnego czasu usiłuje napisać program do obsługi zegara na pcf8583 i wyświetlaczach siedmiosegmentowych lecz bez efektu. Jest sporo tematów tego typu, ale większość zegarów realizowana jest na LCD. Główny problem polega na wyświetleniu czasu na wyświetlaczach 7segmentowych. Proszę o jakąkolwiek pomoc i podpowiedzi. Schemat układu: http://obrazki.elektroda.net/13_12708371...
Na pewno ma być instrukcja LDS? Przecież to ładuje zmienną z SRAM a nie adres? Nom, ale to jest zdajesie zapis BASCOMA i pewny nie jestem. To zależy jaka tablica, i czy kod ma być uniwersalny czy nie i gdzie to kopiować i czy w ogóle jest taka potrzeba. Kolejne bajty kopiowania z FLASH do SRAM w asm, np 120 sztuk coś w tym stylu: [syntax=avrasm]ldi...
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ć....
dokladnie chodzi o to ze... z PCta wysylam dane po RSie do uC... na uC odczytuje przeslana informacje funkcja INKEY(). I teraz nie dokonca wiem jak dziala funkcja inkey, czy zwraca ona pierwszy znak ASCII przeslanej informacji czy moze odczytuje pierwsze 8 bitow danych. Chodzi mi o to aby nie kombinowac z x = inkey() y = asc(x) z = ...i tu jakas funkcja...
Witam. Zakładam nowy temat ponieważ szukałem informacji na ten temat lecz nie znalazłem odpowiedzi. Chodzi o wprowadzania liczb 2 cyfrowych z klawiatury matrycowej. Do odczytu klawiszy wykorzystuję instrukcję "Getkbd". Nie wiem jak dokonać odczytu ile razy został wciśnięty klawisz. W celu wprowadzania liczb wielocyfrowych z klawiatury. Za pomocą zmiennej...
Podaję przykładowy algorytm sprawdzania CRC po odczycie z DS1820. Kod zapisany jest w C ale myślę, że nie powinno być problemu z konwersją na bascoma. // kody rozkazów dla DS1820 #define SKIP_ROM 0xCC #define READ_SCRATCHPAD 0xBE unsigned char ds_bufor[9]; // bufor odczytu danych z układu DS1820 // tablica pomocnicza do sprawdzania sumy kontrolnej...
... To wiem ale jeżeli się nie zna składni to już nie jest takie proste Mogę to napisać np. w paskalu w 30s ale tego nie wcisnę w 2052 A mówi się , że Basic jest pamięciożerny :wink: Poniżej programik dla matrycy 4x4 na P1 . Pozdrawiam Piotrek Bardzo dziękuje Piotrek umieszczę to jako listing ****************************************...
Jeżeli będziesz chciał to wykorzystać to szykuje Ci się niezła zmiana w kodzie, bo tym za prosto obrazków w formacie BGF nie narysujesz. Nie mam w zamiarze używania plików *.bfg. Odczytuje i zapisuje do lcd bezpośrednio po odczytaniu z pliku, dane które są niejako tablicą. Odczytuje z pliku dane linijka po linijce gdzie jedna linijka w pliku odpowiada...
Przedstawiam tylko istotne części programu związane z transmisją danych Na początek Atmega 16 obsługuje klawiaturę, Wyświetlacz LCD i komunikację GSM i inne drobiazgi oraz RS232 z Atmegą 8 Dodano po 10 A tak przy okazji takie pytanie czym różni się transmisja po RS232 dla: A=1 Print A oraz Print "1" Wg ASCII < 1 > ma kod 49 i chyba w jednym i...
MOzna Tez zorbic to na duch tablicach w jednej zapisujemy dane jak leci, bez względu na to ile zajmuje miejsca dany znak a w drugiej ile zjamuje dany znak. Jesli chcemy wyświetlic 22 znak niech to będzie np W to lecimy od 0 do 22 i sumujemy wszystkie dane z drugiej tablcy. W wyniku mamy adres startu pierwszej danej dla 22 znaku. Ostatnia odcztana dana...
http://obrazki.elektroda.pl/3089511800_1... Witam, dziś prezentuje swój bezprzewodowy termometr pracujący na częstotliwości 433 MHz. Urządzenie składa się z nadajnika i odbiornika. Nadajnik odczytuje temperaturę pieca C.O. i wysyła ją do odbiornika. W odbiorniku mamy możliwość ustalenia górnego i dolnego progu załączenia alarmu, który...
Czyli jak rozumiem, wprost czytać z tablicy bufora ? Gdzie znajduje się ten bufor z którego odczytuje INPUT ? Jak wtedy w Bascomie z 4 bajtowej tablicy wyjąć pierwsze 2 bajty, które potem porównuje Select Case ?
Witam ! Projektuję przetwornik do sterowania obciążeniem elektrowni wiatrowej, potrzebuję stworzyć tablicę zmiennych odwzorowującą charakterystykę turniny wiatrowej w zależności od prędkości wiatru, na podstawie odczytywanej a A/C zmiennej typu word, na wyjściu będę generowałodpowiedni PWM. Chodzi o to by po otrzymaniu liczby np. 127 do rejestru compare1a...
Chciałem się dowiedzieć jakie częstotliwość próbkowania osiągacie przy stabilnym odtwarzaniu *.wav bez zakłóceń wynikających z obsługi karty. Śledzę temat od dawna. Ostatnio z potrzeby chwili zacząłem eksperymenty. Oprogramowanie jest napisane w Bascom/Asm. Kiedyś napotkałem PDF'a kolegi Saabotaz dotyczącego obsługi karty SD / MMC. Uruchomiłem na podanym...
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...
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
Witam! Program działa poprawnie. Testowałem z 3-4 programy do obsługi tego czujnika ciśnienia. Wyniki są złe, porównaniem z innym ciśnieniomierzem zaniża o 30..40hPa. Zasilanie BMP180 3.3V, ATMEGA32, 8MHz. Czy ktoś się spotkał z takim problemem? [syntax=vbnet] '----------------------- '| Test modułu BMP085 | '----------------------- 'Uwaga: pomiar jest...
Witam, na wstępie uprzedzę, że jestem początkującym programistą bascom. Tworzę projekt, który jest połączeniem dwóch tematów tj. http://www.elektroda.pl/rtvforum/topic22... oraz ]http://www.mp3car.com/forum/mp3car-tech... . potrafię już odczytać dane z szyny i-bus w bmw i...
Witam, dziękuje za zainteresowanie :) Hmm, to jest coraz dziwniejsza sprawa. Rozwiązanie z pkt 5 nie działa tak jak zakładamy, cały czas jest spełniony warunek z if'a. Natomiast 'procedury testowe' z punktów 7 i 8 działają tak jak zakładasz. Odnośnie pkt 6 robot działa już pod kontrolą programu w BASCOM'ie więc elektronika jest zlutowana poprawnie....
Jakby co to całość programu znajduje się $regfile = "2313DEF.dat" $crystal = 10000000 Dim Eaddress As Eram Byte At 2 'adres pilota Rc5, zosatał umieszczony pod adresem 2 gdyż z doswiadczenia wiem, że komórki 0 i 1(szczególnie 0) pamięci EEPROM potrafią się skasować przy nagłych skokach napięcia zasilania Dim Epamiec(16) As...
ok powieminaczej usiluje wyslac szeregowo paczki danych z procesora z zewnetrznego zrodla zegarowego i co nastepuje w bascomie : polecenie shiftout - nie ma mozliwosci wysylania danych z zwenetrznego zrodla zegarowego - to pocelecnie samo generoje na pinie clk zegar - wiec to polecenie nic mi nie daje : myslalem o spi w trybie slave tak wiec na pin...
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
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....
Witam po dłuższej przerwie. Może komuś przyda się gotowa procedura obsługi LCD niebuforowana czyli taka w której nie potrzeba deklarować dużej tablicy w RAMie - przydatne jak próbuje uruchomić się jeszcze AVRDOS który tez trochę RAMu potrzebuje. Po krótce mówiąc cała konwersja znaków i wysłanie do LCD odbywa się w locie. Dodałem również: * obsługę czcionek...
Oj kolego, poważny błąd - zasilaj prawidłowo mikrokontroler: http://mikrokontrolery.blogspot.com/2011... Dzięki za upomnienie, faktycznie gdzieś to przeoczyłem, na schemacie ideowym nawet masa wisi :) Poniżej zamieszczam poprawiony schemat ideowy i płytkę w EAGLE. Widząc duże zainteresowanie kodem wrzucam wsad w BASCOM....
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...
Odczytuje z 1wire kolejno 9 bajtów danych do tablicy. Temperatura to liczba 16bitowa, pierwsze 8 bitów zapisanych jest w 1 elemencie tablicy 8 kolejnych w 2gim. Jakim poleceniem mogę połączyć te te dwie liczby aby otrzymać jedną 16bitową? Czy może ktoś ma jakiś inny sposób aby odczytać temperaturę i sumę kontrolną (1,2 bajt - temperatura, 9ty -CRC)...
Aha, to juz mniej wiecej wiem o co biega :) a np. ten fragment gdzie kopiujesz dane do ramu: Sinus(k + 1) = Lookup(k , Tab_sin) , nie mozna bezposrednio czytac danych z pamieci programu , trzeba je kopiowac do ramu ?? Nie pamietam za bardzo polecen z BASCOMa , funkcja LookUP odczytuje po prostu dana o indeksie k z tablicy Tab_sin tak ?
Przepuszczanie 3A przez pojedynczy styk goldpin to nie za dużo? Teraz to działa, ale z upływem czasu rezystancja styku wzrośnie i może się to zemścić. To przy zapalonych wszystkich LEDach. Zazwyczaj świeci się około 70% przy wyświetlaniu tekstu. Poza tym 3A to nie jest jakiś powalający prąd. Niestety, ale z forum DIY powoli robi się stragan. A widzisz...
Witam. W temacie mikroprocesorów jestem dalej początkującym, i dlatego zwracam się do was z prośbą o pomoc. Nie będę ukrywał, że porwałem się kolejny raz z motyką na Słońce, ale dla mnie tylko takie wyprawy są cenne. Jednak przechodząc do problemu. Wydaje się być błahy, ale siedzę całą noc nad tym programem, i może nie potrafię trzeźwo myśleć. Funkcja...
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...
Witam! Usilnie próbuje opracowąć protokół komunikacji miedzy wieloma węzłami w sieci RS485 multimaster. Ramka wyglada tak: 1 bajt - długosć ramki 2 bajty - adres odbiorcy (word) 2 bajty - adres nadawcy (word) x bajtów - dane właściwie 1 bajt suma kontrolna z wszystkich poprzednich Transmisja odbywa się na prędkosci 19200bps przy użyciu transcieverów...
W chwili gdy obsługuje 1-Wire, Bascom ZAWSZE nawet na czas generowania resetu, co trawa ok 500us, później presence, co daje razem ok 800us, zawiesza przerwania. To samo w czasie transmisji danych, transmisja bajtu to ponad 500us zawieszone przerwania. W tym czasie nie wykona się przerwanie od timera, od i cała tajemnica. Ale zabobony. Każdy może otworzyć...
Witajcie, moją przygodę z STM32 zacząłem stosunkowo niedawno, praktycznie od samego początku staram się stworzyć "protokół" do bezawaryjnej komunikacji po USARcie, który wykorzystany będzie do transmisji danych z małego robota typu LineFollower. Nie mam większej wiedzy, ani doświadczenia z tej dziedziny. Stworzyłem trochę kodu na podstawie własnych...
Z tym ENA sprawa rozbija się o czas stanu niskiego tej szyny przy wpisie danych. U mnie wygląda to tak: RW ustawione na zapis ENA = H (stan wysoki) 1. wybieram CS'a (połówkę wyświetlacza) 2. ustawiam rejestr RS (dane/sterowanie) 3. odczytuję dane z tablicy i wystawiam na port (D0-D7) 4. zatwierdzam wpis zmianą linii ENA : - ENA = L - oczekiwanie (aktualnie...
Chciałem przedstawić moje najnowsze dzieło, jakim jest matryca diodowa. Inspiracją do zbudowania urządzenia była jedna z prac dyplomowych znajdujących się w mojej szkole tyle, że tamta zabawka zawiera 7680 dwukolorowych LEDów (120x64). Matryca została oparta o procesor AVR atmega32 wybrałem taki ze względu na sporą ilość pamięci programu oraz RAM a...
Witam! Usilnie próbuje opracowąć protokół komunikacji miedzy wieloma węzłami w sieci RS485 multimaster. Węzły zbudowane są za pomocą AtMega8. Ramka wyglada tak: 1 bajt - długosć ramki 2 bajty - adres odbiorcy (word) 2 bajty - adres nadawcy (word) x bajtów - dane właściwie 1 bajt suma kontrolna z wszystkich poprzednich Transmisja odbywa się na prędkosci...
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...
bascom odczyt danych odczyt danych eeprom tablicy odczyt tablicy
excel koszt sterownik turbo radius konfiguracja
samsung waterwall skoda octavia oświetlenie
Nierówna praca silnika, brak mocy i kontrolka chłodzenia Wymiana rolki podawania papieru w Epson L365