http://obrazki.elektroda.pl/4164965000_1... Witam. Od dłuższego czasu interesuję się technologią RFID i dziś chciałem zaprezentować rozwinięcie mojej dawnej konstrukcji mianowicie czytnik kart RFID ze zintegrowaną anteną na płytce PCB. Ze względu na skomplikowaną konstrukcję anteny (niewielkie odległości między ścieżkami) płytka została...
Ramka danych standardowa i2c czyli najpierw wysyłasz adres układu potem wysyłasz dane i tu jest z górki bo nawet w tamtym poście z forum masz podane parametry jakie należy wysłać. Raz wysyłasz przy uruchomieniu konfigurację z jaką ma działać układ i to należy wrzucić do klamerek setup w uproszczeniu chcesz aby układ miał ustawiony bas i sopran na 0...
Skoro chesz przesyłać dane czyste dane binarne to chyba zrozumiałe, że odpada ci konstrikcja Bytematch z zastosowaniem dowolnego bajtu, który byłby końcem jakiejś tam ramki w związku z tym musisz je albo: 1. wysyłać czysto binarnie z kompa a w procku po prostu czekać na zakończenie transmisji - wprowadzając jakiś TimeOUT (ale to czasami mało eleganckie...
Witam Jak wielu spotkałem się z problemem problemem kłopotliwej obsługi pilota z RC5. Po poszperaniu w necie wpadłem na http://www.elektroda.pl/rtvforum/topic20... ten temat. Jak się okazało wszystko na tym programie pracowało, ale nie zawsze. Kłopotem było napisanie programu "pod pilota". Oczywiście pochwała dla Sabotaz'a który problem "ruszył"...
Ale ten sposób wysyłania ramek to trochę nie teges. A jak poprawnie się wysyła takie ramki i czym? Nie możesz po prostu sprawdzić w opisie programu jak należy formatować dane? Bo domyślam się że to jakiś terminal jest. Na Wikipedi jest opisane tak: "Minicom to program do kontroli modemu oraz emulator terminala dla systemów uniksowych" Ciężko Ci pomóc...
Zamiast wysyłać przez RS232 binarnie - co często przy przesyłaniu większych porcji danych przez początkujących będzie się kończyło samymi problemami - to nie łatwiej ci zamieniać przesyłane liczby na stringi a po odebraniu ze stringów na liczby. Dzięki temu twoja ramka będzie mogła być po ludzku zakończona znakiem ENTER a co za tym idzie wszystko co...
Kwarc wstaw w obu przypadkach nawet 16MHz. Baudrate jest zależna w zasadzie od jego dzielnika niż od kwarcu. Nie szalej też z dużą szybkością bo błędy mogą wyskoczyć, zacznij od 4800 bps. Połączenie po UART masz zrobić sprzętowo! Timer niech ci obsługuje multiplexing, główna pętla programu sprawdzanie czy w UART coś przyszło i przepisywanie do tablicy....
tak 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...
http://obrazki.elektroda.pl/9195353900_1... Witam. Niegdyś dostępne były do kupienia zestawy gniazdek zdalnie sterowanych firmy CLARUS w marketach sieci "robaczek z kropkami" w cenie 30zł za 3 gniazdka + pilot :sm7: Niestety moje lenistwo mnie pokonało i wymusiło na mnie stworzenie dodatkowego pilota do tego zestawu. Oryginalny pilot...
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...
oczywiście, że można to rozpatrywać jeszcze na miliony sposobów. Ja w swoim teście nadaję te ramki co ok 50ms. Jeśli ustawię ich wysyłanie np co 10ms to tych błędów nawet bez zasobochłonnych procesów pojawia się nieco więcej. Jeśli ustawię interwał czasowy na 100ms to błędne ramki nie pojawiają się nawet przy obciążaniu windy innymi procesami. Te błędy...
Mama taki temat - po RS485 odczytuje dane z miernika parametrów sieci - na ten moment zrobiłem to w PC i wszystko działa ładnie. Teraz chciałbym to samo zrobić w Bascomie z wykorzystaniem modbus.lbx ale zupełnie nie wiem czy w ogóle można tą bibliotekę do tego wykorzystać? Nie znalazłem nic podobnego w sieci. Ramka zapytania / odpowiedzi miernika wygląda...
Staram się zrobić obsługę PT6958 za pomocą bascoma - niestety brak specyfikacji ramki skutecznie mnie blokuje. Może ktoś robił już obsługę tego układu i mógł by się podzielić przykładową procedurą - bo sam to już raczej nic nie wymyślę. w załącznikach pdf do PT6958
Witam Bardziej profesjonalnie jest wszystkie układy potraktować jako slave . Każdy słucha i czeka na przerwanie z uarta , jak je otrzymuje odbiera zawartość z udr porównuje i albo odbiera dalej albo ignoruje i czeka na kolejny adres . Atmel wyposażył układy w tryb multimaster ,który się do tego świetnie nadaje i warto o nim przeczytać w dokumentacji...
Cytuję: "Ustawia się to w zależności od skomplikowania programu. (...)" O co tutaj chodzi i o jakie wartości tutaj chodzi? Dokładnie chodzi o ilość bajtów jaką początkowo zajmie każdy ze stosów. Stos jest elementem rozrastającym i kurczącym się dynamicznie. Może dojść do sytuacji gdzie jeden zajdzie na drugi - stack overleap - i kłopot gotowy. Dlatego...
O ile mi wiadomo - Bascom potrafi jedynie zbudować i wysłać ramkę do urządzenia SLAVE. Kod slave musisz napisać sobie sam. Podpowiem trochę. Modbus RTU od strony slave nie jest skomplikowany w implementacji. Przyjdzie Ci na port UART taka ramka danych: - początek transmisji (3,5 znaku ciszy) - adresu urządzenia (1 bajt) - kod funkcji (1 bajt) - danych...
Co do samego odczytu [syntax=basic4gl] Przerwanie_od_rxd: Dana = Udr Incr In_pos Buffer_in(in_pos) = Dana Wywal_bajt = 0 If In_pos >= 4 Then 'Jeśli są co najmniej 4 bajty (dwa startowe, długość ramki i jakaś dana) If Buffer_in(1) = &H7F Then 'Jeżeli pierwszy bajt startowy jest dobry If Buffer_in(2) = &HEF Then 'Jeżeli drugi bajt startowy jest dobry...
Witam, mam pewien problem. Na temat CAN i Bascom nie ma w internecie zbyt wiele informacji, więc metodą prób i błędów na podstawie programu z pomocy Bascoma próbuję coś ulepić. Kod przerobiłem następująco pod siebie: [syntax=vbnet]$regfile = "m128can.dat" $crystal = 16000000 $hwstack = 40 $swstack = 16 $framesize = 32 Config Com2 = 19200 , Synchrone...
Ja też miałem ten problem, że ATMEGA32 była już tak "załadowana", że multipleksowanie 2 wyśw. 7-segmentowych w TIMERze na chwilę potrafiło się zaklockować. Problem rozwiązałem stosując drugi mały uP dedykowany tylko do wyświetlacza, ATTiny2313 za 5 zł ;-) Procesory komunikują się komendami Bascomowymi SHIFTOUT SHIFTIN ramka danych 32-bity. Jeśli jesteś...
Witam. Nie wiem czy Kolega zaglądał do linka obsługi wyświetlacza? Jeśli miał bym robić jak Kolega radzi to samych ramek, jakie obecnie będę używał jest ok 100 więc... Połowa z nich to dane np. z czujnika gdzie dane(w jednym tylko adresie) zmienić się mają, co sekundę na wyświetlaczu od 0 do 100. Podaj przykłady ( krótkie instrukcję kodu) do wysyłania...
Dane w buforze będą gromadzone w przerwaniu - inaczej będą gubione. Jeśli chodzi o przełączanie slave-ów - popatrz w help Bascoma, są tam oprócz opisu , piękne rysunki jak to wszystko podłączyć. Co do wielkości ramki - nie wiem jak wygląda w MIDI, ale sądzę ,że ma kilka bajtów ale trzeba brać pod uwagę sytuację, gdy wszystkie 8 uart-ów otrzymuje dane...
OK Dzięki! Mam taki interfejs ze posiadam X modułów na których są przekaźniki i są podłączone do szyny danych (RS485) i chce sterować je poprzez komputer. W Delphi wysyłam jednym ciągiem takie komendy jak Adres = 0-255 Komenda = 0=255 Port = 0-255 Wartosc = 0-255 Czyli moja ramka danych z komputera przykładowo wygląda tak: RS_Send ('ADCS'); Wysyłam...
Witam! Moj problem. Chce, zeby dwa mikrokontrolery komunikowały się między sobą po RS-232. Ramka danych składać ma się z ośmiu bajtów danych. Komunikacja ta ma byc możliwie odporna na zakłucenia. Myślę, że stosowne jest zastosowanie czegoś w rodzaju sumy kontrolnej. Moja prośba dotyczy gotowej procedurki w BASCOM lub ASM do obliczenia takiej sumy oraz...
Witam Mam taki problem, a mianowicie nie wiem jak się do tego zabrać. Układ mam na ATMEGA16 Mam pewne urządzenie, które po RS232 wysyła dane w postaci: Cała ramka zawsze składa się zawsze z 32 bytów AAAA B1XX B2XX B3XX B4XX B5XX CHK WW XYZ AAAA , CHK , XYZ - stała wartość WW - suma kontrolna wszystkich bytów włącznie z CHK B1, B2, B3, B4, B5 - numer...
Witam. Wiem o tym co napisałeś, ale przed input jest sprawdzane czy jest co pobrać (ciąg zakończony LF) i jeśli jest co pobrać to jest pobierane w całości (jako string). A działa to tak: - zbiera się znak i jest zgłaszane przerwanie - kolejne znaki trafiają do bufora - jeśli ostatni znak jest LF (10) to jest wystawiana flaga że jest cała ramka to jest...
Na jednej szynie danych (o takiej mowa skoro mogą się pojawiać kolizje) i tak nie uzyskasz trybu full-duplex. Według mnie lepiej zastanowić się nad samym protokołem, aby wyeliminować w znaczącym stopniu kolizje oraz zapewnić jakiś prosty sposób retransmisji danych - najprostrzy to narzuta 2 bitów na pakiet danych - jeden zmieniany w każdym kolejnym...
No to stosuj kodowanie w takim razie - bo teraz wysyłając dane poleceniem Printbin i tak nadawane są one jako ramka transmisji szeregowej (UART) i występują tu takie same problemy jak w rozwiązaniu przedstawionym przeze mnie. Jeśli chcesz robić manchester to musisz ręcznie sterować pinem i ręcznie próbkować pin w odbiorniku - a nie kombinować z UART...
Witam, posiadam dwie atmegi8 sprzęgnięte ze sobą komunikacja za pomocą UART. Jedna atmega będzie zbierać informację z czujników i poprzez UART przesyłać bajty danych do drugiej atmegi której zadaniem jest wyświetlanie tych wartości na wyświetlaczu graficznym. Moja ramka danych składa się z dwóch bajtów, pierwszy z nich jest to bajt "adresowy" który...
http://obrazki.elektroda.net/88_12339261... Szeroko pojętą elektroniką zajmuję się hobbistycznie ok. 30 lat, lecz dopiero teraz postanowiłem pokazać światu jeden z moich projektów (mimo, że nie jest to dziedzina odbiorników radiowych, którą lubię najbardziej). Jest to lokalizator (nadajnik) GPS z dodatkowymi funkcjami sterowania przeznaczony...
Skoro rysunek 2255842600_1396547955 pokazuje, że najpierw wysyła się "address high" a po nim "address low", to można przyjąć (bez zagłębiania się w notę), że dane wysyłane po sub-adresie przesyła się w taki sam sposób: najmniej znaczące bajty wielobajtowych danych wysyłamy na końcu, zatem 0xAABB wyślemy jako najpierw 0xAA, potem 0xBB, najpierw szesnastki,...
Lepiej [syntax=vbnet]Print "dobra ramka " ""[/syntax] umieść poza przerwaniem.
Tutaj jest fajna stronka z kodem o jaki mi chodzi (niestety dla mnie jest w c) https://sites.google.com/site/marthalpro... Prawie go rozumiem niestety prawie to za mało. No to może spróbuj tu: http://gardnerswebsite.com/digitalgauge/... e marcus
Zmień 13 na jakiś inny kod, np 3, albo 2. no tak - tylko co to da - skoro pytający może mieć w ramce dowolne dane binarne ??? w związku z czym jeśli da sobie kod np 3, albo 2 - to za chwilę będzie kolejne takie samo pytanie - jeśli trafi się ramka , która wśród danych będzie miała bajty o wartości 0x03 albo 0x02
Ja kiedyś na elektrodzie natrafiłem na taki link, przepisać do Bascom'a jak mniemam potrafisz, a tu jest dość dokładny jak na początek opis obsługi RTL8019AS i opis protokołów, z wyszczególnieniem ramki danych etc. [url=http://www.pg.gda.pl/~zbczaja/pdf/w...
Pokaż jeszcze co masz w writeCmd i waitForData oraz w nadajniku jak wysyłasz ramkę danych.
To może na początek zacznij od prób komunikacji mikrokontrolerow "po drucie", a dopiero potem, kiedy komunikacja przewodowa będzie działać adoptuj ją do transmisji bezprzewodowej. Polecenia zalezą od tego jak chcesz wysyłać dane: np. po UART, SPI i własnej ramki danych, korekcji błędów itd. Temat szeroko opisywany na forum.
Ło Pani kochana! Chyba nie ma takich rzeczy (w sensie nie jest możliwe znalezienie w google już). Mi jedyne co się udało znaleźć co jest "jezykowo agnostyczne" to takie coś: https://www.picotech.com/library/oscillo... Tutaj jest niby prezentacja jakiegoś oscyloskopu i dekodowanie samych ramek. Na dole...
Jak rozwiazałeś problem z odbiorem danych?
INPUTBIN można odebrać tylko ściśle określoną ilość bajtów. A jak odebrać zmienną ilość bajtów binarnych, jeśli jest nadawany bajt końca ramki ?
Pomijając tragiczny kod zastanawiam się po co wysyłasz milion znaków, przecież w jednej ramce rs możesz wsadzić 255 różnych znaków, na tak prostą rzecz nie potrzebujesz takich ramek.
Dzięki za chęci, ale nadal gubię początek ramki.. :(
Ma ktoś jakieś pomysły jak to przeskoczyć? Zainstalować najnowszą wersje BASCOM'a (2.0.7.6.001) :). Tak z ciekawości uruchomiłem program na swoim zestawie, dane odbierał terminal. Za pierwszym razem skompilowałem program wersją 2.0.7.5.003, program wysyłał jedną ramkę (printbin) i stanął. Przy drugiej próbie użyłem BASCOM'a 2.0.7.6.001 i ramki zostały...
Dane odbieraj w przerwaniu. Jak natrafisz na znaki "AT" to rozpoczynaj zliczanie 154 bajtów po czym ustawiaj flagę "Data_ready" czy jakąś taką i znowu czekaj na znaki "AT". A jak chcesz odbierać dane o rożnych długościach to czekaj na znaki "AT" i ustawiaj flagę po ich odebraniu. Tyle że odebranie poprzedniej ramki będzie wymagało pojawienia się początku...
Prawie dobrze. 24 bity przy 400 kHz, każdy bit kodowany na czterech, czyli 96 bitów przy 1.6 MHz. Najłatwiej będzie do tego zaprząc SPI. Użycie UART będzie sporo trudniejsze i nie zawsze możliwe (zależy, jaki UART) - nie radzę, jeśli nie rozumiesz dobrze tego, co robi UART. Jak wygląda ramka - to dokładnie widać w opisie WS2811. Nic tam nie ma poza...
Odbierz dane z UART w jego przerwaniu a nie w pętli głównej. Dane z PC wysyłaj większymi paczkami np. parametry jednej diody w jednej ramce. Na początek napisz program, który interpretuje i odpisuje na tekst z PC, będziesz miał pewność, że umiesz gadać z prockiem za pomocą terminala.
Pozostaje tylko sprawdzić rozwiązania o których pisałem wcześniej. Wysyłając nawet po 10 zyskasz bardzo wiele na szybkości. Nie napisałeś czy używasz przerwania do odbioru danych. Tak myśle że jak obniżysz trochę prędkość, a zaczniesz przesyłać po kilkadziesiąt bajtów naraz to i tak będzie szybciej niż teraz. Chodzi o to że teraz masz tylko 25% danych...
A ma ktoś pomysł na wysyłanie większej ilości pakietów w celu przesyłania strony html o większym rozmiarze? Obecnie wszystko odbywa się za pomocą jednej ramki danych.
Myślę, że źle podszedłeś do tematu. Wypadałoby wykorzystać przerwania z UARTu i zrobić sobie jakąś ramkę wymiany danych z sumą kontrolną by wiedzieć, że odebrane dane są poprawne, a jeśli nie to żądać powtórki lub je odrzucić.
dim urx_bufor(5) as byte dim urx_licznik as byte dim urx_odebrano as bit ... urx_licznik=1 'to jest potrzebne dla bascom'a bo tablice zaczynaja sie od 1 a nie 0 enable interrupts ... przerwanie_urx: if urx_licznik<5 then urx_bufor(urx_licznik)=udr incr urx_licznik end if if udr=13 then set urx_odebrano 'odebano ENTER if udr='T'...
Zaprezentuj krótszy program tylko z odbiorem, ale z wszystkimi ustawieniami, configiem i deklaracjami zmiennych. Może coś się od razu rzuci w oczy :D Nie wiadomo czy zadeklarowałeś wielkość ramki której Bascom używa do obrabiania danych pracując na stringach lub tablicach ($framesize) Kiedy jest za mała to program może jeździć po innych zmiennych ;)
W takim razie jak inaczej wykryć koniec ramki skoro na końcu zawsze jest co innego? A procedurę zapisu na kartę jak mam szybciej wykonać? Nadajnik wysyła ramki co sekundę i nie mam na to wpływu. A jak wykryć koniec ramki po znaku CR? Zrobiłem jak piszesz i dałem oczekiwanie na znak "$". Jest trochę lepiej ale i tak są błędne ramki.
ramka danych bascom ramka danych ramka bascom
głośniki studyjne stroić antena president florida converter video
Kody błędów w wózku widłowym Manitou ME315 Jak przypisać numer do klawisza szybkiego wybierania w Philips D260?